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. 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) 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 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. 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. 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 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 ); % no mail discussion 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) % No mail discussion 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). 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. 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. 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. 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 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. 12: Change MPI-2, page 343, lines 22-23 // Type: const void * MPI::BOTTOM to // Type: void * const MPI::BOTTOM 13: In MPI 1.1, page 16, line 23, use strlen(message) + 1 instead of strlen(message) in the MPI_Send call. 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 ...