Carleton College


Cluster Home Page

About the Cluster

Cluster Access

MPI Info

Write / Compile / Run MPI Programs

Single Node Jobs


Physics Home Page

Chemistry Home Page



Running Single Node Jobs


Occaisonally, you'll need to run a job on just one processor.  Perhaps you're testing code you've written before adding MPI calls, or maybe you'd like to check how much memory your process is using on one of the compute nodes, etc.  There are two utilities available to help you do these things.

Running Single Processor Jobs using "bpsubmit"


On our cluster, we have a program titled "bpsubmit" which can be used to submit a job to an individual node.  Since the Master Node is reserved for compilation, and the more "general use" items (like "vi" for coding, etc.) you should never run a program on that particular machine.  Instead, you should use the "bpsubmit" program.  The program was written at Carleton as a way to poll the compute nodes that are running, finding out which are the least "busy" (in terms of numbers of processes) and then submitting the job to the least busy node (or randomly selecting a node if a group of nodes tie for "least busy") for execution.

In the spirit of Open Source, I have provided the source (click here).  It is provided "as-is", with no warranties, guarantees, etc.  There is still much to be improved on, and when time is available, the code will be improved and functionality increased.

To use bpsubmit, you must type "bpsubmit path/to/program/executable".  A path to the program must be included (either the full path, or else "./" or a series of "../"'s.  The necessity of path will be the first thing fixed in the next revision of bpsubmit!)

For example, if the user "Alice" wants to run her program "foo" which lives in her home directory, she could either:

1. type "cd /home/Alice", and then type "bpsubmit ./foo"

Or

2. type "bpsubmit /home/Alice/foo" from any directory

She would then receive a message telling her which node her program was actually moved to.  Use of the standard UNIX pipes is supported (although not extensively tested).

In general, users on the Carleton cluster should use "bpsubmit" to run single-processor jobs in order to ensure that programs are not fighting over system resources on one cluster node, when another is less utilized.

Interacting with Individual Compute Nodes

Another way to execute individual commands on the compute nodes is the "bpsh" utility.  In general, you will not need to use "bsph", however there are a small set of circumstances when interacting directly with the compute nodes is helpful.  An example of when "bpsh" is useful would be to check memory utilization on compute nodes on a per-process basis.  In the BProc system, all the processes on all the nodes will show up when you type "ps -aux" on the Master Node.  However, the Master will not have all the available statistics that are typically reported by "ps" (for example, memory utilization).

"bpsh" can be used in the following manner:

bpsh ## command
(where ## is the node number you wish to interact with, and command is the desired command, for example "ps -aux")

For more extensive documentation, read the man page for bpsh and the man page for bproc.


Back to Cluster Homepage
Page Maintained by: Josh Allen
Last Modified: April 20, 2005