How to Use the Cluster Manager

Torque is a system for reserving nodes and running jobs on a cluster. The torque software is installed on node33 through node66. This is a quick guide to getting started; for complete information try:

man qsub - the basic command for running jobs

man qstat - show currently running jobs

man pbsnodes - pbsnodes -a gives the current status of all nodes

These commands are in /usr/bin on nodes 33 through 66. You can launch a job from any of these machines (but not directly from other machines in the dept).


You may find that your cluster jobs quit unexpectedly and result in an email like the following:

Job Name:
An error has occurred processing your job, see below.
Post job file processing error; job on host node37/1+node36/0+node35/0+node34/0+node33/1

Unable to copy file /usr/var/lib/torque/spool/5785.node64.OU to
>>> error from copy
>>> end error output
Output retained on that host in: /usr/var/lib/torque/undelivered/5785.node64.OU

This happens because torque uses ssh to start jobs on multiple machines, which requires that the hostkey is in your ~/.ssh/known_hosts file. To do this, you need to ssh to every host using the fully-qualified domain name (e.g., instead of just node64).

-- MattPost - 05 Jul 2006

To Use a Node Interactively


% qsub -I

This reserves a node, gives you a shell on it, and releases the node when you log out.

To Use a Specific Node

% qsub -I -l nodes=node50

To Run a Batch Job

% qsub

Standard out and standard error from the job will be copied to files in your current directory named and, where XX is the job number. For the files to be copied successfully, you must have ssh authentication configured, and have a host key for machine you start the job from, using the fully qualified domain name, eg rather than just node64. If you can log into a machine without typing your password by using ssh with the full name, eg

% ssh

before launching a job, the copying of output files should work.

To Run a Job on Several Nodes

The batch software creates a file that tells your job which nodes it has reserved. Here is a simple example of a job that figures out which nodes it has and does something on them:

% cat > ~/

mkdir -p $HOME/tmp

for i in `cat $PBS_NODEFILE` ; do
  ssh $i "cat /proc/cpuinfo > $HOME/tmp/$i.out; sleep 60" &

# wait for ssh'ed jobs to finish before releasing node
% qsub -l nodes=4 ~/

The nodes have two cpus; by default if you request 4 nodes, you will get one cpu on each of four different nodes (and other jobs may be scheduled for the other cpu). To request both processors on each of four nodes (eight cpus total) use:

% qsub -l nodes=4:ppn=2

-- DanGildea - 14 Dec 2005

This topic: Main > ClusterJobs
Topic revision: r17 - 2006-07-05 - MattPost
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback