By default, when a multi-node job runs, the Mother Superior manages the job across all the sister nodes by communicating with each of them and updating pbs_server. Each of the sister nodes sends its updates and stdout and stderr directly to the Mother Superior. When you run an extremely large job using hundreds or thousands of nodes, you may want to reduce the amount of network traffic sent from the sisters to the Mother Superior by specifying a job radix. Job radix sets a maximum number of nodes with which the Mother Superior and resulting intermediate MOMs communicate and is specified using the -W option for qsub.
For example, if you submit a smaller, 12-node job and specify job_radix=3, Mother Superior and each resulting intermediate MOM is only allowed to receive communication from 3 subordinate nodes.
Image 2-1: Job radix example |
Click to enlarge |
The Mother Superior picks three sister nodes with which to communicate the job information. Each of those nodes (intermediate MOMs) receives a list of all sister nodes that will be subordinate to it. They each contact up to three nodes and pass the job information on to those nodes. This pattern continues until the bottom level is reached. All communication is now passed across this new hierarchy. The stdout and stderr data is aggregated and sent up the tree until it reaches the Mother Superior, where it is saved and copied to the .o and .e files.
Job radix is meant for extremely large jobs only. It is a tunable parameter and should be adjusted according to local conditions in order to produce the best results.