CCMST Weekly News, May 11 2012May 11, 2012 4:46 pm EDT
May 25, 2012 11:00 am - 12:00 am
Alejandro Briseno, University of Massachusetts
The Oligomer Approach Towards Understanding Crystallization of Polyalkylthiophene Semiconductors
New Moab Features
Following Ggate reinstall, the version of Moab running on ggate has been upgrade, thus some new scheduler features that up to now were only available on egate and ggate can now be used on ggate too. Here is a brief recap:
- Excluding nodes from a job:
#PBS -l excludenodes=compute-1-1:compute-1-2The above line will tell the scheduler to do not run the job on nodes compute-1-1 and compute-1-2. The list of nodes to be excluded from the job is a colon separated list of host names.
- Defining the number of tasks per node: Moab version 6 has a new resource, tpn (tasks per node) that allow to control how many tasks per node a job should have. The tpn number can be followed by an optional + sign, to indicate that the number of tasks per node is to be taken as the minimum required task per node. For instance, currently to run a job on 4 nodes with two processors per node (total of 8 processors) one would use:
#PBS -l nodes=4:ppn=2Moab will interpret this as the user requesting at least 2 processors per node, and, depending on policies and node availability, might actually allocate more than 2 processors per node for the job. Using the tpn resource request, one can specify a job with a total of 8 processors and exactly two processors per node:
#PBS -l nodes=8,tpn=2Note that there is a comma separating the tpn= request from the nodes= request (as opposed to the colon in the ppn case). Note also that the total number of processes is now given by the node number. In other words, when using the syntax
#PBS -l nodes=X:ppn=Ythe total number of processors allocated for the job is given by X*Y, but when using the tpn syntax:
#PBS -l nodes=X,tpn=YThe total number of processors is given by X only. As mentioned before, tpn can be followed by an optional + sign:
#PBS -l nodes=8,tpn=2+In this case the job will use a total of 8 processors, with at least 2 processor per node (this ia equivalent to specifying -l nodes=4:ppn=2).
- Using hostlists: A first way is to specify directly the nodes (and processors per node) where the job must run. This is done directly in the node request line:
#PBS -l nodes=n1:ppn=2+n2:ppn=4
The above line will specify that the job must run using 2 processors on node n1 and 4 processors on node n2. Of course the above way is not very convenient, as the job will not run until the nodes and processors explicitly requested are available, and thus the waiting time in queue might be very long.
A more convenient way is to specify a superset of nodes from which the scheduler can chose to run the job from. In this way one maintains a control of the location where the job is going to run, while leaving some flexibility to the scheduler, and thus increasing the chances of an early start of the job. This is achieved using the hostlist resource:
#PBS -l hostlist=n1+n2+n3+n4+n5+n6+n7^ #PBS -l nodes=4,tpn=1+
The above syntax will tell MOAB to run the job using a total of four processors, using one or more processors per node, and choosing the nodes between the specified hostlist. The hostlist is a list of host names separated by the + character. A caret (^) at the end of the list will tell the scheduler that the hostlist is a superset of the hosts where the job is required to run.
To learn more about the new Moab features, please check the on line Moab documentation.
Do you have usage tips that you want to share with the other CCMST users? Please send them to Massimo (firstname.lastname@example.org) for inclusion in the Tip of the Week section.