My bad, I found bug in my call to MPI_Win_create, the variable I passed was unallocated at the time of the call. Interestingly, no errors were returned from that call when I used the unallocated array... Anyway, everything is working since I corrected that, thanks for the help.
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: Monday, January 03, 2011 11:18 AM To: Open MPI Users Subject: Re: [OMPI users] Using MPI_Put/Get correctly? 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