On Mar 6, 2006, at 3:38 PM, Xiaoning (David) Yang wrote:
I'm not quite sure how collective computation calls work. For example, for an MPI_REDUCE with MPI_SUM, do all the processes collect values from all the processes and calculate the sum and put result in recvbuf on root? Sounds strange.
The implementation of how MPI_REDUCE works is not specified by the standard. Only the semantics are specified (when MPI_REDUCE with MPI_SUM returns, the root's recvbuf has the sum of all the data from the non-root processes). As such, an MPI implementation is free to implement it however it wishes.
There has been a considerable amount of research on how to optimize collective algorithm implementations in MPI over the past ~5 years (and outside of MPI for 20+ years before that).
-- {+} Jeff Squyres {+} The Open MPI Project {+} http://www.open-mpi.org/