Hello, Studying the MPI 3.1. Standard I went over the question if output arguments, which are not significant to a subgroup of processes may be modified by the MPI call. MPI-3.1, Sect. 2.3. on page 10 lines 42-44 only discusses input arguments, and therefore, the meaning of "not significant" for output arguments is somehow undefined. I would expect, that the values of these arguments are unchanged by MPI calls. An example: In the following code using MPI_Exscan, I cannot clearly say whether the last code line is needed to guarantee the 0 in recv on process 0.
... int myrank; int recv = 0; MPI_Comm_rank(MPI_COMM_WORLD, &myRank); MPI_Exscan(&send, &recv, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); if(myRank == 0) { recv = 0; } /* is this necessary according to MPI 3.1 ?*/
I expect, that all real MPI implementations guarantee the 0 on process 0. Best regards Christoph Niethammer -- Christoph Niethammer High Performance Computing Center Stuttgart (HLRS) Nobelstrasse 19 70569 Stuttgart Tel: ++49(0)711-685-87203 email: [email protected] http://www.hlrs.de/people/niethammer