Operating programs on a computer cluster
First Claim
1. A computer implemented method for operating programs executable on a computer cluster comprising cluster resources, wherein the cluster resources comprise 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 each type,wherein the method comprises:
- identifying cluster resources for generation of one or more dedicated execution environments, wherein execution of each program requires the dedicated execution environment on the computer cluster; and
generating the one or more dedicated execution environments for execution of programs using the identified cluster 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 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 method further comprises;
splitting 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;
generating 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;
starting execution of the programs according to the schedule in the one or more generated dedicated execution environments;
detecting an execution conflict of a pair of the programs;
aborting one of the programs of the pair of the programs having the execution conflict detected;
updating the list with the pair the unique identifications of the pair of the programs having the execution conflict detected;
generating a new schedule for execution of the aborted program and programs for which execution was not started yet; and
starting 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.
1 Assignment
0 Petitions
Accused Products
Abstract
A mechanism is provided for operating programs on a computer cluster comprising cluster resources. The cluster resources comprise non-virtual real hardware resources with variable configurations and virtual resources. Each cluster resource has a configuration description and a type. Each type has a unique type identification and descriptions of operations that can be performed by the cluster resource of the each type. Each program is operable for: requesting usage of the cluster resource specifying the type and the configuration description; and requesting a modification of the variable configuration of the non-virtual real hardware resource with the variable configuration. Execution of each program requires the dedicated execution environment on the computer cluster. The generation of each dedicated execution environment requires one or more dedicated virtual resources and one or more dedicated non-virtual real hardware resources with the variable configurations.
-
Citations
11 Claims
-
1. A computer implemented method for operating programs executable on a computer cluster comprising cluster resources, wherein the cluster resources comprise 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 each type,
wherein the method comprises: -
identifying cluster resources for generation of one or more dedicated execution environments, wherein execution of each program requires the dedicated execution environment on the computer cluster; and generating the one or more dedicated execution environments for execution of programs using the identified cluster 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 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 method further comprises; splitting 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; generating 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; starting execution of the programs according to the schedule in the one or more generated dedicated execution environments; detecting an execution conflict of a pair of the programs; aborting one of the programs of the pair of the programs having the execution conflict detected; updating the list with the pair the unique identifications of the pair of the programs having the execution conflict detected; generating a new schedule for execution of the aborted program and programs for which execution was not started yet; and starting 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
Specification