Parallel programs written in C, C++, or Fortran for a distributed memory architecture
must use MPI for communication on the Velocity clusters. Other message-passing
libraries, e.g. PVM and tcgmsg, are not supported. MPICH from Argonne
National Laboratory has been installed on all Linux cluster nodes.
Parallel programs written for a shared memory architecture can use OpenMP and the
Intel compilers, or POSIX threads (pthreads) and any compiler.
Programs written for a mixture of distributed and shared memory can use MPI for inter-node
communication and either OpenMP or pthreads for parallelism on a single node.
Alternatively, programs can be written so that each program has a single thread of
execution and several instances (as many instances as there are CPUs) can be placed on
each node, communicating through MPI whether or not they reside on the same node.