Next: The c_udgram backend, Previous: The c_seq backend, Up: Supplied backends [Contents][Index]
c_mpi
backendThe
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.
• Command-line options for c_mpi: | Control over the generated C+MPI code | |
• Implementation of reductions: | How c_mpi implements the REDUCE statement | |
• Implementation of multicasts: | How c_mpi implements the MULTICAST statement |
Next: The c_udgram backend, Previous: The c_seq backend, Up: Supplied backends [Contents][Index]