Pthreads, Quadrics shmem, Mpi library – HP XC System 3.x Software User Manual
Page 41: Intel fortran and c/c++compilers, Pgi fortran and c/c++ compilers, Gnu c and c++ compilers, Pathscale compilers
Pthreads
POSIX Threads (Pthreads) is a standard library that programmers can use to develop portable threaded
applications. Pthreads can be used in conjunction with HP-MPI on the HP XC system. Compilers from GNU,
Intel and PGI provide a -pthread switch to allow compilation with the Pthread library.
Packages that link against Pthreads, such as MKL, require that the application is linked using the -pthread
option. The Pthread option is invoked with the following compiler-specific switches:
GNU
-pthread
Intel
-pthread
PGI
-lpgthread
For example:
$ mpicc object1.o ... -pthread -o myapp.exe
Quadrics SHMEM
The Quadrics implementation of SHMEM runs on HP XC systems with Quadrics switches. SHMEM is a
collection of high-performance routines (that support a distributed-memory model) for data passing between
parallel executables.
To compile programs that use SHMEM, it is necessary to include the shmem.h file and to use the SHMEM
and Elan libraries. For example:
$ gcc -o shping shping.c -lshmem -lelan
MPI Library
The MPI library supports MPI 1.2 as described in the 1997 release of
MPI: A Message Passing Interface
Standard. Users should note that the MPI specification describes the application programming interface, but
does not specify the contents of the MPI header files, mpi.h and mpif.h, that are included in the source
code. Therefore, an MPI application must be recompiled using the proper header files for the MPI library to
which it is to be linked.
Parallel applications that use MPI for communication must include the HP XC infrastructure libraries. MPI
applications must be built with mpicc, mpic++, mpif77, or mpif90 utilities.
When an MPI application is launched, the user environment, including any MPI environment variables that
have been set, is passed to the application.
MPI profiling support is included in the HP XC MPI library, so you do not need to link with a separate library
to access the PMPI_xxx() versions of the MPI routines.
The HP XC cluster comes with a modulefile for HP-MPI. The mpi modulefile is used to set up the necessary
environment to use HP-MPI, such as the values of the search paths for header and library files.
Intel Fortran and C/C++Compilers
You can use Intel Fortran compilers (Version 7.x and greater) on the HP XC cluster. However, the HP XC
cluster does not supply a copy of Intel compilers. Intel compilers must be obtained directly from the vendor.
Refer to Intel documentation for information about using these compilers.
PGI Fortran and C/C++ Compilers
You can use PGI Fortran 95, Fortran 77, and C/C++ compilers on the HP XC cluster. However, the HP XC
cluster does not supply a copy of PGI compilers. PGI compilers must be obtained directly from the vendor.
Refer to PGI documentation for information about using these compilers.
GNU C and C++ Compilers
You can use the GNU C and C++ compilers on the HP XC cluster. The HP XC cluster supplies copies of the
GNU C and C++ compilers.
Pathscale Compilers
You can use the Pathscale EKOPath Version 2.1 Compiler Suite on the CP4000 platform only. See the
following Web site for more information:
Developing Parallel Applications
41