|
|
|
|
|
x86 Cluster Manual
-
Introduction
-
PBS
-
Policy
In order to make sure everyone gets fair usage of the cluster, we've
implemented a set of policies on the cluster to regulate usage.
-
Batch system limits
You can submit as many jobs as you'd like, but only two of them will
ever be considered for scheduling. In addition to this, there are
some important limits that change, depending on the time of day.
Overall limits on the number of node*hours per month may be imposed if
users are found to be monopolizing use of the machine.
At the current time, the policy is a maximum of 96 node*hours for any
given job, with a maximum of 48 walltime hours and two
running jobs per user.
-
What is walltime?
Wall time is the maximum amount of real-world time that your job can
use. For instance, if you submit a job with a walltime
specification of "01:00:00", then you've requested a job
allocaton for one hour "by the wall clock". This time is as opposed
to the amount of time spent on the CPU in the user state, the amount
of time spent on the CPU in the system state, or the amount of time
spent idle (on an I/O wait, for instance).
-
What is a node*hour?
The node*hour is the number of nodes you've requested, multiplied by
the walltime you've requested. The default walltime
is 48 hours, so if you submit a job with more than two nodes and you
don't specify a walltime, then you will exceed the node*hour
limit, and your job will never run.
-
Reservation limits
Occasionally, it is necessary to be able to ensure the availability of
resources. This is done through the reservation mechanism.
Currently, only staff can make reservations. We have the following
guidelines as to what is allowed:
-
Advance notification
You must let us know at least a week in advance before we schedule
reservations.
-
Day time
Up to four nodes can be reserved for up to four hours.
-
Night time
One to twelve nodes can be reserved for up to three hours, and more
than twelve nodes can be reserved for up to one hour.
-
Exceptional situations
Reservations that exceed these guidelines can be made, pending the
approval of the primary investigators.
-
How do reservations work?
The job scheduler will only schedule your jobs on those nodes during
the reservation period. In order to run jobs on those nodes,
specifically, you must use the syntax for submitting jobs to specific
nodes (see the section on qsub in this manual).
-
Disk
Currently there are varying amounts of scratch disk space on every
cluster node. This space is available as /scratch* for anyone to use.
We cannot guarantee the contents of these disks will remain from
install to install, so you should not put anything on these disks that
cannot be replaced.
-
Other software
The cluster would not be very useful without other software to support
it. The following tools have been installed to facilitate your work.
-
LAM/MPI
-
Description
LAM/MPI is an implementation of MPI from the University of Notre Dame.
-
Use
LAM is the default MPI implementation on the cluster.
The C compiler for LAM is mpicc. This ensures that your program gets
linked against the appropriate libraries. To run a LAM program, you
need to run lamboot, then mpirun.
For instance, if you wanted to run a given program on two nodes, you
would do the following:
mpicc -o program program.c
In your job script, you'd put the following:
#!/bin/bash
#PBS -l nodes=2
lamboot $PBS_NODEFILE
mpirun -np 2 program
The pbslam program, though, handles all of the
initialization, running, and cleanup for LAM under PBS, so you
wouldn't have to call these programs yourself.
NOTE: There are program name conflicts between LAM and MPICH, so you
probably just want to stick to having one in your path.
-
Information
-
Man pages
For more information, see the LAM man pages. If, for some reason,
these can't be viewed with the default manpath, you can use:
man -M /usr/local/stow/lam/man <topic>
-
WWW
More information about lam can be found at:
http://www.lam-mpi.org
-
LAM and PBS
There is a script called /usr/local/bin/pbslam that makes
executing LAM programs safe and easy under PBS. For example, if your
program is located in ~/src/program/, the following PBS job
file would work:
#!/bin/bash
#PBS -l nodes=2
cd ~/src/program/
exec /usr/local/bin/pbslam -gvCD ./program
In this case, the -g option causes pbslam to use the gigabit
interfaces, -v causes pbslam to produce verbose output,
-C causes pbslam to not check processor activity levels
before executing, and -D causes pbslam to use the location of
the program as the current directory.
This should be your preferred mechanism for using LAM. For
information on using that script, see the built in help, with:
/usr/local/bin/pbslam -h
-
MPICH
-
Description
MPICH is an implementation of MPI from the Argonne National
Laboratory.
-
Use
To use it, put /usr/local/stow/mpich-version/bin in your path BEFORE
/usr/local/bin.
The C compiler for MPICH is mpcc. This ensures that your program gets
linked against the appropriate libraries. To run a MPICH program, you
need to use mpirun.
For instance, if you wanted to run a given program on two nodes, you
would do the following:
mpcc -o program program.c
Then, in your job script, you'd put the following:
#!/bin/bash
#PBS -l nodes=2
mpirun -np 2 -machinefile $PBS_NODEFILE program
The pbsmpich program, though, handles all of the initialization,
running, and cleanup for MPICH under PBS.
NOTE: There are program name conflicts between LAM and MPICH, so you
probably just want to stick to having one in your path.
-
Information
-
MPICH and PBS
There is a script called /usr/local/bin/pbsmpich that makes
executing MPICH programs safe and easy under PBS. For example, if
your program is located in ~/src/program/, the following PBS job
file would work:
#!/bin/bash
#PBS -l nodes=2
cd ~/src/program/
/usr/local/bin/pbsmpich -gvCD ./program
In this case, the -g option causes pbsmpich to use the
gigabit interfaces, -v causes pbsmpich to produce verbose
output, -C causes pbsmpich to not check processor activity
levels before executing, and -D causes pbsmpich to use the
location of the program as the current directory.
This should be your preferred mechanism for using MPICH. For
information on using that script, see the built in help, with:
/usr/local/bin/pbsmpich -h
-
PVM
-
Description
PVM is a system designed to present an abstract parallel machine to
the programmer.
-
Use
The default version of PVM that comes with RH 7.3 is installed. I can
make no guarantees to whether or not it works, since I don't know how
to use it, nor do I have any sample programs that use it. Do yourself
a favor and use MPI.
-
Information
More information about PVM can be found at:
http://www.epm.ornl.gov/pvm/
-
Insure++
-
Description
Insure++ is a set of memory debugging tools, much like purify.
-
Use
Insure should be in the default path, in /usr/local/bin.
-
Information
|
|
|
|
|
|
|