Matt -

There's a known bug in the datatype engine of Open MPI 1.5 that breaks MPI 
One-sided when used with user-defined datatypes.  Unfortunately, I don't have a 
timetable as to when it will be fixed.

Brian

On Jan 3, 2011, at 9:18 AM, Grismer,    Matthew J Civ USAF AFMC AFRL/RBAT wrote:

> Unfortunately correcting the integer type for the displacement does not fix
> the problem in my code, argh! So, thinking this might have something to do
> with the large arrays and amount of data being passed in the actual code, I
> modified my example (attached putbothways2.f90) so that the array sizes and
> amount of data swapped are nearly identical to the code giving me the issue.
> I also filled the array that is shared with random data, instead of 0's and
> 1's, to ensure nothing special was happening due to the simple, uniform
> data. Unfortunately, the example works great, but my actual code still seg
> faults.
> 
> So, the summary is the example code that uses MPI_Put calls with indexed
> datatypes to swap data between 2 processors works without issue, while the
> actual code that communicates in the same manner fails.  The only difference
> is the actual code allocates many other arrays, which are communicated in
> various ways (sends, puts, broadcasts, etc).  I checked and re-checked all
> the argument lists associated with the indexed data, window, and puts;
> everything looks correct.  Any thoughts or suggestions on how to proceed?
> 
> Matt
> 
> -----Original Message-----
> From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On
> Behalf Of Grismer,Matthew J Civ USAF AFMC AFRL/RBAT
> Sent: Wednesday, December 29, 2010 1:42 PM
> To: Open MPI Users
> Subject: Re: [OMPI users] Using MPI_Put/Get correctly?
> 
> Someone correctly pointed out the bug in my examples.  In the MPI_Put I
> pass a 0 as the displacement, however, the argument must be of type
> integer (kind=MPI_ADDRESS_KIND), which is NOT the default integer type.
> Replacing the 0 with the correct integer type fixes both examples.  Now
> to see if it fixes the actual code I am having difficulty with...
> 
> -----Original Message-----
> From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On
> Behalf Of Grismer,Matthew J Civ USAF AFMC AFRL/RBAT
> Sent: Monday, December 27, 2010 5:33 PM
> To: Open MPI Users
> Subject: Re: [OMPI users] Using MPI_Put/Get correctly?
> 
> I decided to try and isolate the issue, and created two example test
> programs
> that appear to highlight an issue
> with Open MPI; both die when I run them on 2 processors.  I am pretty
> certain
> the first (putoneway.f90) should work, as I am only doing a single put
> from
> one processor to a second processor; the target processor is doing
> nothing
> with the window'ed array that is receiving the data. My guess is the
> problem
> lies in the indexed datatypes that I am using for both the origin and
> target.
> 
> The second case (putbothways.f90) closely mirrors what I am actually
> trying
> to do in my code, that is have each processor put into the other
> processors
> window'ed array at the same time.  So, each process is sending from and
> receiving into the same array at the same time, with no overlap in the
> sent
> and received data.  Once again I'm using indexed data types for both the
> origin and target.
> 
> To build:  mpif90 putoneway.f90
> To run:  mpiexec -np 2 a.out
> 
> Matt
> 
> -----Original Message-----
> From: users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] On
> Behalf Of James Dinan
> Sent: Thursday, December 16, 2010 10:09 AM
> To: Open MPI Users
> Subject: Re: [OMPI users] Using MPI_Put/Get correctly?
> 
> On 12/16/2010 08:34 AM, Jeff Squyres wrote:
>> Additionally, since MPI-3 is updating the semantics of the one-sided
>> stuff, it might be worth waiting for all those clarifications before
>> venturing into the MPI one-sided realm.  One-sided semantics are much
>> more subtle and complex than two-sided semantics.
> 
> Hi Jeff,
> 
> I don't think we should give users the hope that MPI-3 RMA will be out
> tomorrow.  The RMA revisions are still in proposal form and need work.
> Realistically speaking, we might be able to get this accepted into the
> standard within a year and it will be another year before
> implementations catch up.  If users need one-sided now, they should use
> the MPI-2 one-sided API.
> 
> MPI-3 RMA extends MPI-2 RMA and will be backward compatible, so anything
> you write now will still work.  It's still unclear to me whether MPI-3's
> RMA semantics will be the leap forward in usability we have hoped for.
> We are trying to make it more flexible, but there will likely still be
> tricky parts due to portability and performance concerns.
> 
> So, my advice: don't be scared of MPI-2.  I agree, it's complicated, but
> once you get acclimated it's not that bad.  Really.  :)
> 
> Best,
> ~Jim.
> _______________________________________________
> 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
> <putbothways2.f90><smime.p7s><ATT00002..txt>

-- 
  Brian W. Barrett
  Dept. 1423: Scalable System Software
  Sandia National Laboratories



Reply via email to