Skip to content

ESMCI/mpi-serial

Repository files navigation

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

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