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.