×

Operating programs on a computer cluster

  • US 10,025,630 B2
  • Filed: 09/10/2014
  • Issued: 07/17/2018
  • Est. Priority Date: 10/07/2013
  • Status: Active Grant
First Claim
Patent Images

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 all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×