Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

All SLAC users can run parallel jobs on the shared "bullet" shared cluster. It has 5024 cores. The hardware Each cluster node is configured as follows:   

  • RHEL6 64bit OS x86 nodes

  • 2.2GHz Sandy Bridge CPUs

  • 16 cores per node

  • 64GB RAM per node

  • QDR (40Gb) Infiniband for MPI comms

  • 10Gb ethernet for SLAC networking

If your MPI or mulitcore job only needs <= 16 cores and the memory requirement fits on a single host, you should submit to the general queues. Use the following syntax to run an 8-core job on a single host:

bsub -n 8 -R "span[hosts=1]” -W <runlimit> <executable>

More information on the general queues: https://confluence.slac.stanford.edu/display/SCSPub/High+Performance+Computing+at+SLAC

For parallel jobs that require multiple hosts, there There are 2 public queues for MPI computing on the bullet cluster, : bulletmpi and bulletmpi-large. They are available to anyone with a SLAC unix account.  Jobs submitted to bulletmpi and bulletmpi-large will reserve entire hosts and run on these hosts exclusively. Please send email to unix-admin admin@slac.stanford.edu to request access to these queues.

 

  • bulletmpi for jobs between 8 and 512 cores
  • bulletmpi-large for jobs between 513 and 2048 cores

Queuemin. # coresmax. # coresdefault runtimemax. runtime
bulletmpi851215 mins7 days
bulletmpi-large513204815 mins1 day

 

Single slot jobs are not allowed in these queues. You should specify the wallclock runtime using the -W <minutes> or -W <hours:minutes> bsub arguments. There is also a limit on the total number of cores (slots) in use by the bulletmpi and bulletmpi-large queues. You can check the current slot usage and the slot limits by running the blimits command. The output below shows the combined slot total for bulletmpi and bulletmpi-large is limited to 3072 slots. All 3072 slots are in use:

...

OpenMPI environment

 We recommend that you compile and run MPI jobs on the bullet cluster using the lsf-openmpi module. It is built from the RedHat OpenMPI source but compiled with support for the LSF batch job system. Login to one of the interactive bullet nodes via "ssh bullet", you will be redirected to either bullet0001 or bullet0002. Once logged in, run which mpirun. The command should return this path: 

/opt/lsf-openmpi/1.58.41/bin//mpirun

You can also check that lsf-openmpi is in use with this command:

renata@bullet0002 $ module list
Currently Loaded Modulefiles:
1) lsf-openmpi_1.58.41-x86_64

A newer version of openmpi is also available on the bullets, openmpi 1.8.1.  You can change your environment to run with the newer version as follows:

If you are using lsf-openmpi, Make sure you do not override PATH or LD_LIBRARY_PATH with other OpenMPI directories. An example of a job submission using the lsf-openmpi module: 

bsub -q bulletmpi -n <# cores> -W <runtime_minutes> mpirun <mpi_executable>

There is also an earlier version of OpenMPI, 1.5.4,  available, but OpenMPI 1.8.1 has the advantage of being able to run on hosts at different infiniband speeds.  OpenMPI 1.5.4 can have communication problems if it attempts to run across hosts at different speeds.  However, If you find a need for the older version you can set up your environment to use it instead when running on the bullets by making the following changes to the appropriate login script;  csh or tcsh users will update .cshrc and bash users will update .bash_profile or .bashrc:

##--FOR CSH or TCSH --------------------------------------------------
set bulletcluster = `hostname | grep "^bullet"`
if ($bulletcluster != "") then
TCSH or CSH:  eval `/usr/bin/modulecmd csh unload lsf-openmpi_1.5.4-x86_64`                                                                                                                                                                               eval `/usr/bin/modulecmd csh load unload lsf-openmpi_1.8.1-x86_64`                         

                 


eval TCSH or CSH:  eval `/usr/bin/modulecmd csh unload load lsf-openmpi_1.5.4-x86_64`

 eval `/usr/bin/modulecmd csh load lsf-openmpi_1.8.1-x86_64`                         

...


endif
#---------------------------------------------------------------------

##--FOR BASH ---------------------------------------------------------
bulletcluster=`hostname | grep "^bullet"`
if [ "$bulletcluster" != "" ]; then
eval `/usr/bin/modulecmd sh unload lsf-openmpi_1.

...

8.

...

1-x86_64`

...


eval `/usr/bin/modulecmd sh load lsf-openmpi_1.

...

5.

...

4-x86_64`

...


fi
#---------------------------------------------------------------------

 

If you issue which mpirun after issuing the appropriate modulecmds, you should now see:

     /opt/lsf-openmpi/1.8.1/bin//mpirun

If you are using lsf-openmpi, Make sure you do not override PATH or LD_LIBRARY_PATH with other OpenMPI directories. An example of a job submission using the lsf-openmpi module: 

bsub -q bulletmpi -n <# cores> -W <runtime_minutes> mpirun <mpi_executable>

Mailing List

Please join our SLAC openmpi mailing list. You can subscribe by sending a request email to listserv@slac.stanford.edu. You can use a non-SLAC email account if you wish.

The body of the message should include:

sub openmpi <your full name>

...