Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Using MPI_Put/Get correctly?
From: Grismer, Matthew J Civ USAF AFMC AFRL/RBAT (Matthew.Grismer_at_[hidden])
Date: 2011-01-03 11:43:02


I'm using Open MPI 1.4.3, is the bug in that version as well?

-----Original Message-----
From: users-bounces_at_[hidden] [mailto:users-bounces_at_[hidden]] On
Behalf Of Barrett, Brian W
Sent: Monday, January 03, 2011 11:35 AM
To: Open MPI Users
Subject: Re: [OMPI users] Using MPI_Put/Get correctly?

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-bounces_at_[hidden] [mailto:users-bounces_at_[hidden]]
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-bounces_at_[hidden] [mailto:users-bounces_at_[hidden]]
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-bounces_at_[hidden] [mailto:users-bounces_at_[hidden]]
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
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> 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
_______________________________________________
users mailing list
users_at_[hidden]
http://www.open-mpi.org/mailman/listinfo.cgi/users