Scheduling in a high-performance computing (HPC) system
First Claim
1. A computer-readable medium encoded with a logic for scheduling in a high-performance computer (HPC) system, the logic encoded in the computer-readable medium being executed to:
- receive a call from a management engine operable to manage a cluster of nodes in the HPC system, the call specifying a request comprising a job for scheduling comprising one or more processes for execution at one or more nodes in the cluster, the call further specifying a number of nodes for executing the job;
determine whether the request is spatial, compact, or nonspatial and noncompact, the request being spatial if the job assumes spatial relationships between nodes executing the job, the request being compact if the job assumes proximity between nodes executing the job, the request being nonspatial and noncompact if the job assumes no spatial relationships or proximity between nodes executing the job;
if the request is spatial;
generate one or more spatial combinations of nodes in the cluster accommodating the number of nodes specified in the call and further accommodating the assumed spatial relationships between nodes executing the job; and
select one of the spatial combinations that is schedulable according to a list of nodes in the cluster available for scheduling;
if the request is compact;
generate one or more compact combinations of nodes in the cluster accommodating the number of nodes specified in the call; and
select one of the compact combinations that is schedulable according to the list of nodes in the cluster available for scheduling and that is more compact than other compact combinations that are schedulable according to the list of nodes in the cluster available for scheduling;
if the request is nonspatial and noncompact;
identify one or more nodes schedulable according to the list of nodes in the cluster available for scheduling; and
generate a nonspatial and noncompact combination of nodes in the cluster accommodating the number of nodes specified in the call, the nonspatial and noncompact combination comprising one or more of the one or more identified nodes that are schedulable according to the list of nodes in the cluster available for scheduling; and
communicate a return to the management engine identifying one or more nodes in the selected spatial, compact, or nonspatial and noncompact combination of nodes in the cluster for executing the job.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, a method for scheduling in a high-performance computing (HPC) system includes receiving a call from a management engine that manages a cluster of nodes in the HPC system. The call specifies a request including a job for scheduling. The method further includes determining whether the request is spatial, compact, or nonspatial and noncompact. The method further includes, if the request is spatial, generating one or more spatial combinations of nodes in the cluster and selecting one of the spatial combinations that is schedulable. The method further includes, if the request is compact, generating one or more compact combinations of nodes in the cluster and selecting one of the compact combinations that is schedulable. The method further includes, if the request is nonspatial and noncompact, identifying one or more schedulable nodes and generating a nonspatial and noncompact combination of nodes in the cluster.
150 Citations
35 Claims
-
1. A computer-readable medium encoded with a logic for scheduling in a high-performance computer (HPC) system, the logic encoded in the computer-readable medium being executed to:
-
receive a call from a management engine operable to manage a cluster of nodes in the HPC system, the call specifying a request comprising a job for scheduling comprising one or more processes for execution at one or more nodes in the cluster, the call further specifying a number of nodes for executing the job; determine whether the request is spatial, compact, or nonspatial and noncompact, the request being spatial if the job assumes spatial relationships between nodes executing the job, the request being compact if the job assumes proximity between nodes executing the job, the request being nonspatial and noncompact if the job assumes no spatial relationships or proximity between nodes executing the job; if the request is spatial; generate one or more spatial combinations of nodes in the cluster accommodating the number of nodes specified in the call and further accommodating the assumed spatial relationships between nodes executing the job; and select one of the spatial combinations that is schedulable according to a list of nodes in the cluster available for scheduling; if the request is compact; generate one or more compact combinations of nodes in the cluster accommodating the number of nodes specified in the call; and select one of the compact combinations that is schedulable according to the list of nodes in the cluster available for scheduling and that is more compact than other compact combinations that are schedulable according to the list of nodes in the cluster available for scheduling; if the request is nonspatial and noncompact; identify one or more nodes schedulable according to the list of nodes in the cluster available for scheduling; and generate a nonspatial and noncompact combination of nodes in the cluster accommodating the number of nodes specified in the call, the nonspatial and noncompact combination comprising one or more of the one or more identified nodes that are schedulable according to the list of nodes in the cluster available for scheduling; and communicate a return to the management engine identifying one or more nodes in the selected spatial, compact, or nonspatial and noncompact combination of nodes in the cluster for executing the job. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for scheduling in a high-performance computing (HPC) system, the method comprising:
-
receiving a call from a management engine operable to manage a cluster of nodes in the HPC system, the call specifying a request comprising a job for scheduling comprising one or more processes for execution at one or more nodes in the cluster, the call further specifying a number of nodes for executing the job; determining whether the request is spatial, compact, or nonspatial and noncompact, the request being spatial if the job assumes spatial relationships between nodes executing the job, the request being compact if the job assumes proximity between nodes executing the job, the request being nonspatial and noncompact if the job assumes no spatial relationships or proximity between nodes executing the job; if the request is spatial; generating one or more spatial combinations of nodes in the cluster accommodating the number of nodes specified in the call and further accommodating the assumed spatial relationships between nodes executing the job; and selecting one of the spatial combinations that is schedulable according to a list of nodes in the cluster available for scheduling; if the request is compact; generating one or more compact combinations of nodes in the cluster accommodating the number of nodes specified in the call; and selecting one of the compact combinations that is schedulable according to the list of nodes in the cluster available for scheduling and that is more compact than other compact combinations that are schedulable according to the list of nodes in the cluster available for scheduling; if the request is nonspatial and noncompact; identifying one or more nodes schedulable according to the list of nodes in the cluster available for scheduling; and generating a nonspatial and noncompact combination of nodes in the cluster accommodating the number of nodes specified in the call, the nonspatial and noncompact combination comprising one or more of the one or more identified nodes that are schedulable according to the list of nodes in the cluster available for scheduling; and communicating a return to the management engine identifying one or more nodes in the selected spatial, compact, or nonspatial and noncompact combination of nodes in the cluster for executing the job. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34)
-
-
27. The logic of cliam 9, further comprising repeating the first loop, the second loop, and the third loop to cover all the nodes in the cluster.
-
35. A system for scheduling in a high-performance computing (HPC) system, the system for scheduling in the HPC system comprising:
-
means for receiving a call from a management engine operable to manage a cluster of nodes in the HPC system, the call specifying a request comprising a job for scheduling, the job comprising one or more processes for execution at one or more nodes in the cluster, the call further specifying a number of nodes for executing the job; means for determining whether the request is spatial, compact, or nonspatial and noncompact, the request being spatial if the job assumes spatial relationships between nodes executing the job, the request being compact if the job assumes proximity between nodes executing the job, the request being nonspatial and noncompact if the job assumes no spatial relationships or proximity between nodes executing the job; means for, if the request is spatial; generating one or more spatial combinations of nodes in the cluster accommodating the number of nodes specified in the call and further accommodating the assumed spatial relationships between nodes executing processes in the job; and selecting one of the spatial combinations that is schedulable according to a list of nodes in the cluster available for scheduling; means for, if the request is compact; generating one or more compact combinations of nodes in the cluster accommodating the number of nodes specified in the call; and selecting one of the compact combinations that is schedulable according to the list of nodes in the cluster available for scheduling and that is more compact than other compact combinations that are schedulable according to the list of nodes in the cluster available for scheduling; means for, if the request is nonspatial and noncompact; identifying one or more nodes schedulable according to the list of nodes in the cluster available for scheduling; and generating a nonspatial and noncompact combination of nodes in the cluster accommodating the number of nodes specified in the call, the nonspatial and noncompact combination comprising one or more of the one or more identified nodes that are schedulable according to the list of nodes in the cluster available for scheduling; and means for communicating a return to the management engine identifying one or more nodes in the selected spatial, compact, or nonspatial and noncompact combination of nodes in the cluster for executing the job.
-
Specification