[PATCH 3/9] powercapping: initial generic power capping logic and add INFINITE power cap support
modify select_nodes() logic in order to compute the amount of power requested by the system if the returned list of nodes are really used to run the job. If this value is greater than the current power cap, then return ESLURM_POWER_NOT_AVAIL, a new error code equivalent to ESLURM_NODES_BUSY for the scheduling logic. When the backfilling is active, this error code will prevent the main schedule() function of slurm to attempt scheduling other jobs on the same resources/partition and will leave the job to the backfill logic (as it is the case with ESLURM_NODES_BUSY). Note that no eligible start time is currently computed for jobs blocked because of ESLURM_POWER_NOT_AVAIL, thus the backfilling logic will only act as a FIFO concerning the power resource. Thus a job with a lower priority could steal resources to run if the available power is sufficient for it, creating starvation of large power rejected jobs. This should be modified in the future. Based upon the layouts power framework. (Adapted for layouts and 15.08 by Yiannis Georgiou <yiannis.georgiou@bull.net>)
Please register or sign in to comment