Mail discussion

  1. %MPI_COMM_PARENT instead of MPI_COMM_GET_PARENT

    MPI-2, page 179, lines 4-5 change

    Thus, the names of MPI_COMM_WORLD, MPI_COMM_SELF, and MPI_COMM_PARENT will have the default of MPI_COMM_WORLD, MPI_COMM_SELF, and MPI_COMM_PARENT.

    to

    Thus, the names of MPI_COMM_WORLD, MPI_COMM_SELF, and the communicator returned by MPI_COMM_GET_PARENT (if not MPI_COMM_NULL) will have the default of MPI_COMM_WORLD, MPI_COMM_SELF, and MPI_COMM_PARENT.

    MPI-2, page 94, line 3-5, change

    * The manager is represented as the process with rank 0 in (the remote
    * group of) MPI_COMM_PARENT. If the workers need to communicate among
    * themselves, they can use MPI_COMM_WORLD.
    

    to

    * The manager is represented as the process with rank 0 in (the remote
    * group of) the parent communicator. If the workers need to communicate 
    * among themselves, they can use MPI_COMM_WORLD.
    

    Mail discussion

  2. %MPI_UNPACK_EXTERNAL

    MPI2, page 79, Line 11 is

    MPI_UNPACK_EXTERNAL (datarep, inbuf, incount, datatype, outbuf, outsize,
    position)
    
    but should be
    MPI_UNPACK_EXTERNAL (datarep, inbuf, insize, position, outbuf, outcount,
    datatype)
    

    Mail discussion

  3. %Additional C++ binding errors

    MPI-2, page 337, line 31-32 reads

    bool MPI::Win::Get_attr(const MPI::Win&win, int win_keyval, 
                  void* attribute_val) const
    
    but should read
    bool MPI::Win::Get_attr(int win_keyval, void* attribute_val) const 
    

    Mail discussion

  4. %MPI_REQUEST_CANCEL used where MPI_CANCEL intended

    On page 172, line 37 in section 8.2, change MPI_REQUEST_CANCEL to MPI_CANCEL.

    Mail discussion

  5. %Intercommunicator collective and datatypes

    MPI-2, page 163, line 22 reads

    Within each group, all processes provide the same recvcounts argument, and the sum of the recvcounts entries should be the same for the two groups.
    but should read
    Within each group, all processes provide the same recvcounts argument, and the sum of the recvcounts entries and datatype should specify the same type signature for the two groups.

    Mail discussion

  6. %const in C++ specification of predefined MPI objects

    MPI-2, page 345, line 37: Remove the const from const MPI::Op.

    MPI-2, page 346, line 20: Remove the const from const MPI::Group.

    MPI-2, page 346, add after line 34:
    Advice to implementors: If an implementation does not change the value of predefined handles while execution of MPI_Init, the implementation is free to define the predefined operation handles as const MPI::Op and the predefined group handle MPI::GROUP_EMPTY as const MPI::Group. Other predefined handles must not be "const" because they are allowed as INOUT argument in the MPI_COMM_SET_NAME/ATTR and MPI_TYPE_SET_NAME/ATTR routines. End of advice to implementors

    Mail discussion

  7. %Error in MPI_Scan Example

    MPI-1, page 128, line 11, in MPI-1.1 has an extraneous root argument. That line should be

        MPI_Scan( a, answer, 1, sspair, myOp, comm );
    

  8. %Missing newline in Fortran binding:

    MPI-2, page 223, line 19. Change

    MPI_FILE_GET_VIEW(FH, DISP, ETYPE, FILETYPE, DATAREP, IERROR)
    INTEGER FH, ETYPE, FILETYPE, IERROR
    CHARACTER*(*) DATAREP, INTEGER(KIND=MPI_OFFSET_KIND) DISP

    to

    MPI_FILE_GET_VIEW(FH, DISP, ETYPE, FILETYPE, DATAREP, IERROR)
    INTEGER FH, ETYPE, FILETYPE, IERROR
    CHARACTER*(*) DATAREP
    INTEGER(KIND=MPI_OFFSET_KIND) DISP

    in io-2.tex. (Replace the comma after the declaration of datarep)

  9. %Misspelled argument in Fortran binding

    MPI-2, page 66, line 26, change

    MPI_TYPE_CREATE_HVECTOR(COUNT, BLOCKLENGTH, STIDE, OLDTYPE, NEWTYPE, IERROR)
    INTEGER COUNT, BLOCKLENGTH, OLDTYPE, NEWTYPE, IERROR
    INTEGER(KIND=MPI_ADDRESS_KIND) STRIDE

    to

    MPI_TYPE_CREATE_HVECTOR(COUNT, BLOCKLENGTH, STRIDE, OLDTYPE, NEWTYPE, IERROR)
    INTEGER COUNT, BLOCKLENGTH, OLDTYPE, NEWTYPE, IERROR
    INTEGER(KIND=MPI_ADDRESS_KIND) STRIDE

    in misc-2.tex (Replace STIDE with STRIDE).

    Mail discussion

  10. %Error in MPI-1, Example 3.12

    Examples in Chapter 3 of MPI 1.1 require several fixes.

    MPI 1.1, Example 3.12, page 43, line 47 and page 44, lines 1, 5, 8, 10, and 13, the communicator argument comm must be added before the req argument.

    Mail discussion

    The ierr argument must be added at the end of the argument list in the calls to MPI_COMM_RANK and MPI_WAIT in MPI 1.1, page 43, line 43, and page 44, lines 6 and 14.

    Mail discussion

    The ierr argument must be added at the end of the argument list in the calls to MPI_WAIT in MPI 1.1, page 44, lines 35 and 36.

    Mail discussion

    The lines in MPI 1.1, page 52, line 45, and page 53, line 17

    IF (status(MPI_SOURCE) = 0) THEN
    
    should be
    IF (status(MPI_SOURCE) .EQ. 0) THEN
    

    Mail discussion

  11. % Error in MPI-1, Example 3.34

    MPI 1.1, page 80, line 2, The variable base should be declared as MPI_Aint, not int, in Example 3.34.

    Mail discussion

  12. Change MPI-2, page 343, lines 22-23

        // Type: const void *
        MPI::BOTTOM
    
    to
        // Type: void * const
        MPI::BOTTOM
    

    Mail discussion

  13. In MPI 1.1, page 16, line 23, use strlen(message) + 1 instead of strlen(message) in the MPI_Send call.

    Mail discussion

  14. A LaTeX line break is needed in MPI 1.1, page 58, line 44, in Section 3.9. The text should read

    be invoked in a sequence of the form,
    Create (Start Complete)* Free
    where * indicates zero or more repetitions. If the same communication ...