<div dir="ltr">Hi, Jeff<div><br></div><div>Thanks a lot for your reply. Sorry about subject issue. </div><div><br>1.<br></div><div><div style="margin-left:40px"><span style="font-family:arial,sans-serif;font-size:13px">MPI_Win_fence is not similar to MPI_Barrier in some cases.  The</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">MPICH implementation can turn some calls into no-ops and others into</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">MPI_Reduce_scatter.</span><br>

</div><div class="gmail_extra">I am not quite sure about "turn some calls into no-ops and others into MPI_Reduce_scatter" Could you please give an example if possible? Another thing is if a process create a window for other process, but the data access is available after some operations. Should I use MPI_Win_fence or MPI_Barrier to sync? or other methods? <br>
<br>2.<br></div><div class="gmail_extra"><div style="margin-left:40px">Regarding "use MPI window as thread level", I really don't<br>
understand your thinking at all.  MPI RMA is not shared memory nor is<br>
MPI a threading model.<br></div>Sorry for uncleared statements, right now I would like to do multithreads and MPI hybrid programming. let me give an example: I have 3 processes, each one has 8 threads. thread 0 in process 0 creates a RMA window. if I would like all other threads to access it, should I use thread 0 in process 1, thread 0 in process 2 to MPI_Get the data from window, then use shared memory for internal threads to load the data? i am not sure what is the proper way for RMA in hybrid model.<br>
<br></div><div class="gmail_extra">Thank you so much!<br><br></div><div class="gmail_extra">Sufeng<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jul 5, 2013 at 6:15 AM,  <span dir="ltr"><<a href="mailto:discuss-request@mpich.org" target="_blank">discuss-request@mpich.org</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Send discuss mailing list submissions to<br>
        <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:discuss-request@mpich.org" target="_blank">discuss-request@mpich.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:discuss-owner@mpich.org" target="_blank">discuss-owner@mpich.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of discuss digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Re:  beginner for remote mem access (Jeff Hammond)<br>
   2.  Running configure on Suse Enterprise 10<br>
      (<a href="mailto:anton.s.murfin@sellafieldsites.com" target="_blank">anton.s.murfin@sellafieldsites.com</a>)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Wed, 3 Jul 2013 14:50:44 -0500<br>
From: Jeff Hammond <<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>><br>
To: <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
Subject: Re: [mpich-discuss] beginner for remote mem access<br>
Message-ID:<br>
        <CAGKz=uJN2iH3Pxjxyq=YzrP=<a href="mailto:XG5Tp2%2BhuxmBFTh%2BLr7nVdLU4w@mail.gmail.com" target="_blank">XG5Tp2+huxmBFTh+Lr7nVdLU4w@mail.gmail.com</a>><br>
