...
Gist of design: We can expose a way for each job to pass a python expression that can be used to filter out nodes on the basis of their resources_available and resources_assigned present on the nodes. This filter will be used to filter nodes every time a job (submitted with node-filter) is considered to run or the time scheduler tries to add this job to the calendar.
Interface 1: Extend PBS to allow users to submit jobs with a node-filter (nfilter) resource expression.
...