Next: , Previous: , Up: Supplied backends   [Contents][Index]


3.3.2 The c_mpi backend

The c_mpi backend is coNCePTuaL’s workhorse. It generates parallel programs written in ANSI C that communicate using the industry-standard MPI messaging library.

By default, c_mpi produces an executable program that can be run with mpirun, prun, pdsh, or whatever other job-launching program is normally used to run MPI programs. When ncptl is run with the --no-link option, c_mpi produces an object file that needs to be linked with the appropriate MPI library. When ncptl is run with the --no-compile option, c_mpi outputs ANSI C code that must be both compiled and linked.

c_mpi honors the following environment variables when compiling and linking C+ MPI programs: MPICC , MPICPPFLAGS , MPICFLAGS , MPILDFLAGS , MPILIBS . If any of these variables is not found in the environment, c_mpi will use the value specified/discovered at configuration time (see configure). MPICC defaults to the value of CC ; MPICFLAGS defaults to the value of CFLAGS ; the remaining variables are appended respectively to CPPFLAGS , LDFLAGS , and LIBS .

The following is a complete list of MPI functions employed by the c_mpi backend: MPI_Allreduce(), MPI_Alltoallv() , MPI_Barrier(), MPI_Bcast() , MPI_Comm_group(), MPI_Comm_rank() , MPI_Comm_size(), MPI_Comm_split(), MPI_Errhandler_create(), MPI_Errhandler_set(), MPI_Finalize() , MPI_Group_translate_ranks(), MPI_Init() , MPI_Irecv(), MPI_Isend() , MPI_Recv(), MPI_Reduce() , MPI_Send(), MPI_Ssend() , MPI_Waitall(). In addition, if ./configure is passed the --with-mpi-wtime option as described in configure, then all backends that utilize the coNCePTuaL run-time library, including c_mpi, will use MPI_Wtime() for taking performance measurements.


Next: , Previous: , Up: Supplied backends   [Contents][Index]

Scott Pakin, pakin@lanl.gov