1. A computer system for operating programs executable on a computer cluster comprising cluster resources, wherein the cluster resources comprise the following: non-virtual real hardware resources with variable configurations and virtual resources, wherein each cluster resource has a configuration description and a type, wherein each type has a unique type identification and descriptions of operations that can be performed by the cluster resource of the each type, wherein the computer system comprises a processor and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to: identify cluster resources for generation of one or more dedicated execution environments, wherein execution of each program requires a dedicated execution environment on the computer cluster; and generate the one or more dedicated execution environments for execution of programs using the identified duster resources, wherein generation of each dedicated execution environment requires a plurality of virtual resources including one or more dedicated virtual resources and one or more dedicated non-virtual real hardware resources with the variable configurations, wherein each dedicated resource has an execution environment specific type and an execution environment specific configuration description, wherein each identified cluster resource matches one dedicated resource, wherein each identified cluster resource and the matching dedicated resource have the same type, and wherein the configuration description of each identified cluster resource comprises the execution environment specific configuration description of the matching dedicated resource, wherein at least a portion of programs have execution conflicts, wherein each program has a unique identification, wherein the unique identifications of the programs having execution conflicts are stored in a list comprising one or more pairs of the unique identifications of the programs having execution conflicts when both programs of any pair are executed concurrently, wherein the instructions further cause the processor to: split the programs in a minimum possible number of groups, wherein each group comprises no pairs of the programs having corresponding pairs of the unique identifications in the list; generate a schedule for execution of the programs, wherein all programs of each group are scheduled for concurrent execution and the groups of the programs are scheduled for consecutive execution, wherein consecutive execution of the groups is prioritized according to a number of the programs in the groups, wherein the group comprising the highest number of programs is scheduled as the first group for execution and the group comprising the least number of programs is scheduled as the last group for execution, wherein responsive to two groups comprising the same number of programs the two groups are prioritized at random; start execution of the programs according to the schedule in the one or mote generated dedicated execution environments; detect an execution conflict of a pair of the programs; abort one of the programs of the pair of the programs having the execution conflict detected; update the list with the pair the unique identifications of the pair of the programs having the execution conflict detected; generate a new schedule for execution of the aborted program and programs for which execution was not started yet; and start execution of the programs according to the new schedule in the one or more generated dedicated execution environments after execution of the group comprising another program of the pair is finished.