Don't re-invent the wheel to achieve better performance on Shaheen. Many highly tuned libraries are installed on Shaheen and their usage is strongly recommended:
- no need to write the same algorithms, it will improve your productivity.
- implementations of the libraries installed are usually more efficient than if users write their own. For example, many numerical libraries are available likeCray-libsci, PETSc, FFTW, Trilinos,MKL (included in Intel module), GSL... These libraries are especially tuned for the Cray architecture, therefore are expected to produce better performance for their intended use cases.
To look for a package installed on Shaheen, use the command module avail -S name:
~> module avail -S trilinos -------------------------------------- /opt/cray/modulefiles --------------------------------------- cray-trilinos/11.12.1.0 cray-trilinos/11.12.1.4 cray-trilinos/12.6.3.0 cray-trilinos/11.12.1.2 cray-trilinos/11.12.1.5(default) cray-trilinos/12.6.3.1 cray-trilinos/11.12.1.3 cray-trilinos/12.2.1.0