lightningsmp: Recommended compiler options

Use of the Pathscale Fortran, C, and C++ compilers is recommended for all applications. Detailed information about these compilers can be found by issuing man eko. Shorter versions of these man pages can be found by issuing man f90 and man cc. The man f90 pages are identical to man pathf90, man pathf95, man f77, and man f95 pages. The man pages for cc are identical to man CC, man pathCC and man pathcc.

Recommended compiler options for High Performance

The default compiler options include such optimizations as -O2, -CG, -ffast-stdlib, -march=opteron, -m64 . However, the use of the following compiler options will usually provide better performance of your program.

   -Ofast  -msse3

The -Ofast compiler option includes the -ipa option that turns on inter-procedural analysis. To get the full benefit of this optimization, you must compile all program files at the same time. For example,

   mpif90 -Ofast -msse3 program1.f90 program2.f90 program3.f90

Recommended compiler options for Debugging

The -C option perform run-time subscript range checking only for Fortran programs. Subscripts that are out of range cause fatal runtime errors. If you set the F90_BOUNDS_CHECK_ABORT environment variable to YES, the program aborts. Note, that -C option doesn't perform subscript range checking in C and C++ programs.

The -trapuv option helps to find uninitialized variables by initializing them to the value NaN.

-TENV:simd_zmask=OFF option raises floating-point zero-divide exception and -TENV:simd_omask=OFF option raises floating-point overflow exception.

The -Wall option turns on most warning messages. It is still possible to disable specific warning messages when using -Wall option (see eko man page for various -W options).