Content-Type: text/plain; charset=ISO-8859-1<br>
<br>
1) When you reply to the digest emails, change the subject to that of<br>
the thread you care to respond to.  That will make it much easier for<br>
others to track the thread.<br>
2) MPI_Win_fence is not similar to MPI_Barrier in some cases.  The<br>
MPICH implementation can turn some calls into no-ops and others into<br>
MPI_Reduce_scatter.<br>
3) Regarding "use MPI window as thread level", I really don't<br>
understand your thinking at all.  MPI RMA is not shared memory nor is<br>
MPI a threading model.<br>
<br>
Jeff<br>
<br>
On Wed, Jul 3, 2013 at 2:46 PM, Sufeng Niu <<a href="mailto:sniu@hawk.iit.edu" target="_blank">sniu@hawk.iit.edu</a>> wrote:<br>
><br>
> Thanks a lot for your guys reply. I should initial b array, I figure out the<br>
> MPI_Win_fence should be called by all processes, which will solve the<br>
> assertion failed issue.<br>
><br>
> it seems that MPI_Win_fence is very similar to MPI_Barrier, Can I say<br>
> MPI_Win_fence is the RMA version of MPI_Barrier?<br>
><br>
> sorry about so many questions. Can I use MPI window as thread level? let's<br>
> say I have 4 processes, each process has 8 threads. if only one thread is<br>
> used to create mem access window, other process copy it and internal 8<br>
> threads use shared memory to perform some operations. Is that ok?<br>
><br>
> Thanks a lot!<br>
><br>
><br>
><br>
> On Wed, Jul 3, 2013 at 1:28 PM, <<a href="mailto:discuss-request@mpich.org" target="_blank">discuss-request@mpich.org</a>> wrote:<br>
>><br>
>> Send discuss mailing list submissions to<br>
>>         <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>><br>
>> To subscribe or unsubscribe via the World Wide Web, visit<br>
>>         <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
>> or, via email, send a message with subject or body 'help' to<br>
>>         <a href="mailto:discuss-request@mpich.org" target="_blank">discuss-request@mpich.org</a><br>
>><br>
>> You can reach the person managing the list at<br>
>>         <a href="mailto:discuss-owner@mpich.org" target="_blank">discuss-owner@mpich.org</a><br>
>><br>
>> When replying, please edit your Subject line so it is more specific<br>
>> than "Re: Contents of discuss digest..."<br>
>><br>
>><br>
>> Today's Topics:<br>
>><br>
>>    1.  beginner for remote mem access (Sufeng Niu)<br>
>>    2. Re:  beginner for remote mem access (Yi Gu)<br>
>>    3. Re:  beginner for remote mem access (Yi Gu)<br>
>>    4. Re:  beginner for remote mem access (Jeff Hammond)<br>
>><br>
>><br>
>> ----------------------------------------------------------------------<br>
>><br>
>> Message: 1<br>
>> Date: Wed, 3 Jul 2013 13:12:46 -0500<br>
>> From: Sufeng Niu <<a href="mailto:sniu@hawk.iit.edu" target="_blank">sniu@hawk.iit.edu</a>><br>
>> To: <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>> Subject: [mpich-discuss] beginner for remote mem access<br>
>> Message-ID:<br>
>><br>
>> <CAFNNHkwxqXUB_+b8_tZ=<a href="mailto:L5K7VcDVhsz4ZMDDMGF55v-FAhgeqg@mail.gmail.com" target="_blank">L5K7VcDVhsz4ZMDDMGF55v-FAhgeqg@mail.gmail.com</a>><br>
>> Content-Type: text/plain; charset="iso-8859-1"<br>
>><br>
>> Hi,<br>
>><br>
>> I am a beginner and just try to use remote memory access, and I wrote a<br>
>> simple program to test it:<br>
>><br>
>> #include "mpi.h"<br>
>> #include <stdio.h><br>
>> #define SIZE 8<br>
>><br>
>> int main(int argc, char *argv[])<br>
>> {<br>
>>         int numtasks, rank, source=0, dest, tag=1, i;<br>
>>         float a[64] =<br>
>>         {<br>
>>                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>>                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>>                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>>                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>>         };<br>
>>         float b[SIZE];<br>
>><br>
>>         MPI_Status stat;<br>
>><br>
>>         MPI_Init(&argc,&argv);<br>
>>         MPI_Comm_rank(MPI_COMM_WORLD, &rank);<br>
>>         MPI_Comm_size(MPI_COMM_WORLD, &numtasks);<br>
>><br>
>>         MPI_Win win;<br>
>><br>
>>         // check processor rank<br>
>>         char processor_name[MPI_MAX_PROCESSOR_NAME];<br>
>>         int name_len;<br>
>>         MPI_Get_processor_name(processor_name, &name_len);<br>
>>         printf("-- processor %s, rank %d out of %d processors\n",<br>
>> processor_name, rank, numtasks);<br>
>><br>
>>         MPI_Barrier(MPI_COMM_WORLD);<br>
>><br>
>>         if (numtasks == 4) {<br>
>>                 if (rank == 0) {<br>
>>                         printf("create window \n");<br>
>>                         MPI_Win_create(a, 8*sizeof(float), sizeof(float),<br>
>> MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>><br>
>>                 }<br>
>>                 else {<br>
>>                         MPI_Win_create(MPI_BOTTOM, 0, sizeof(float),<br>
>> MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>>                 }<br>
>><br>
>>                 MPI_Win_fence(0, win);<br>
>><br>
>>                 if (rank == 1){<br>
>>                         MPI_Get(b, SIZE, MPI_FLOAT, 0, 8, SIZE, MPI_FLOAT,<br>
>> win);<br>
>><br>
>>                         MPI_Win_fence(0, win);<br>
>>                 }<br>
>><br>
>>                 printf("rank= %d  b= %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f<br>
>> %3.1f %3.1f\n", rank,b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7]);<br>
>>         }<br>
>>         else<br>
>>                 printf("Must specify %d processors. Terminating.\n",SIZE);<br>
>><br>
>>         MPI_Win_free(&win);<br>
>>         MPI_Finalize();<br>
>> }<br>
>><br>
>> However the terminal gives some odd results:<br>
>> rank= 0  b= 0.0 0.0 0.0 0.0 0.0 0.0 -71847793475452928.0 0.0<br>
>> rank= 2  b= 0.0 0.0 0.0 0.0 0.0 0.0 222086852849451401216.0 0.0<br>
>> rank= 3  b= 0.0 0.0 0.0 0.0 0.0 0.0 -74882.4 0.0<br>
>> rank= 1  b= 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0<br>
>> the rank 1 is correct results, but others should be all zero.<br>
>> terminal also give some comments: "Assertion failed in file<br>
>> src/mpid/ch3/src/ch3u_rma_sync.c at line 5061: win_ptr->my_counter >= 0<br>
>> internal ABORT - process 0"<br>
>><br>
>> another question is if I use remote memory access. all process which does<br>
>> not create window for share must add additional line:<br>
>> MPI_Win_create(MPI_BOTTOM, 0, data_type, MPI_INFO_NULL, MPI_COMM_WORLD,<br>
>> &win); correct?<br>
>><br>
>> Thanks a lot!<br>
>><br>
>> --<br>
>> Best Regards,<br>
>> Sufeng Niu<br>
>> ECASP lab, ECE department, Illinois Institute of Technology<br>
>> Tel: <a href="tel:312-731-7219" value="+13127317219" target="_blank">312-731-7219</a><br>
>> -------------- next part --------------<br>
>> An HTML attachment was scrubbed...<br>
>> URL:<br>
>> <<a href="http://lists.mpich.org/pipermail/discuss/attachments/20130703/91c4ec09/attachment-0001.html" target="_blank">http://lists.mpich.org/pipermail/discuss/attachments/20130703/91c4ec09/attachment-0001.html</a>><br>



>><br>
>> ------------------------------<br>
>><br>
>> Message: 2<br>
>> Date: Wed, 3 Jul 2013 13:18:26 -0500<br>
>> From: Yi Gu <<a href="mailto:gyi@mtu.edu" target="_blank">gyi@mtu.edu</a>><br>
>> To: <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>> Subject: Re: [mpich-discuss] beginner for remote mem access<br>
>> Message-ID:<br>
>><br>
>> <CAE5iO_SNJKyC9sG3XbTu4vbS=<a href="mailto:boDrOEV-Y69jUXZR6MQDanUZA@mail.gmail.com" target="_blank">boDrOEV-Y69jUXZR6MQDanUZA@mail.gmail.com</a>><br>
>> Content-Type: text/plain; charset="iso-8859-1"<br>
>><br>
>> Hi, sufeng:<br>
>><br>
>> I think you may first initialize array first, since you print out b<br>
>> without<br>
>> initialization,<br>
>> it could print out anything.<br>
>><br>
>> Yi<br>
>><br>
>><br>
>> On Wed, Jul 3, 2013 at 1:12 PM, Sufeng Niu <<a href="mailto:sniu@hawk.iit.edu" target="_blank">sniu@hawk.iit.edu</a>> wrote:<br>
>><br>
>> > Hi,<br>
>> ><br>
>> > I am a beginner and just try to use remote memory access, and I wrote a<br>
>> > simple program to test it:<br>
>> ><br>
>> > #include "mpi.h"<br>
>> > #include <stdio.h><br>
>> > #define SIZE 8<br>
>> ><br>
>> > int main(int argc, char *argv[])<br>
>> > {<br>
>> >         int numtasks, rank, source=0, dest, tag=1, i;<br>
>> >         float a[64] =<br>
>> >         {<br>
>> >                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> > 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> > 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> > 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> > 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >         };<br>
>> >         float b[SIZE];<br>
>> ><br>
>> >         MPI_Status stat;<br>
>> ><br>
>> >         MPI_Init(&argc,&argv);<br>
>> >         MPI_Comm_rank(MPI_COMM_WORLD, &rank);<br>
>> >         MPI_Comm_size(MPI_COMM_WORLD, &numtasks);<br>
>> ><br>
>> >         MPI_Win win;<br>
>> ><br>
>> >         // check processor rank<br>
>> >         char processor_name[MPI_MAX_PROCESSOR_NAME];<br>
>> >         int name_len;<br>
>> >         MPI_Get_processor_name(processor_name, &name_len);<br>
>> >         printf("-- processor %s, rank %d out of %d processors\n",<br>
>> > processor_name, rank, numtasks);<br>
>> ><br>
>> >         MPI_Barrier(MPI_COMM_WORLD);<br>
>> ><br>
>> >         if (numtasks == 4) {<br>
>> >                 if (rank == 0) {<br>
>> >                         printf("create window \n");<br>
>> >                         MPI_Win_create(a, 8*sizeof(float),<br>
>> > sizeof(float),<br>
>> > MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>> ><br>
>> >                 }<br>
>> >                 else {<br>
>> >                         MPI_Win_create(MPI_BOTTOM, 0, sizeof(float),<br>
>> > MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>> >                 }<br>
>> ><br>
>> >                 MPI_Win_fence(0, win);<br>
>> ><br>
>> >                 if (rank == 1){<br>
>> >                         MPI_Get(b, SIZE, MPI_FLOAT, 0, 8, SIZE,<br>
>> > MPI_FLOAT,<br>
>> > win);<br>
>> ><br>
>> >                         MPI_Win_fence(0, win);<br>
>> >                 }<br>
>> ><br>
>> >                 printf("rank= %d  b= %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f<br>
>> > %3.1f %3.1f\n", rank,b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7]);<br>
>> >         }<br>
>> >         else<br>
>> >                 printf("Must specify %d processors.<br>
>> > Terminating.\n",SIZE);<br>
>> ><br>
>> >         MPI_Win_free(&win);<br>
>> >         MPI_Finalize();<br>
>> > }<br>
>> ><br>
>> > However the terminal gives some odd results:<br>
>> > rank= 0  b= 0.0 0.0 0.0 0.0 0.0 0.0 -71847793475452928.0 0.0<br>
>> > rank= 2  b= 0.0 0.0 0.0 0.0 0.0 0.0 222086852849451401216.0 0.0<br>
>> > rank= 3  b= 0.0 0.0 0.0 0.0 0.0 0.0 -74882.4 0.0<br>
>> > rank= 1  b= 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0<br>
>> > the rank 1 is correct results, but others should be all zero.<br>
>> > terminal also give some comments: "Assertion failed in file<br>
>> > src/mpid/ch3/src/ch3u_rma_sync.c at line 5061: win_ptr->my_counter >= 0<br>
>> > internal ABORT - process 0"<br>
>> ><br>
>> > another question is if I use remote memory access. all process which<br>
>> > does<br>
>> > not create window for share must add additional line:<br>
>> > MPI_Win_create(MPI_BOTTOM, 0, data_type, MPI_INFO_NULL, MPI_COMM_WORLD,<br>
>> > &win); correct?<br>
>> ><br>
>> > Thanks a lot!<br>
>> ><br>
>> > --<br>
>> > Best Regards,<br>
>> > Sufeng Niu<br>
>> > ECASP lab, ECE department, Illinois Institute of Technology<br>
>> > Tel: <a href="tel:312-731-7219" value="+13127317219" target="_blank">312-731-7219</a><br>
>> ><br>
>> > _______________________________________________<br>
>> > discuss mailing list     <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>> > To manage subscription options or unsubscribe:<br>
>> > <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
>> ><br>
>> -------------- next part --------------<br>
>> An HTML attachment was scrubbed...<br>
>> URL:<br>
>> <<a href="http://lists.mpich.org/pipermail/discuss/attachments/20130703/4414c5cd/attachment-0001.html" target="_blank">http://lists.mpich.org/pipermail/discuss/attachments/20130703/4414c5cd/attachment-0001.html</a>><br>



>><br>
>> ------------------------------<br>
>><br>
>> Message: 3<br>
>> Date: Wed, 3 Jul 2013 13:26:29 -0500<br>
>> From: Yi Gu <<a href="mailto:gyi@mtu.edu" target="_blank">gyi@mtu.edu</a>><br>
>> To: <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>> Subject: Re: [mpich-discuss] beginner for remote mem access<br>
>> Message-ID:<br>
>><br>
>> <CAE5iO_Rj7uTaVsEmJ1LBHe+OpTCJjLqpMmvBmjZRd=6WLWC=<a href="mailto:EQ@mail.gmail.com" target="_blank">EQ@mail.gmail.com</a>><br>
>> Content-Type: text/plain; charset="iso-8859-1"<br>
>><br>
>> Hi, sufeng:<br>
>><br>
>> I am not sure the second problem is, but I think<br>
>> MPI_Win_create(MPI_BOTTOM, 0, sizeof(float), MPI_INFO_NULL,<br>
>> MPI_COMM_WORLD,<br>
>> &win);<br>
>> should be<br>
>> MPI_Win_create(MPI_BOTTOM, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>><br>
>> For the third question, if they need to access, yes.<br>
>><br>
>> Yi<br>
>><br>
>><br>
>> On Wed, Jul 3, 2013 at 1:18 PM, Yi Gu <<a href="mailto:gyi@mtu.edu" target="_blank">gyi@mtu.edu</a>> wrote:<br>
>><br>
>> > Hi, sufeng:<br>
>> ><br>
>> > I think you may first initialize array first, since you print out b<br>
>> > without initialization,<br>
>> > it could print out anything.<br>
>> ><br>
>> > Yi<br>
>> ><br>
>> ><br>
>> > On Wed, Jul 3, 2013 at 1:12 PM, Sufeng Niu <<a href="mailto:sniu@hawk.iit.edu" target="_blank">sniu@hawk.iit.edu</a>> wrote:<br>
>> ><br>
>> >> Hi,<br>
>> >><br>
>> >> I am a beginner and just try to use remote memory access, and I wrote a<br>
>> >> simple program to test it:<br>
>> >><br>
>> >> #include "mpi.h"<br>
>> >> #include <stdio.h><br>
>> >> #define SIZE 8<br>
>> >><br>
>> >> int main(int argc, char *argv[])<br>
>> >> {<br>
>> >>         int numtasks, rank, source=0, dest, tag=1, i;<br>
>> >>         float a[64] =<br>
>> >>         {<br>
>> >>                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,<br>
>> >> 11.0,<br>
>> >> 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >>                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,<br>
>> >> 11.0,<br>
>> >> 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >>                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,<br>
>> >> 11.0,<br>
>> >> 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >>                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,<br>
>> >> 11.0,<br>
>> >> 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >>         };<br>
>> >>         float b[SIZE];<br>
>> >><br>
>> >>         MPI_Status stat;<br>
>> >><br>
>> >>         MPI_Init(&argc,&argv);<br>
>> >>         MPI_Comm_rank(MPI_COMM_WORLD, &rank);<br>
>> >>         MPI_Comm_size(MPI_COMM_WORLD, &numtasks);<br>
>> >><br>
>> >>         MPI_Win win;<br>
>> >><br>
>> >>         // check processor rank<br>
>> >>         char processor_name[MPI_MAX_PROCESSOR_NAME];<br>
>> >>         int name_len;<br>
>> >>         MPI_Get_processor_name(processor_name, &name_len);<br>
>> >>         printf("-- processor %s, rank %d out of %d processors\n",<br>
>> >> processor_name, rank, numtasks);<br>
>> >><br>
>> >>         MPI_Barrier(MPI_COMM_WORLD);<br>
>> >><br>
>> >>         if (numtasks == 4) {<br>
>> >>                 if (rank == 0) {<br>
>> >>                         printf("create window \n");<br>
>> >>                         MPI_Win_create(a, 8*sizeof(float),<br>
>> >> sizeof(float),<br>
>> >> MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>> >><br>
>> >>                 }<br>
>> >>                 else {<br>
>> >>                         MPI_Win_create(MPI_BOTTOM, 0, sizeof(float),<br>
>> >> MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>> >>                 }<br>
>> >><br>
>> >>                 MPI_Win_fence(0, win);<br>
>> >><br>
>> >>                 if (rank == 1){<br>
>> >>                         MPI_Get(b, SIZE, MPI_FLOAT, 0, 8, SIZE,<br>
>> >> MPI_FLOAT, win);<br>
>> >><br>
>> >>                         MPI_Win_fence(0, win);<br>
>> >>                 }<br>
>> >><br>
>> >>                 printf("rank= %d  b= %3.1f %3.1f %3.1f %3.1f %3.1f<br>
>> >> %3.1f<br>
>> >> %3.1f %3.1f\n", rank,b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7]);<br>
>> >>         }<br>
>> >>         else<br>
>> >>                 printf("Must specify %d processors.<br>
>> >> Terminating.\n",SIZE);<br>
>> >><br>
>> >>         MPI_Win_free(&win);<br>
>> >>         MPI_Finalize();<br>
>> >> }<br>
>> >><br>
>> >> However the terminal gives some odd results:<br>
>> >> rank= 0  b= 0.0 0.0 0.0 0.0 0.0 0.0 -71847793475452928.0 0.0<br>
>> >> rank= 2  b= 0.0 0.0 0.0 0.0 0.0 0.0 222086852849451401216.0 0.0<br>
>> >> rank= 3  b= 0.0 0.0 0.0 0.0 0.0 0.0 -74882.4 0.0<br>
>> >> rank= 1  b= 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0<br>
>> >> the rank 1 is correct results, but others should be all zero.<br>
>> >> terminal also give some comments: "Assertion failed in file<br>
>> >> src/mpid/ch3/src/ch3u_rma_sync.c at line 5061: win_ptr->my_counter >= 0<br>
>> >> internal ABORT - process 0"<br>
>> >><br>
>> >> another question is if I use remote memory access. all process which<br>
>> >> does<br>
>> >> not create window for share must add additional line:<br>
>> >> MPI_Win_create(MPI_BOTTOM, 0, data_type, MPI_INFO_NULL, MPI_COMM_WORLD,<br>
>> >> &win); correct?<br>
>> >><br>
>> >> Thanks a lot!<br>
>> >><br>
>> >> --<br>
>> >> Best Regards,<br>
>> >> Sufeng Niu<br>
>> >> ECASP lab, ECE department, Illinois Institute of Technology<br>
>> >> Tel: <a href="tel:312-731-7219" value="+13127317219" target="_blank">312-731-7219</a><br>
>> >><br>
>> >> _______________________________________________<br>
>> >> discuss mailing list     <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>> >> To manage subscription options or unsubscribe:<br>
>> >> <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
>> >><br>
>> ><br>
>> ><br>
>> -------------- next part --------------<br>
>> An HTML attachment was scrubbed...<br>
>> URL:<br>
>> <<a href="http://lists.mpich.org/pipermail/discuss/attachments/20130703/362a0cda/attachment-0001.html" target="_blank">http://lists.mpich.org/pipermail/discuss/attachments/20130703/362a0cda/attachment-0001.html</a>><br>



>><br>
>> ------------------------------<br>
>><br>
>> Message: 4<br>
>> Date: Wed, 3 Jul 2013 13:28:31 -0500<br>
>> From: Jeff Hammond <<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>><br>
>> To: <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>> Subject: Re: [mpich-discuss] beginner for remote mem access<br>
>> Message-ID:<br>
>><br>
>> <CAGKz=uLwki+cCY2oL_2vFwkwCi=<a href="mailto:A1Qd9VV1qXHno20gHxqY6iw@mail.gmail.com" target="_blank">A1Qd9VV1qXHno20gHxqY6iw@mail.gmail.com</a>><br>
>> Content-Type: text/plain; charset=ISO-8859-1<br>
>><br>
>> Look at the MPICH test suite for numerous examples of correct RMA<br>
>> programs.<br>
>><br>
>> Jeff<br>
>><br>
>> On Wed, Jul 3, 2013 at 1:12 PM, Sufeng Niu <<a href="mailto:sniu@hawk.iit.edu" target="_blank">sniu@hawk.iit.edu</a>> wrote:<br>
>> > Hi,<br>
>> ><br>
>> > I am a beginner and just try to use remote memory access, and I wrote a<br>
>> > simple program to test it:<br>
>> ><br>
>> > #include "mpi.h"<br>
>> > #include <stdio.h><br>
>> > #define SIZE 8<br>
>> ><br>
>> > int main(int argc, char *argv[])<br>
>> > {<br>
>> >         int numtasks, rank, source=0, dest, tag=1, i;<br>
>> >         float a[64] =<br>
>> >         {<br>
>> >                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> > 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> > 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> > 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >                 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0,<br>
>> > 12.0, 13.0, 14.0, 15.0, 16.0,<br>
>> >         };<br>
>> >         float b[SIZE];<br>
>> ><br>
>> >         MPI_Status stat;<br>
>> ><br>
>> >         MPI_Init(&argc,&argv);<br>
>> >         MPI_Comm_rank(MPI_COMM_WORLD, &rank);<br>
>> >         MPI_Comm_size(MPI_COMM_WORLD, &numtasks);<br>
>> ><br>
>> >         MPI_Win win;<br>
>> ><br>
>> >         // check processor rank<br>
>> >         char processor_name[MPI_MAX_PROCESSOR_NAME];<br>
>> >         int name_len;<br>
>> >         MPI_Get_processor_name(processor_name, &name_len);<br>
>> >         printf("-- processor %s, rank %d out of %d processors\n",<br>
>> > processor_name, rank, numtasks);<br>
>> ><br>
>> >         MPI_Barrier(MPI_COMM_WORLD);<br>
>> ><br>
>> >         if (numtasks == 4) {<br>
>> >                 if (rank == 0) {<br>
>> >                         printf("create window \n");<br>
>> >                         MPI_Win_create(a, 8*sizeof(float),<br>
>> > sizeof(float),<br>
>> > MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>> ><br>
>> >                 }<br>
>> >                 else {<br>
>> >                         MPI_Win_create(MPI_BOTTOM, 0, sizeof(float),<br>
>> > MPI_INFO_NULL, MPI_COMM_WORLD, &win);<br>
>> >                 }<br>
>> ><br>
>> >                 MPI_Win_fence(0, win);<br>
>> ><br>
>> >                 if (rank == 1){<br>
>> >                         MPI_Get(b, SIZE, MPI_FLOAT, 0, 8, SIZE,<br>
>> > MPI_FLOAT,<br>
>> > win);<br>
>> ><br>
>> >                         MPI_Win_fence(0, win);<br>
>> >                 }<br>
>> ><br>
>> >                 printf("rank= %d  b= %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f<br>
>> > %3.1f %3.1f\n", rank,b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7]);<br>
>> >         }<br>
>> >         else<br>
>> >                 printf("Must specify %d processors.<br>
>> > Terminating.\n",SIZE);<br>
>> ><br>
>> >         MPI_Win_free(&win);<br>
>> >         MPI_Finalize();<br>
>> > }<br>
>> ><br>
>> > However the terminal gives some odd results:<br>
>> > rank= 0  b= 0.0 0.0 0.0 0.0 0.0 0.0 -71847793475452928.0 0.0<br>
>> > rank= 2  b= 0.0 0.0 0.0 0.0 0.0 0.0 222086852849451401216.0 0.0<br>
>> > rank= 3  b= 0.0 0.0 0.0 0.0 0.0 0.0 -74882.4 0.0<br>
>> > rank= 1  b= 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0<br>
>> > the rank 1 is correct results, but others should be all zero.<br>
>> > terminal also give some comments: "Assertion failed in file<br>
>> > src/mpid/ch3/src/ch3u_rma_sync.c at line 5061: win_ptr->my_counter >= 0<br>
>> > internal ABORT - process 0"<br>
>> ><br>
>> > another question is if I use remote memory access. all process which<br>
>> > does<br>
>> > not create window for share must add additional line:<br>
>> > MPI_Win_create(MPI_BOTTOM, 0, data_type, MPI_INFO_NULL, MPI_COMM_WORLD,<br>
>> > &win); correct?<br>
>> ><br>
>> > Thanks a lot!<br>
>> ><br>
>> > --<br>
>> > Best Regards,<br>
>> > Sufeng Niu<br>
>> > ECASP lab, ECE department, Illinois Institute of Technology<br>
>> > Tel: <a href="tel:312-731-7219" value="+13127317219" target="_blank">312-731-7219</a><br>
>> ><br>
>> > _______________________________________________<br>
>> > discuss mailing list     <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>> > To manage subscription options or unsubscribe:<br>
>> > <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
>><br>
>><br>
>><br>
>> --<br>
>> Jeff Hammond<br>
>> <a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br>
>><br>
>><br>
>> ------------------------------<br>
>><br>
>> _______________________________________________<br>
>> discuss mailing list<br>
>> <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
>> <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
>><br>
>> End of discuss Digest, Vol 9, Issue 5<br>
>> *************************************<br>
><br>
><br>
><br>
><br>
> --<br>
> Best Regards,<br>
> Sufeng Niu<br>
> ECASP lab, ECE department, Illinois Institute of Technology<br>
> Tel: <a href="tel:312-731-7219" value="+13127317219" target="_blank">312-731-7219</a><br>
><br>
> _______________________________________________<br>
> discuss mailing list     <a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
> To manage subscription options or unsubscribe:<br>
> <a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
<br>
<br>
<br>
--<br>
Jeff Hammond<br>
<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Fri, 5 Jul 2013 12:15:22 +0100<br>
From: <a href="mailto:anton.s.murfin@sellafieldsites.com" target="_blank">anton.s.murfin@sellafieldsites.com</a><br>
To: <a href="mailto:mpich-discuss@mcs.anl.gov" target="_blank">mpich-discuss@mcs.anl.gov</a><br>
Subject: [mpich-discuss] Running configure on Suse Enterprise 10<br>
Message-ID:<br>
        <<a href="mailto:OF382230A3.E1923C9D-ON80257B9F.0038EB2D-80257B9F.003DD531@sellafieldsites.com" target="_blank">OF382230A3.E1923C9D-ON80257B9F.0038EB2D-80257B9F.003DD531@sellafieldsites.com</a>><br>
<br>
Content-Type: text/plain; charset="us-ascii"<br>
<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://lists.mpich.org/pipermail/discuss/attachments/20130705/d6dc7b40/attachment.html" target="_blank">http://lists.mpich.org/pipermail/discuss/attachments/20130705/d6dc7b40/attachment.html</a>><br>



-------------- next part --------------<br>
An embedded and charset-unspecified text was scrubbed...<br>
Name: c.txt<br>
URL: <<a href="http://lists.mpich.org/pipermail/discuss/attachments/20130705/d6dc7b40/attachment.txt" target="_blank">http://lists.mpich.org/pipermail/discuss/attachments/20130705/d6dc7b40/attachment.txt</a>><br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
discuss mailing list<br>
<a href="mailto:discuss@mpich.org" target="_blank">discuss@mpich.org</a><br>
<a href="https://lists.mpich.org/mailman/listinfo/discuss" target="_blank">https://lists.mpich.org/mailman/listinfo/discuss</a><br>
<br>
End of discuss Digest, Vol 9, Issue 7<br>
*************************************<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Best Regards,<div>Sufeng Niu</div><div>ECASP lab, ECE department, Illinois Institute of Technology</div><div>Tel: <a href="tel:312-731-7219" value="+13127317219" target="_blank">312-731-7219</a></div>


</div></div></div>