About Cray Compiling Environment (CCE)
| Module Collection: | PrgEnv-cray |
| Command: | ftn, cc, CC |
| Compiler-specific manpages: | crayftn(1), craycc(1), crayCC(1) Note: Compiler-specific manpages are available only when the compiler module is loaded. |
| Online help: | ftn -help, cc -help, CC -help, |
| Documentation: | Cray Fortran Reference Manual, Cray Compiling Environment Release Overview, Clang Users Manual (https://clang.llvm.org/docs/UsersManual.html) |
The Cray Compiling Environment (CCE) provides Fortran, C and C++ compilers that perform substantial analysis during compilation and automatically generate highly optimized code. The compilers support numerous command-line arguments that enable manual control over compiler behavior and optimization.
To use CCE, restore the PrgEnv-cray module collection.
For more detailed information about the Cray Fortran, C, and C++ compiler command-line arguments, see the crayftn(1), craycc(1), and crayCC(1) manpages, respectively.
One of the most useful compiler features is the ability to generate annotated loopmark listings showing what optimization were performed and their locations. Together with compiler messages, these listings can help zero-in on areas in the code that are compiling without error but not fully optimized.
For more detailed information about generating and reading loopmark listings, see crayftn(1), craycc(1), crayCC(1) manpages, and the Cray Fortran Reference Manual.
In many cases, code that is not properly optimizing can be corrected without substantial recoding by applying the right pragmas or directives.
CCE module collections provide wrappers (cc,CC,ftn) for both CCE and third-party compiler drivers. These wrappers call the correct compiler with appropriate options to build and link applications with relevant libraries as required by modules loaded. (Only dynamic linking is supported.) These wrappers replace direct calls to compiler drivers in Makefiles and build scripts.
For more information about compiler pragmas and directives, see the intro_directives(1) manpages.