Errors


Up: Contents Next: Unresolved Issues

The following are known errors or changes that we have made to the specification.


    1. (Fixed in IJSA version) Removal of complex data types from reduce operations. Changes:

    2. (Fixed in IJSA version) MPI_Status passed as pointer everywhere (an issue for the C binding only). Changes:

    3. (Fixed in IJSA version) Pointers to storage area should be of type MPI_Aint, rather than int. Changes:

    4. (Fixed in IJSA version)

    5. (Fixed in IJSA version) In section 3.2.2, the sentence fragment:

    should be


    6. The wording of the description of MPI_GROUP_RANGE_EXCL is confusing but I haven't decided what to change it to, yet. The function prototypes are correct, I believe.
    7. The example on page 148. The example would be more illustrious if

     
     
    MPI_Reduce(...,MPI_SUM, 1, commslave) -> MPI_Reduce(...,MPI_SUM, 0, commslave) 
    
    The communicator commslave is composed of the group grprem which is MPI_GROUP_WORLD without process 0. As such, grprem is numbered from 0 to (Numprocs - 2) where Numprocs is the size of MPI_GROUP_WORLD. Making the reduce go to process 0 makes the renumbering clear. It also makes it work for only 2 nodes - the current code fails since grprem would only have one node/process.
    8. (Fixed in IJSA version)

    9. Page 151. This example seems to imply that MPI_Comm_rank returns MPI_UNDEFINED in ma and mb if the calling process is not in comm_a or comm_b, respectively. 142 says nothing about this. If this was the intent (that is would return MPI_UNDEFINED) then the text about MPI_COMM_RANK should say this. This comment might also apply to MPI_GROUP_RANK on 135 if we want it to act the same. Their being the same is implied in the comments in the text.
    10. Page 159. It would be a little cleaner to add:
     
     
    MPI_Comm_free(&myComm); 
    
    This is done for Example 2 on page 160.
    11. Page 162 Instead of (MPI_Comm) 0 I think it should be MPI_COMM_NULL. 145:8 says MPI_Comm_split returns MPI_COMM_NULL when it has funny cases. I don't recall reading 0 and NULL were the same for this case.
    12. Page 162.
     
     
    MPI_Attr_keyval_create -> MPI_Keyval_create 
    
    as per page 166. Same comment applies to page 170.
    13. Page 165.
     
     
    MPI_Intercomm_create(local_leader, local_comm, buffer[0],new_world, ..) ->  
    MPI_Intercomm_create(local_comm, local_leader, new_world, buffer[0], ..) 
    
    as defined on 157.
    14. Page 167 It seems to me that the Fortran definition needs IERROR. 167 says that it returns MPI_SUCCESS if it works. Only the C version seems to have a way to return this. The same comment applies to: 167 for DELETE_FUNCTION
    15. Page 167 Do we want MPI_NULL_FN, MPI_DUP_FN in Appendix A? It is a function but some are listed
    16. Page 167 MPI_KEYVAL_INVALID seems to be missing from Appendix A.
    17. Page 169, line 38, A null Rational should be removed.
    18. Page 170 MPI_Abort takes a comm and error code, not string as defined Page 197.
    19. Page 171
     
     
    MPI_Comm comm -> MPI_Comm *comm. 
    
    See definition on 167. And, For the same reason,
     
     
    int keyval -> int *keyval 
    
    And
     
     
    gop_stuff_copier(..., gop_stuff, extra) -> 
    gop_stuff_copier(..., extra, gop_stuff_in, gop_stuff_out, flag)  
    
    per definition on page 166. And
     
     
    MPI_Comm comm -> MPI_Comm *comm 
    
    And
     
     
    int keyval -> int *keyval.   
    
    Also need to add *flag for above change
     
     
    gop_stuff_type *gop_stuff -> gop_stuff_type *gop_stuff_in, **gop_stuff_out 
    
    And, I think we need to add the line:
     
     
    *gop_stuff_out = gop_stuff_in; 
    
    Right now, the routine does not appear to copy anything; only increments the reference count. And, need to make
     
     
    gop_stuff -> gop_stuff_in 
    
    if you make the other changes.
    20. Page 215, line 31:
     
     
    int MPI_Comm_compare( MPI_Comm comm1, comm2, int *result ) 
    
    should be
     
     
    int MPI_Comm_compare( MPI_Comm comm1, MPI_Comm comm2, int *result ) 
    

    21. Page 142, line 39. The sentence should read:

    MPI_IDENT results if and only if comm1 and comm2 are handles to the same object (identical groups and same contexts) or both are null.
    22.





Up: Contents Next: Unresolved Issues

Return to MPI Standard Index
Return to MPI home page