<div dir="ltr"><div>On Thu, Dec 11, 2014 at 1:26 AM, Jeff Hammond <span dir="ltr"><<a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div><font color="#000000"><span style="background-color:rgba(255,255,255,0)"><a href="http://pubs.acs.org/doi/abs/10.1021/ct100439u" target="_blank">http://pubs.acs.org/doi/abs/10.1021/ct100439u</a> is the paper I was<br>implicitly referencing.  They do RAID inside of GA.</span></font> </div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div><font color="#000000"><span style="background-color:rgba(255,255,255,0)">I can only do this sanely with MPI RMA </span></font><span style="background-color:rgba(255,255,255,0)">(ie without resorting to nproc times as many windows as necessary) if and only iff I can continue to use data after process failure if I know it could not have been corrupted.</span></div></div></blockquote><div><br></div><div>GA folks understood that minimal (and potentially intrusive) changes were required from the GA underlying runtime and communication library in order to support highly effective application specific fault tolerance methods. The paper you pointed out unfortunately leaves such discussions out, but it does prove a point similar to ULFM,  that building upon a fault tolerant communication library could have drastic benefits for applications in case of faults, while minimizing the impact of the failure-free execution.</div><div><br></div><div>Now, for the sake of the discussion let's dig a little deeper. To be extremely pedantic, while there is a 2-level RAID inside GA, this cannot be compared with MPI (which is more like ARMCI). As you might notice, there is a subtle difference here, ARMCI do not guarantee the correctness in the traditional sense for one-sided operations (except obviously for get-based protocols). Instead, they use the GA-level data redundancy, together with write-based one-sided communication primitives and fences to ensure the existence of a consistent state. Brilliantly simplistic approach, at the opposite spectrum of the MPI Forum who seem to require data integrity on windows in all memory models.</div><div><br></div><div>Anyway, the good thing is that in the context of the FT WG, we are way past the point where GA seems to be (for everything but one-sided). We do have a clear description of the expected behavior for all communications (except for one-sided), with a well described API (except for one-sided), and now 2 widely available implementations (except for one-sided). Over the last 2 years, many large scale applications have shown that taking advantage of these extensions, drastic improvements in the time-to-solution for these applications can be achieved in faulty environments. This is proof that instead of providing a limited-scope fault management model, ULFM expose a portable API, allowing application/library developers to design and implement highly efficient application/domain-specific fault tolerant models.</div><div><br></div><div>Hopefully with the help of interested folks and with the support of the RMA WG, we could settle on an approach similar to FT-ARMCI, and start building something constructive from there. It is about time.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div><span style="background-color:rgba(255,255,255,0)">It is possible that the paper doesn't adequately explain things for this context, in which case I will provide them later.</span><br></div></div></blockquote><div><br></div>We should not mix application/domain-specific with communication library-level fault tolerance. Most of these papers do a great job as exposing high-level strategies, domain-specific or application-level, to handle faults. They seems to imply some level of resilience from the underlying runtime and communication library, but unfortunately such details are extremely scarce.</div><div class="gmail_quote"><br></div><div class="gmail_quote">There are 2 questions I would appreciate to get more details on. In the light on the point raised in the discussion regarding the memory reuse in RMA, how are the GA folks dealing with this case? My understanding is that they leverage the GA-level data redundancy to ensure consistency. But if we suppose lingering messages in the network generated by the failed process, how do they ensure the viability of the shadow data and especially how do they maintain the data consistency across multiple subsequent failures?<br><div><br></div><div>Sorry for the long email.</div><div>  George.</div><div> </div><div>PS: Reading through these papers I noticed an unsettling thing. In the HIPC'10 paper that talk about FT-ARMCI, performance numbers are presented using a fault-tolerant ARMCI/GA. However, all the other papers, especially those published after the HIPC'10 paper, state that no fault-tolerant GA implementation exists, and present instead results obtained using the original GA implementation (convenient ...). I wonder what the reaction of the MPI Forum would have been if the FT WG would have dared to present fault tolerance related results using a stock MPI library.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div><font color="#000000"><span style="background-color:rgba(255,255,255,0)"><br></span></font></div><div><font color="#000000"><span style="background-color:rgba(255,255,255,0)">Other stuff that may or may matter:</span></font></div><div><font color="#000000"><span style="background-color:rgba(255,255,255,0)"><br><a href="http://hpc.pnl.gov/people/vishnu/public/vishnu_overdecomposition.pdf" target="_blank">http://hpc.pnl.gov/people/vishnu/public/vishnu_overdecomposition.pdf</a><br><a href="http://hpc.pnl.gov/people/vishnu/public/vishnu_hipc10.pdf" target="_blank">http://hpc.pnl.gov/people/vishnu/public/vishnu_hipc10.pdf</a><br><a href="http://dx.doi.org/10.1109/PDP.2011.72" target="_blank">http://dx.doi.org/10.1109/PDP.2011.72</a><br><a href="http://link.springer.com/chapter/10.1007/978-3-642-23397-5_34" target="_blank">http://link.springer.com/chapter/10.1007/978-3-642-23397-5_34</a><br><br>I assume someone from Argonne has presented GVR to the WG?</span></font></div><div><font color="#000000"><span style="background-color:rgba(255,255,255,0)"><br></span></font></div><div><font color="#000000"><span style="background-color:rgba(255,255,255,0)">Jeff</span></font><br><br>Sent from my iPhone</div><div><div class="h5"><div><br>On Dec 10, 2014, at 10:12 PM, George Bosilca <<a href="mailto:bosilca@icl.utk.edu" target="_blank">bosilca@icl.utk.edu</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">Jeff,<div><br></div><div>I was trying to find some references to the GA FT work you mentioned during the plenary discussion today.</div><div><br></div><div>The only reference I could find about the FT capabilities of GA is [1] but it is getting dusty. A more recent reference [2] addresses NWCHEM in particular, but represents an application-specific user-level checkpoint/restart strategy, requiring minimal support from the communication library and that has little in common with the ongoing discussion in the WG.<br></div><div><br></div><div>I would really appreciate if you could provide a reference.</div><div><br></div><div>Thanks,</div><div>  George.</div><div><br><span style="font-size:8pt;font-family:NimbusRomNo9L">[1] V. Tipparaju, M. Krishnan, B. Palmer, F. Petrini, and J. Nieplocha,
“Towards fault resilient Global Arrays.” in </span><span style="font-size:8pt;font-family:NimbusRomNo9L;font-style:italic">International Conference
on Parallel Computing</span><span style="font-size:8pt;font-family:NimbusRomNo9L">, vol. 15, 2007, pp. 339–345. </span></div><div><span style="font-size:8pt;font-family:NimbusRomNo9L">[2] </span><font face="NimbusRomNo9L"><span style="font-size:10.6666669845581px">Nawab Ali, Sriram Krishnamoorthy, Niranjan Govind, Bruce Palmer, "</span></font><span style="font-size:10.6666669845581px;font-family:NimbusRomNo9L">A Redundant Communication Approach to Scalable Fault Tolerance in PGAS Programming Models", in PDP'11</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 10, 2014 at 5:14 PM, Wesley Bland <span dir="ltr"><<a href="mailto:wbland@anl.gov" target="_blank">wbland@anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">I've posted notes from today's plenary session on the wiki page:<div><br></div><div><a href="https://svn.mpi-forum.org/trac/mpi-forum-web/wiki/ftwg2014-12-10" target="_blank">https://svn.mpi-forum.org/trac/mpi-forum-web/wiki/ftwg2014-12-10</a><br></div><div><br></div><div>I'm also attaching the slides to this email and I believe they'll be posted on the forum website by Martin at some point.</div><div><br></div><div>Thanks,</div><div>Wesley</div></div>
<br>_______________________________________________<br>
mpiwg-ft mailing list<br>
<a href="mailto:mpiwg-ft@lists.mpi-forum.org" target="_blank">mpiwg-ft@lists.mpi-forum.org</a><br>
<a href="http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-ft" target="_blank">http://lists.mpi-forum.org/mailman/listinfo.cgi/mpiwg-ft</a><br></blockquote></div><br></div>
</div></blockquote></div></div></div></blockquote></div><br></div></div>