Cray LibSci is a library of highly tuned linear algebra and FFT products for Cray XE6 systems. Cray LibSci includes the following:
- Highly Optimized Basic Linear Algebra Subroutines (BLAS). Cray LibSci includes a mixture of highly optimized x86 BLAS from the University of Texas' LibGoto library and custom BLAS tunings provided specifically for Cray processors. Cray's BLAS are tuned for both serial and SMP execution. Both serial and threaded versions of the BLAS library are provided.
- Linear Algebra Package (LAPACK). Cray LibSci includes serial numerical linear algebra routines optimized specifically for Cray XE systems. The optimizations in Cray LibSci are mainly at the algorithmic level, affecting both single core and SMP performance.
- Scalable LAPACK (ScaLAPACK). Cray provides an optimized ScaLAPACK library for Cray XE systems based on ScaLAPACK v1.8 from Netlib (http://www.netlib.org/scalapack). Cray's ScaLAPACK library is a distributed memory programming model using MPI. This library includes parallel communications improvements that are not part of the standard ScaLAPACK distribution, as well as some algorithmic improvements that mirror those made for the LAPACK library.
- Iterative Refinement Toolkit (IRT). IRT is a custom, Cray specific library that allows users of LAPACK and ScaLAPACK to solve linear systems with increased efficiency, by using mixed precision iterative refinement. IRT includes a set of routines to help understand advanced performance available using iterative refinement, and a set of wrappers that allow IRT to be used without changing user-code where possible. For well conditioned problems, IRT can provide up to 40% performance improvement with little or no code changes.
- The custom Cray Adaptive FFT (CRAFFT) library provides a very simple interface into existing FFT functionality on Cray systems. CRAFFT uses offline and online testing information to adaptively select the best FFT algorithm from the available FFT options. CRAFFT provides a very simple user interface into advanced FFT functionality and performance. Planning and execution are combined into one call with CRAFFT. The library comes packaged with pre-computed plans so that in many cases the planning stage can be omitted. For Cray XE systems, CRAFFT is currently integrated with FFTW.
The modulefile is loaded by default. This is true for all the available programming environments (PGI, GNU, and Cray) as long as you use the Cray compiler wrappers (ftn, cc, and CC). All LibSci routines will be loaded by all Cray-provided compiler wrappers by default. No user flags or options are required for compiling or linking.
Compile the code as:
|ftn test_scilib_scalapack.f90 -o test|
Example Code for Matrix Matrix Multiply using ScaLAPACK library from SciLib, test_scilib_scalapack.f90
GPU Accellerartor LibSci
Please see the OpenACC page for information using cray-libsci_acc.
Also see the man page on intro_libsci_acc for more information on using accelerated libsci.
- More information can be found in the Cray Application Developer's Environment User's Guide. Always refer to docs.cray.com for the version available on your system or the latest version of the document.