Can I request full access to a node (reserve all the cores on the node I get for a job)?
In conjunction with Moab, you can use the parameter you state in your comment:
#PBS -W x=NACCESSPOLICY:SINGLEJOB
This guarantees that Moab won't send any more jobs to the same node. This won't make all of the processors for each node show up in $PBS_NODEFILE
, but it will allow you to use the entire node without stepping on anything else.
If I request only some fraction of the cores on a node, will PBS kill my job if I exceed that limit?
No, it won't. By default, TORQUE does nothing to enforce that you use only the cores that you request. The caveat here is that if you are configuring TORQUE to use cpusets, then the cpusets will restrict your process to only the processors that you are assigned. If you are using a version of TORQUE that is 3.0.0 or newer, you can add
#PBS -E
to your job script to solve this problem. This tells the mom you have exclusive access to the node and instructs the mom to put all of the cpus in the machine in your cpuset.