Generally, yes. There are some corner cases where we have to
allocate additional buffers, but that's the main/easiest benefit to
describe. :-)
On Mar 6, 2006, at 11:21 AM, Xiaoning (David) Yang wrote:
Jeff,
Thank you for the reply. In other words, MPI_IN_PLACE only
eliminates data
movement on root, right?
David
***** Correspondence *****
From: Jeff Squyres <jsquy...@open-mpi.org>
Reply-To: Open MPI Users <us...@open-mpi.org>
Date: Fri, 3 Mar 2006 19:18:52 -0500
To: Open MPI Users <us...@open-mpi.org>
Subject: Re: [OMPI users] MPI_IN_PLACE
On Mar 3, 2006, at 6:42 PM, Xiaoning (David) Yang wrote:
call MPI_REDUCE(mypi,pi,1,MPI_DOUBLE_PRECISION,MPI_SUM,0,
& MPI_COMM_WORLD,ierr)
Can I use MPI_IN_PLACE in the MPI_REDUCE call? If I can, how?
Thanks for any help!
MPI_IN_PLACE is an MPI-2 construct, and is defined in the MPI-2
standard. Its use in MPI_REDUCE is defined in section 7.3.3:
http://www.mpi-forum.org/docs/mpi-20-html/node150.htm#Node150
It says:
"The ``in place'' option for intracommunicators is specified by
passing the value MPI_IN_PLACE to the argument sendbuf at the root.
In such case, the input data is taken at the root from the receive
buffer, where it will be replaced by the output data."
In the simple pi example program, it doesn't make much sense to use
MPI_IN_PLACE except as an example to see how it is used (i.e., it
won't gain much in terms of efficiency because you're only dealing
with a single MPI_DOUBLE_PRECISION). But you would want to put an
"if" statement around the call to MPI_REDUCE and pass MPI_IN_PLACE as
the first argument, and mypi as the second argument for the root.
For all other processes, use the same MPI_REDUCE that you're using
now.
--
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users
--
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/