Changes between Version 3 and Version 4 of doc/app/recommended_compiler_options


Ignore:
Timestamp:
Aug 23, 2018 3:23:12 PM (6 years ago)
Author:
raasch
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • doc/app/recommended_compiler_options

    v3 v4  
    88Compilers currently used by the PALM group are Intel, Cray, PGI and GNU-Fortran. We recommend to use these compilers with the following options (library and include-file options are omitted here):
    99
    10 '''Intel (version 14 and higher) for optimized code:'''\\{{{-fpe0 -O3 -xHost -fp-model source -ftz -no-prec-div -no-prec-sqrt -ip}}}
     10'''Intel (version 14 and higher) for optimized code:'''\\\\{{{ifort  -fpp -fpe0 -O3 -xHost -fp-model source -ftz -no-prec-div -no-prec-sqrt -ip}}}
    1111
    1212||='''Option''' =||='''meaning''' =||
    1313|-----------
     14||-fpp             ||Runs the Fortran preprocessor on source files before compilation.  ||
    1415||-fpe0            ||Specifies the floating-point exception handling level. Floating-point invalid, divide-by-zero, and overflow exceptions are enabled. If any such exceptions occur, execution is aborted. This option causes denormalized floating-point results to be set to zero.  ||
    1516||-O3              ||Performs O2 optimizations and enables more aggressive loop transformations such as Fusion, Block-Unroll-and-Jam, and collapsing IF statements.  ||
     
    2122||-ip              ||Enables additional interprocedural optimizations for single-file compilation. ||
    2223|----------
     24
     25\\\\
     26'''Intel (version 14 and higher) for debugging:'''\\\\{{{ifort  -fpp -fpe0 -O0 -check -check nooutput_conversion -traceback -g}}}
     27
     28
     29||='''Option''' =||='''meaning''' =||
     30|-----------
     31||-O0              ||Disables all optimizations.  ||
     32||-check           ||All available runtime checks (e.g. array bounds) are switched on.  ||
     33||-check nooutput_conversion ||No checking for the fit of data items within a designated format descriptor field. '''If this option isn't set, compilation aborts with errors.'''  ||
     34||-traceback       ||Tells the compiler to generate extra information in the object file to provide source file traceback information when a severe error occurs at run time.  ||
     35||-g               ||Tells the compiler to generate full debugging information in the object file.  ||
     36
     37
     38
     39\\\\
     40'''Cray (version 8.5.6):'''\\\\{{{ftn  -eZ -em -O3 -hnoomp -hnoacc -hfp3 -hdynamic -dynamic}}}
     41
     42
     43||='''Option''' =||='''meaning''' =||
     44|-----------
     45||-eZ                 ||Perform source preprocessing and compilation on Fortran source files.  ||
     46||-em                 ||When this option is enabled, the compiler creates .mod files to hold module information for future compiles.  ||
     47||-O3                 ||Switch on most aggressive optimization level.  ||
     48||-hnoomp             ||Disable compiler recognition of OpenMP directives.  ||
     49||-hnoacc             ||Disables the compiler recognition of OpenACC accelerator directives.  ||
     50||-hfp3               ||Controls the level of floating point optimizations. (highest level would be -hfp4)  ||
     51||-hdynamic -dynamik  ||Directs the compiler driver to link dynamic libraries at runtime.  ||
     52
     53
     54
     55\\\\
     56'''Cray (version 8.5.6) for debugging:'''\\\\{{{ftn  -eZ -K trap=fp -eD -ei -em -O0 -hnoomp -hnoacc -hdynamic -dynamic}}}
     57
     58
     59||='''Option''' =||='''meaning''' =||
     60|-----------
     61||-K trap=fp          ||Enable traps on divz, inv, or ovf exceptions.  ||
     62||-eD                 ||Enables all debugging options.  ||
     63||-ei                 ||Initializes all undefined local stack, static, and heap variables of type REAL or COMPLEX to an invalid value (signaling NaN).  ||
     64||-O0                 ||Disables all optimizations including floating point optimizations and OpenACC acceleration.  ||
     65
     66'''Important on Cray-systems:'''  Getting tracebacks requires setting of {{{export ATP_ENABLED=1}}} before execution of PALM. Use an input command in the configuration file for that:
     67{{{
     68IC:export ATP_ENABLED=1
     69}}}