Intel (Fortran, C, and C++)
The Intel® compiler suite offers C, C++ and Fortran compilers with optimization features and multithreading capabilities, highly optimized performance libraries, and error-checking, security, and profiling tools. NERSC Intel compiler bugs are listed at Intel bugs.
The Intel compiler suite is available on Cori, Edison, and Babbage. It is the default compiler on all the platforms.
Using the Intel Compilers on Cori and Edison
The Intel compiler suite is the default on Cori and Edison. When you use the Cray ftn, cc, and CC wrappers, they will call the Intel compilers.
You can (and should) have the Intel compiler emit information about vectorization when you compile. Use the "-qopt-report=3 -qopt-report-phase=vec" compiler option to get vectorization report. You can add "-qopt-report-file=filename" to send the output to a file.
Tips for Building Applications
Cori and Edison
For users building C++11 codes on Cori or Edison using the pre-4.9 Intel compilers: Because the installed Intel compilers rely on the GNU header files for C++11 support, you will need to load the 'gcc' compiler module in order to make these available. Loading the current default version of the gcc module should suffice.
Always use -no-ipo if you use -fast unless you are completely positive that your code would benefit from interprocedural analysis. In that case expect a much longer compilation time.
If you build a library always use -no-ipo if you use -fast, otherwise the build will fail. If you still have problems with the library with -fast -no-ipo, build it with the Intel default, no optimization options.
For questions about using the Intel compilers at NERSC contact the consultants at firstname.lastname@example.org.
Man pages are available via man ifort (for Fortran) or man icc (for C/C++) when the intel module is loaded. There are User Guides, language Reference Manuals, and Quick-Reference Guides to Optimization available on the Intel web site.