Do you mind if I send your C++11 tests to IBM?<div><br><span></span><div>Jeff<br><br>On Friday, February 7, 2014, Schlottke, Michael <<a href="mailto:M.Schlottke@aia.rwth-aachen.de">M.Schlottke@aia.rwth-aachen.de</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">
<div>
<div>
<blockquote type="cite">In general, ALCF finds that -O5 is not worthwhile and often worse than -O3. The only exceptions of which we are aware are when the user has tuned the code to an extreme degree - e.g. manual unrolling, blocking for cache, vector intrinsics.</blockquote>
Our experiences are similar. However, -O5 still has a slight (tiny, really) edge over -O3 for us (at the cost, of course, of 2+ hours compile&link times…), even though we do not use any fancy manual optimizations.</div>
<div><br>
</div>
<div>
<div>
<div>
<blockquote type="cite">I would strongly encourage you to let IBM know that you're abandoning it due to their lack of C++11 support. It is important for them to understand that their development model for XLC on Blue Gene harms users in significant ways.</blockquote>
</div>
</div>
<div>At the beginning of the week, we had a BG/Q Porting & Tuning workshop at the Forschungszentrum Jülich. I talked to one of the IBM representatives and even he could not explain the lackluster support for C++ in the compiler development team. </div>
</div>
<div><br>
</div>
<blockquote type="cite">
<div>A decade ago, we were forced to support many different compilers in Cactus, mostly because every supercomputer architecture came with its own compiler. These days, we support mostly GCC, Intel, and IBM's compilers, since the other compilers are too far
behind, be it in terms of features, producing performant code, or not producing ICEs. Since Clang is so similar to GCC in its user interface, supporting it is almost trivial.</div>
</blockquote>
<div>We have made some good experiences with the current PGI (just released: 14.1) and Intel compilers. While the older PGI compilers still had quite a few bugs, the more recent ones do not cause any problems for us and actually found some (minor) cases of
bad programming that eluded gcc/clang.</div>
<div><br>
</div>
<blockquote type="cite">
<div>The next infrastructure update of Cactus is very likely to use some C++11 features, either directly, or via threading or communication libraries that it uses.</div>
</blockquote>
</div>
If you're looking for a move to C++11 and wonder which C++11 features are supported on the XL machines… well, good luck with that. I wrote a small collection of tests that check if a compiler supports individual C++11 features (<a href="https://github.com/sloede/cxx11tests" target="_blank">https://github.com/sloede/cxx11tests</a>)
and I was surprised by how little is actually implemented in XL. For instance, the XL 12.1 reference claims that valid 'constexpr' syntax is supported, which is not true for at least one example (constexpr float arrays). Although the tests are far from complete,
they might give you a good overview of what's supported and what isn't.
<div><br>
</div>
<div>Regards,</div>
<div><br>
</div>
<div>Michael<br>
<div>
<div><br>
<div>
<div>On Feb 6, 2014, at 19:33 , Erik Schnetter wrote:</div>
<br>
<blockquote type="cite">
<div>A decade ago, we were forced to support many different compilers in Cactus, mostly because every supercomputer architecture came with its own compiler. These days, we support mostly GCC, Intel, and IBM's compilers, since the other compilers are too far
behind, be it in terms of features, producing performant code, or not producing ICEs. Since Clang is so similar to GCC in its user interface, supporting it is almost trivial.<br>
<br>
Portability between different architectures is very important to us. IBM's compilers are currently causing the most trouble for us since they have weird restrictions and bugs, and Clang/LLVM is correcting errors and adding features at a much greater speed than
xlC.<br>
<br>
The next infrastructure update of Cactus is very likely to use some C++11 features, either directly, or via threading or communication libraries that it uses.<br>
<br>
-erik<br>
<br>
On Feb 6, 2014, at 12:24 , Jeff Hammond <<a href="javascript:_e(%7B%7D,'cvml','jhammond@anl.gov');" target="_blank">jhammond@anl.gov</a>> wrote:<br>
<br>
<blockquote type="cite">In general, ALCF finds that -O5 is not worthwhile and often worse than<br>
</blockquote>
<blockquote type="cite">-O3. The only exceptions of which we are aware are when the user has<br>
</blockquote>
<blockquote type="cite">tuned the code to an extreme degree - e.g. manual unrolling, blocking<br>
</blockquote>
<blockquote type="cite">for cache, vector intrinsics.<br>
</blockquote>
<blockquote type="cite"><br>
</blockquote>
<blockquote type="cite">I would strongly encourage you to let IBM know that you're abandoning<br>
</blockquote>
<blockquote type="cite">it due to their lack of C++11 support. It is important for them to<br>
</blockquote>
<blockquote type="cite">understand that their development model for XLC on Blue Gene harms<br>
</blockquote>
<blockquote type="cite">users in significant ways.<br>
</blockquote>
<blockquote type="cite"><br>
</blockquote>
<blockquote type="cite">Jeff<br>
</blockquote>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</blockquote></div></div><br><br>-- <br><div>Jeff Hammond</div><div>Argonne Leadership Computing Facility</div><div>University of Chicago Computation Institute</div><div><a href="mailto:jhammond@alcf.anl.gov" target="_blank">jhammond@anl.gov</a> / <a href="mailto:jhammond@uchicago.edu" target="_blank">jhammond@uchicago.edu</a> / (630) 252-5381</div>
<div><a href="http://www.linkedin.com/in/jeffhammond" target="_blank">http://www.linkedin.com/in/jeffhammond</a></div><div><a href="https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond" target="_blank">https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond</a></div>
<div><br></div><br>