A processing system, comprising: a control register; and a processing core, communicatively coupled to the control register; wherein the processing core is to: receive a node allocation request specifying an expected running time of an application and a requested number of nodes of a cluster of nodes; determine, in view of the node allocation request and a current load on the plurality of nodes, an actual number of nodes to be allocated to the application, wherein the actual number of nodes to be allocated to the application optimizes a cluster load criterion; and notify, using the control register, the application of the actual number of nodes, wherein, to notify the application of the actual number of nodes, the processing core is further to: store the actual number of nodes in a memory data structure; obtain a lock of the control register; responsive to obtaining the lock of the control register, store an address of the memory data structure in the control register; release the lock upon expiration of a pre-defined timeout since obtaining the lock; and responsive to determining that the application failed to release, within a pre-determined period of time, a previously obtained lock of the control register, terminate the application, and wherein the processing core is further to cause the application to be executed using the actual number of nodes. a control register; and a processing core, communicatively coupled to the control register; wherein the processing core is to: receive a node allocation request specifying an expected running time of an application and a requested number of nodes of a cluster of nodes; determine, in view of the node allocation request and a current load on the plurality of nodes, an actual number of nodes to be allocated to the application, wherein the actual number of nodes to be allocated to the application optimizes a cluster load criterion; and notify, using the control register, the application of the actual number of nodes, receive a node allocation request specifying an expected running time of an application and a requested number of nodes of a cluster of nodes; determine, in view of the node allocation request and a current load on the plurality of nodes, an actual number of nodes to be allocated to the application, wherein the actual number of nodes to be allocated to the application optimizes a cluster load criterion; and notify, using the control register, the application of the actual number of nodes, wherein, to notify the application of the actual number of nodes, the processing core is further to: store the actual number of nodes in a memory data structure; obtain a lock of the control register; responsive to obtaining the lock of the control register, store an address of the memory data structure in the control register; release the lock upon expiration of a pre-defined timeout since obtaining the lock; and responsive to determining that the application failed to release, within a pre-determined period of time, a previously obtained lock of the control register, terminate the application, and store the actual number of nodes in a memory data structure; obtain a lock of the control register; responsive to obtaining the lock of the control register, store an address of the memory data structure in the control register; release the lock upon expiration of a pre-defined timeout since obtaining the lock; and responsive to determining that the application failed to release, within a pre-determined period of time, a previously obtained lock of the control register, terminate the application, and wherein the processing core is further to cause the application to be executed using the actual number of nodes.