Follows the PBS Pro Design Document Guidelines.
...
- Link to Developer Forum
- PP-725
- Link to pull request: <Not Yet Implemented>
- Ref :
- pbs command "pbs_release_nodes", section 2.32 in Reference Guide v19.2.3
- sub section tittled titled "17.6.2.5 Releasing Vnodes" in Reference Guide v19.2.3
...
$ qsub -l select=3:model=abc:mpiprocsncpus=5+3:model=abc:bigmem=true:mpiprocsncpus=1+3:model=def:mpiprocsncpus=32 32 job.scr
120.pbssrv
Now grepping for assigned vnodes we may see :
$ qstat -f 120| egrep exec_vnode
exec_vnode = (nd_abc_1:ncpus=15)+(nd_abc_2:ncpus=15)+(nd_abc_3[0]:ncpus=15)+(nd_abc_3[1]:ncpus=1)+(nd_abc_4_bm:ncpus=1)+(nd_abc_5_bm:ncpus=1)+(nd_abc_6_bm:ncpus=1)+(nd_def_1:ncpus=32)+(nd_def_2:ncpus=32)
Here the first chunk "(nd_abc_1:ncpus=5)" represents the mother superior node while each of the remaining others represent a sister node.
and node statuses as :
$ pbsnodes -av
nd_abc_1
Mom = nd_abc_1.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.model = abc
resources_available.ncpus = 110
resources_assigned.ncpus = 15nd_abc_2
Mom = nd_abc_2.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.model = abc
resources_available.ncpus = 110
resources_assigned.ncpus = 15nd_abc_3[0]
Mom = nd_abc_3.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.model = abc
resources_available.ncpus = 15
resources_assigned.ncpus = 15nd_abc_3[1]
Mom = nd_abc_3.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.model = abc
resources_available.ncpus = 15
resources_assigned.ncpus = 1nd_abc_4_bm
Mom = nd_abc_4_bm.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.bigmem = True
resources_available.model = abc
resources_available.ncpus = 1
resources_assigned.ncpus = 1nd_abc_5_bm
Mom = nd_abc_5_bm.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.bigmem = True
resources_available.model = abc
resources_available.ncpus = 1
resources_assigned.ncpus = 1nd_abc_6_bm
Mom = nd_abc_6_bm.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.bigmem = True
resources_available.model = abc
resources_available.ncpus = 1
resources_assigned.ncpus = 1nd_def_1
Mom = nd_def_1.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.model = def
resources_available.ncpus = 32
resources_assigned.ncpus = 32nd_def_2
Mom = nd_def_2.pbspro.com
state = job-busy
jobs = 120.pbssrv/0
resources_available.model = def
resources_available.ncpus = 32
resources_assigned.ncpus = 32
...
$ pbs_release_nodes -j 120 -k select=model=abc:mpiprocsncpus=5+2:model=abc:bigmem=true:mpiprocsncpus=1
will release the nodes (nd_abc_3[0]:ncpus=15)+(nd_abc_3[1]:ncpus=1)+(nd_abc_6_bm:ncpus=1)+(nd_def_1:ncpus=32)+(nd_def_2:ncpus=32) from the job while retaining the nodes (nd_abc_1:ncpus=15)+(nd_abc_2:ncpus=15)+(nd_abc_4_bm:ncpus=1)+(nd_abc_5_bm:ncpus=1).
The new phase of the job will have below vnodes associated with it
$ qstat -f 120| egrep exec_vnode
exec_vnode = (nd_abc_1:ncpus=15)+(nd_abc_2:ncpus=15)+(nd_abc_4_bm:ncpus=1)+(nd_abc_5_bm:ncpus=1)
...
- The "select" string parameter will be passed to "pbs_relnodesjob()" using its "extend" argument which is of type "char * "
...
Project Documentation Main Page
...