README 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. ######################################################################
  2. mpi-serial
  3. Ray Loy (rloy@mcs.anl.gov)
  4. ######################################################################
  5. This library provides a one-processor version of MPI. Most common MPI
  6. calls, including all that are necessary for MCT, are supported. This
  7. includes sends and receives (which cannot be simply stubbed out). See
  8. below for a complete list.
  9. ---------------
  10. Configuration
  11. ---------------
  12. During the MCT configure, specify the option:
  13. --enable-mpiserial
  14. This will cause the main MCT 'make' to compile mpi-serial and use it.
  15. IMPORTANT:
  16. By default, it is assumed that Fortran programs linked with mpi-serial
  17. (e.g. MCT) will be using REAL variables of size 4 bytes, and DOUBLE
  18. PRECISION variables of size 8 bytes. If this is not the case
  19. (e.g. due to hardware sizes or Fortran compiler options), you must
  20. specify a value for FORT_SIZE, e.g.:
  21. --enable-mpiserial FORT_SIZE=real8double8
  22. The built-in choices for FORT_SIZE are:
  23. real4double8 (default)
  24. real8double8 (use when only REALs are auto-promoted)
  25. real8double16 (use when REALs and DOUBLEs are auto-promoted)
  26. How to configure for other Fortran data sizes:
  27. ----------------------------------------------
  28. The setting for FORT_SIZE is actually just a name used to choose a
  29. pre-made mpif.h file, mpif.$(FORT_SIZE).h, whose contents set the
  30. sizes of Fortran data types. If you need a different set of sizes,
  31. you can copy one of these files and edit it to reflect the desired
  32. sizes. E.g. Copy mpif.real4double8.h to mpif.mysize.h and edit these
  33. lines:
  34. PARAMETER (MPI_REAL=4) ! 4 is number of bytes
  35. PARAMETER (MPI_DOUBLE_PRECISION=8) ! 8 is number of bytes
  36. then configure MCT using:
  37. --enable-mpiserial FORT_SIZE=mysize
  38. At runtime (within MPI_Init), there is a consistancy check of Fortran
  39. data type sizes. If any sizes conflict with the config, there will be
  40. an error message.
  41. Advanced: The sizes of other types can be set in the same manner.
  42. However, note that the size of a Fortran "INTEGER" must be the same as
  43. C type specified for MPI_Status_int in mpi.h. Consult the author for
  44. further advice.
  45. --------------------------------
  46. Manual make targets
  47. --------------------------------
  48. Note: Normally this is handled by the main MCT 'make'.
  49. See "Configuration" above.
  50. 'make' - compile the mpi-serial library
  51. 'make examples' - compile mpi-serial and its example programs
  52. 'make clean' - get rid of all objects and executables
  53. ----------------------------------
  54. List of MPI calls supported
  55. ----------------------------------
  56. general ops
  57. mpi_init
  58. mpi_finalize
  59. mpi_abort
  60. mpi_error_string
  61. mpi_initialized
  62. comm and group ops
  63. mpi_comm_free
  64. mpi_comm_size
  65. mpi_comm_rank
  66. mpi_comm_dup
  67. mpi_comm_create
  68. mpi_comm_split
  69. mpi_comm_group
  70. mpi_group_incl
  71. mpi_group_free
  72. send/receive ops
  73. mpi_irecv
  74. mpi_recv
  75. mpi_test
  76. mpi_wait
  77. mpi_waitany
  78. mpi_waitall
  79. mpi_isend
  80. mpi_send
  81. collective operations
  82. mpi_barrier
  83. mpi_bcast
  84. mpi_gather
  85. mpi_gatherv
  86. mpi_allgather
  87. mpi_scatterv
  88. mpi_reduce
  89. mpi_allreduce
  90. -----
  91. EOF