MPI and Parallel Code

There are multiple items to consider and review when running parallel code. One of the first is understanding the framework and protocol that will be used for your individual processes to communicate with each other. On chip (multi-core), in node (multi-processor), and multi-node (clusters and grids) parallel configurations have all been proven frameworks to accelerate computation. MPI, OpenMPI, and IBM's compiler language for the Cell processor are example protocols and coding paradigms.

The current predominate utilization of CRC resources for parallel computation centers on the multi-node framework and the MPI (Message Passing Interface) communication protocol. More specifically the Sun Grid Engine queue is setup to provide individual processors (or individual cores) to a parallel job's request for resources. The communication protocol is predominantly via the MPICH MPI libraries.

These libraries are setup for specific compilers and processor architectures. To aid CRC users, they have been setup as modules that the user can select from prior to compiling there parallel code. To see the available modules simply enter the following command once you have logged into a head node machine:

module avail