ESMCI / mpi-serial

A one-processor version of MPI
BSD 3-Clause "New" or "Revised" License
3 stars 9 forks source link
mpi-library

######################################################################

mpi-serial

Version 2.5.0

Jim Edwards (jedwards@ucar.edu)

Originally written by Ray Loy John Yackovich

plus contributions from: Steve Goldhaber Robert Jacob Sean Patrick Santos Katherine Thayer-Calder

######################################################################

This library provides a one-processor version of MPI. Most common MPI calls, including all that are necessary for the Model Coupling Toolkit, are supported. This includes sends and receives (which cannot be simply stubbed out). See below for a complete list.


Quick Start

./configure make make tests


Configuration

There is now a dedicated configure for mpi-serial.

By default, it is assumed that Fortran programs linked with mpi-serial (e.g. MCT) will be using REAL variables of size 4 bytes, and DOUBLE PRECISION variables of size 8 bytes. If this is not the case (e.g. due to hardware sizes or Fortran compiler options), you must specify an option to the mpi-serial configure, e.g.:

./configure --enable-fort-real=16 --enable-fort-double=32


Manual make targets

'make' - compile the mpi-serial library

'make examples' - compile mpi-serial and its example programs

'make clean' - get rid of all objects and executables


List of MPI calls supported

general ops
  mpi_init
  mpi_init_thread
  mpi_finalize
  mpi_abort
  mpi_error_string
  mpi_errhandler_set
  mpi_initialized
  mpi_get_processor_name
  mpi_get_library_version
  mpi_wtime

comm and group ops
  mpi_comm_free
  mpi_comm_size
  mpi_comm_rank
  mpi_comm_dup
  mpi_comm_create
  mpi_comm_split
  mpi_comm_group
  mpi_comm_new
  mpi_comm_f2c
  mpi_comm_c2f
  mpi_group_incl
  mpi_group_range_incl
  mpi_group_union
  mpi_group_intersection
  mpi_group_difference
  mpi_group_translate_ranks
  mpi_group_free
  mpi_group_f2c
  mpi_group_c2f
  mpi_cart_create
  mpi_cart_coords
  mpi_dims_create
  mpi_intercomm_create
  mpi_intercomm_merge
  mpi_op_create
  mpi_op_free
  mpi_op_f2c
  mpi_op_c2f

send/receive ops
  mpi_irecv
  mpi_recv
  mpi_test
  mpi_testany
  mpi_testall
  mpi_testsome
  mpi_wait
  mpi_waitany
  mpi_waitall
  mpi_waitsome
  mpi_isend
  mpi_irecv
  mpi_send
  mpi_ssend
  mpi_rsend
  mpi_irsend
  mpi_sendrecv
  mpi_iprobe
  mpi_probe
  mpi_request_free
  mpi_request_f2c
  mpi_request_c2f

collective operations
  mpi_barrier
  mpi_bcast
  mpi_gather
  mpi_gatherv
  mpi_allgather
  mpi_scatter
  mpi_scatterv
  mpi_reduce
  mpi_allreduce
  mpi_reduce_scatter
  mpi_scan
  mpi_alltoall
  mpi_alltoallv
  mpi_alltoallw

data types and info objects
  mpi_get_count
  mpi_get_elements
  mpi_pack
  mpi_pack_size
  mpi_unpack
  mpi_info_create
  mpi_info_set
  mpi_info_free
  mpi_type_contigious
  mpi_type_vector
  mpi_type_hvector
  mpi_type_create_hvector
  mpi_type_indexed
  mpi_type_size
  mpi_type_struct
  mpi_type_dup
  mpi_type_extent
  mpi_type_commit
  mpi_type_free
  mpi_type_lb
  mpi_type_ub

EOF