<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div>I’d recommend<div><pre><pre>@inproceedings{dotsenko2004multi,
title={A multi-platform co-array fortran compiler},
author={Dotsenko, Yuri and Coarfa, Cristian and Mellor-Crummey, John},
booktitle={Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques},
pages={29--40},
year={2004},
organization={IEEE Computer Society}
}</pre><div><br></div></pre><pre>@inproceedings{coarfa2005evaluation,
title={An evaluation of global address space languages: co-array fortran and unified parallel C},
author={Coarfa, Cristian and Dotsenko, Yuri and Mellor-Crummey, John and Cantonnet, Fran{\c{c}}ois and El-Ghazawi, Tarek and Mohanti, Ashrujit and Yao, Yiyi and Chavarr{\'\i}a-Miranda, Daniel},
booktitle={Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming},
pages={36--47},
year={2005},
organization={ACM}
}
</pre><div><br></div><div>Which has a large discussion of aliasing and performance with the Rice CAF compiler and Berkeley UPC compiler</div><div><br></div><div>Short answer is to a) not go through the communication layer when you are in a shared address space, and b) you have to trick Fortran with dummy variables so it thinks you are not aliasing, or drop directly to load/store instructions when handling accesses that share an address space.</div><div><br></div><div>You could also look at some messaging layers that are designed specifically to support global address space language development, like GASNet or ARMCI.</div><div><br></div><div>Brian</div><div><br></div><div><br></div><div><br></div><div><div>On Aug 23, 2014, at 7:44 AM, William Gropp <<a href="mailto:wgropp@illinois.edu">wgropp@illinois.edu</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=utf-8"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">It is amusing that the original reason for the restriction on aliasing of arguments comes from Fortran - MPI-1 wanted the language-independent spec to be expressible in both Fortran and C, and this is a property of Fortran (and one which aids in performance). <div><br></div><div>Bill</div><div><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; border-spacing: 0px;"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="font-size: 12px; ">William Gropp</div><div style="font-size: 12px; ">Director, Parallel Computing Institute</div></div></span><span class="Apple-style-span" style="font-size: 12px; ">Thomas M. Siebel Chair in Computer Science</span><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; border-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-stroke-width: 0px;"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div style="font-size: 12px; ">University of Illinois Urbana-Champaign</div></div><div><br></div></div></span><br class="Apple-interchange-newline"></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline">
</div>
<br><div><div>On Aug 22, 2014, at 6:04 PM, Brian Van Straalen <<a href="mailto:bvstraalen@lbl.gov">bvstraalen@lbl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=utf-8"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div>Disabling the check is probably a bad idea. if you disable it in MPI you will still push a call to memcpy that has aliased buffers. For many systems memcpy still does the right thing, but modern fancy memcpy implementations have permission to produce wrong results if the regions overlap.<div><div><br></div><div>The MPI spec is clear, and the coarray spec is also clear, and clearly different. I would recommend handling this in your library implementation and leave your MPI build as standard. Other MPI builds will be done standard and you will just be delaying the work. You can’t call MPI_Get with aliased locations.</div><div><br></div><div>Brian</div><div><br></div><div><br></div><div><br><div><div>On Aug 22, 2014, at 3:18 PM, Alessandro Fanfarillo <<a href="mailto:fanfarillo@ing.uniroma2.it">fanfarillo@ing.uniroma2.it</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Could you tell me which flag disables the check? I would suggest this<br>procedure as temporary workaround.<br><br>Thanks<br><br>On Fri, Aug 22, 2014 at 2:41 PM, Balaji, Pavan <<a href="mailto:balaji@anl.gov">balaji@anl.gov</a>> wrote:<br><blockquote type="cite"><br>On Aug 22, 2014, at 1:43 PM, Brian Van Straalen <<a href="mailto:bvstraalen@lbl.gov">bvstraalen@lbl.gov</a>> wrote:<br><blockquote type="cite">Is there a significant cost to have the MPI implementation provide a check for aliasing?<br></blockquote><br>We do check for this error by default in MPICH (which is why this email thread started).<br><br>There’s a way to turn off the checking through a configure flag as well as an environment variable, if needed. But that’s essentially saying — I know it’s wrong, but I’m too lazy to fix my application.<br><br> — Pavan<br><br>--<br>Pavan Balaji ✉️<br><a href="http://www.mcs.anl.gov/~balaji">http://www.mcs.anl.gov/~balaji</a><br><br>_______________________________________________<br>discuss mailing list <a href="mailto:discuss@mpich.org">discuss@mpich.org</a><br>To manage subscription options or unsubscribe:<br><a href="https://lists.mpich.org/mailman/listinfo/discuss">https://lists.mpich.org/mailman/listinfo/discuss</a><br></blockquote><br><br><br>-- <br><br>Alessandro Fanfarillo<br>Dip. di Ingegneria Civile ed Ingegneria Informatica<br>Università di Roma "Tor Vergata"<br>NCAR Office: +1 (303) 497-2442<br>Tel: +39-06-7259 7719<br>_______________________________________________<br>discuss mailing list <a href="mailto:discuss@mpich.org">discuss@mpich.org</a><br>To manage subscription options or unsubscribe:<br><a href="https://lists.mpich.org/mailman/listinfo/discuss">https://lists.mpich.org/mailman/listinfo/discuss</a></blockquote></div><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px;"><div><div><font class="Apple-style-span" face="'Courier New'">Brian Van Straalen Lawrence Berkeley Lab</font></div><div><font class="Apple-style-span" face="'Courier New'"><a href="mailto:BVStraalen@lbl.gov">BVStraalen@lbl.gov</a> Computational Research</font></div><div><font class="Apple-style-span" face="'Courier New'">(510) 486-4976 Division (<a href="http://crd.lbl.gov/">crd.lbl.gov</a>)</font></div></div><div><br></div><div><br></div></span><br class="Apple-interchange-newline">
</div>
<br></div></div></div>_______________________________________________<br>discuss mailing list <a href="mailto:discuss@mpich.org">discuss@mpich.org</a><br>To manage subscription options or unsubscribe:<br><a href="https://lists.mpich.org/mailman/listinfo/discuss">https://lists.mpich.org/mailman/listinfo/discuss</a></blockquote></div><br></div></div>_______________________________________________<br>discuss mailing list <a href="mailto:discuss@mpich.org">discuss@mpich.org</a><br>To manage subscription options or unsubscribe:<br><a href="https://lists.mpich.org/mailman/listinfo/discuss">https://lists.mpich.org/mailman/listinfo/discuss</a></blockquote></div><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div><div><font class="Apple-style-span" face="'Courier New'">Brian Van Straalen Lawrence Berkeley Lab</font></div><div><font class="Apple-style-span" face="'Courier New'"><a href="mailto:BVStraalen@lbl.gov">BVStraalen@lbl.gov</a> Computational Research</font></div><div><font class="Apple-style-span" face="'Courier New'">(510) 486-4976 Division (<a href="http://crd.lbl.gov">crd.lbl.gov</a>)</font></div></div><div><br></div><div><br></div></span><br class="Apple-interchange-newline">
</div>
<br></div></body></html>