The SCC compute nodes are comprised of a variety of CPU architectures.  There are compilers for C, C++, and Fortran available via the module system from Intel, The Portland Group, LLVM and GNU.  Due to the default behavior of some compilers, it is possible when using optimization options for compatibility issues to occur where programs compiled on the SCC login nodes cannot run on some of the available SCC compute nodes.  The documentation in this section provides recommendations for optimization flags, how to specialize program compilation for particular CPU architectures, compiling and optimization options to avoid compatibility issues, and descriptions of default compiler behavior.

The easiest way to avoid issues with compiler optimizations and compute node architectures is to take advantage of available libraries on the SCC for numerically intensive computations. The ones listed here are all capable of auto-detecting the CPU architecture in use at runtime and then selecting an optimized set of routines. Unless the software application requires a specific version it is recommended that the most recent module be selected.

OpenBLASLow-level routines for performing common linear algebra operations.module avail openblas

Library Description List Modules
FFTW Fast Fourier transforms. module avail fftw
Intel MKL Optimized math routines for science, engineering, and financial applications. Includes linear algebra, solvers, Fourier transforms, and more. module avail intel
Intel IPP A library of functions for multimedia and data processing applications module avail intel
OpenCV Imaging and computer vision routines. module avail opencv
BLIS and FLAME BLIS is a high performance BLAS library for linear algebra. FLAME implements the LAPACK numeric library. module avail blis