[GE users] Can high priority jobs suspend low priority jobs and use their resources?
neil at futurity.co.uk
Thu Apr 29 14:29:41 BST 2010
[ The following text is in the "iso-8859-1" character set. ]
[ Your display is set for the "ISO-8859-10" character set. ]
[ Some special characters may be displayed incorrectly. ]
I'm wondering if high priority jobs can suspend low priority jobs and use their suspended resources? My tests indicate that this isn't possible.
Is the grid engine scheduler smart enough to know that a high priority job will suspend a low priority job before it it run on the same machine and therefore calculates the resources that will be available once the low priority job is suspended?
If so, is there a way to configuring the grid engine so that high priority jobs are transferred to machines not only when the resources are free, but when there will only be sufficient resources once the subordinate job is suspended?
For example, if I have a machine with a consumable "virtual_free" memory of 3000MB. If a low priority job runs on this machine requesting 1000MB, this reduces the virtual_free to 2000MB.
Can a high priority job (one that that would suspend the low priority job) be able to be run on this same machine if it required 2500MB virtual_free memory? There isn't 2500MB available, only 2000MB so I assume it would be prevented from running on this machine?
In reality, surely if this high job was run on this machine, 500MB of the low priority job's 1000MB memory would be swapped out to disk and the high priority job run in the 2500MB it requires. Then when the high job is finished, the low priority job would be swapped back to real memory and continued to run.
As you can see, its frustrating that high priority jobs are prevented from running on a machine because a resource isn't already available, although it will be available once the low priority job already running there is suspended.
More information about the gridengine-users