SGCI / sgci-resource-inventory

This contains all the computational resource entities
https://sgci-resource-inventory.readthedocs.io/en/latest/introduction.html
Apache License 2.0
6 stars 2 forks source link

Add lower-bound computeQuota constraints? #14

Closed ericfranz closed 3 years ago

ericfranz commented 3 years ago

Partitions (or hardwareProfiles have the ability to have a list of computeQuotas. These all are maximum allowed values for the job. It would be nice if there could also be minimums applied.

For example, at OSC on Pitzer to request a Large Memory or Huge memory nodes there are some constraints:

  1. for a Large Memory node the job must specify the memory between 363 GB/node and 744 GB/node (and you are only allowed to request 1 node per job)
  2. for Huge Memory node the job must specify the memory between 744GB and 2988GB
  3. for Huge Memory node an alternative is to specify --ntasks-per-node and --partition=hugemem, but then --ntasks-per-node must be 20 to 80

If compouteQuota constraints had minimums, we could address these cases:

  1. --ntasks-per-node constraint could be restricted between 20 and 80 for Huge Memory nodes using minCPUsPerJob and maxCPUsPerJob
  2. memory constraints could be restricted between the ranges by using minMemoryPerJob and maxMemoryPerJob

So the request would be to add theses to computeQuotas:

This may be more relevant if partitions are expanded into hardwareProfiles.

Note minCPUsPerJob/maxCPUsPerJob is being used in the above example in the place of a missing constraint: the minCPUsPerNode/maxCPUsPerNode. Perhaps the expectation was that hardwareProfile would specify cpuCount and the Gateway would infer the maxCPUsPerNode was cpuCount? But then there is no way to specify a minimum constraint. And if we decided to add a constraint like minCPUsPerNode/maxCPUsPerNode would that render cpuCount in hardwareProfile redundant?