- Infos im HLRS Wiki sind nicht rechtsverbindlich und ohne Gewähr -
- Information contained in the HLRS Wiki is not legally binding and HLRS is not responsible for any damages that might result from its use -

Compiler(Hawk): Difference between revisions

From HLRS Platforms
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
The following compilers are available at Hawk:
We '''highly''' recommend to try as much different compilers as possible and compare the performance of the generated code! If you code according to language standards, this is almost for free but can give you a significant speedup! There is no such thing as an "ideal" compiler! One suites better to application A, one suites better to application B (cf. [http://www.prace-ri.eu/IMG/pdf/Best-Practice-Guide-AMD.pdf Best Practice Guide AMD EPYC (Naples)]).
* GNU
* AMD
* PGI
* Intel


<br>
<br>


We '''highly''' recommend to try as much of them as possible and compare the performance of the generated code! If you code according to language standards, this is almost for free but can give you a significant speedup! There is no such thing as an "ideal" compiler! One suites better to application A, one suites better to application B (cf. [http://www.prace-ri.eu/IMG/pdf/Best-Practice-Guide-AMD.pdf Best Practice Guide AMD EPYC (Naples)]).
Please note that compilers do not use optimization flags by default at the moment. Hence, please refer to [https://www.advancedhpc.com/wp-content/uploads/2018/10/EPYC-Compiler-Options-Quick-Ref-Guide.pdf Compiler Options Quick Reference Guide] and set the respective flags on your own (with znver1 for Naples and znver2 for Rome nodes).


<br>
<br>


Please note that compilers do not use optimization flags by default at the moment. Hence, please refer to [https://www.advancedhpc.com/wp-content/uploads/2018/10/EPYC-Compiler-Options-Quick-Ref-Guide.pdf Compiler Options Quick Reference Guide] and set the respective flags on your own (with znver1 for Naples and znver2 for Rome nodes). With respect to PGI, we recommend to use
== GNU ==
 
<br>
 
== AOCC ==
 
<br>
 
== Intel ==
Please use
<pre>
<compiler> -march=core-avx2
</pre>
and do not use
<pre>
<compiler> -xCORE-AVX2
</pre>
since the latter might give '''very''' bad performance!
 
<br>
 
== PGI ==
 
With respect to PGI, we recommend to use
<pre>
<pre>
<compiler> -tp=zen -O3
<compiler> -tp=zen -O3
</pre>
</pre>

Revision as of 21:37, 24 October 2019

We highly recommend to try as much different compilers as possible and compare the performance of the generated code! If you code according to language standards, this is almost for free but can give you a significant speedup! There is no such thing as an "ideal" compiler! One suites better to application A, one suites better to application B (cf. Best Practice Guide AMD EPYC (Naples)).


Please note that compilers do not use optimization flags by default at the moment. Hence, please refer to Compiler Options Quick Reference Guide and set the respective flags on your own (with znver1 for Naples and znver2 for Rome nodes).


GNU


AOCC


Intel

Please use

<compiler> -march=core-avx2

and do not use

<compiler> -xCORE-AVX2

since the latter might give very bad performance!


PGI

With respect to PGI, we recommend to use

<compiler> -tp=zen -O3