Queues
At the moment there is a single partition (aka queue) called MAIN with a walltime limit of 48 hours.
Parallel work
Marcopolo is a cluster system and so message passing libraries are used to make code run in parallel. There are several different libraries installed. Shared memory parallelization (OpenMP, provided by the autoparallelizing options on some of the compilers) can also be used for up to sixteen cores but not further.
The available message passing libraries are MPI implementations: currently we have OpenMPI and Intel MPI. OpenMPI is strongly recommended.
To use a parallel environment you need to load the appropriate module. To make it stick you'd edit your .bashrc file and change the module add line.
Compile your code with the MPI compilers. These are usually called mpicc, mpicxx, mpif77 and mpif90.
To run MPI code you normally use a command such as mpirun to launch your program. On marcopolo there is a queueing system which assigns work to compute nodes, and so the MPI library has to interact with that which makes things more complicated. You use a special MPI launcher program to start your job. The launcher doesn't take any arguments but works out the correct number of cpus and which nodes to use from the queueing system. You must use the appropriate one for your MPI library, and you must have your environment configured for the library you want to use when you submit a job, as otherwise the job won't be able to find its library files. Here's a list of which launcher command goes with which library:
MPI | Compiler Command Name | Launcher Command Name |
---|---|---|
OpenMPI | mpicc /mpif90 | mpirun |
Intel MPI with GNU compilers | mpicc /mpif90 | mpirun |
Intel MPI with Intel compilers | mpiicc /mpiifort | mpirun |