Article ID: 995 - Last Modified: December 4, 2010
How can I efficiently set up the scheduling of Desmond jobs on an SGE queueing system?
The most efficient scheduling of jobs on a multiprocessor host depends a lot on the hardware configuration—how many nodes there are, how many cores or CPUs there are on each node, what sort of network is in use, and so on. For hosts that have multiple cores or CPUs per node, you can allocate processes with a "fill-up" allocation rule, in which processes are assigned to one node until it is filled up, before assigning processes to the next node, or a "round-robin" rule, in which each process is assigned to a different node.
For jobs that fit on a single node, "fill-up" scheduling provides the most efficient execution of the job, because the MPI communication is all handled internally. For larger jobs, the optimal strategy depends on a variety of factors. In general, "fill-up" scheduling is preferred even if in some situations Desmond runs slightly slower. The use of "round-robin" scheduling has a larger risk of failure on startup that may be related to an SGE bug (http://gridengine.sunsource.net/issues/show_bug.cgi?id=2393). Regardless of the allocation rule, it is advisable to use a high-quality network, and, if possible, to separate MPI traffic from other I/O traffic.
To set the scheduling allocation rule, you must modify your parallel environment. You can edit the parallel environment with the command
qconf -mp pe
where pe is the name of the parallel environment. This command opens a file that contains the settings for the parallel environment in a text editor. You can then ensure that
allocation_rule is set to
$fill_up. Alternatively, you can start the QMON graphical interface with the
qmon command, and use it to set the value of
Allocation Rule to
fill_up for the selected parallel environment.
Keywords: Desmond, queue, configuration
Type the words or phrases on which you would like to search, or click here to view a list of all
Knowledge Base articles