The National Institute for Computational Sciences

Nautilus Software


Category: Libraries-Math


NOTE: For best performance on Nautilus, Intel's mkl is recommended.

The AMD Core Math Library (ACML) is a set of numerical routines tuned specifically for AMD64 platform processors (including OpteronTM and AthlonTM64 ). The routines, which are available via both FORTRAN 77 and C interfaces, include:

  • BLAS - Basic Linear Algebra Subprograms (including Sparse Level 1 BLAS);
  • LAPACK - A comprehensive package of higher level linear algebra routines;
  • FFT - a set of Fast Fourier Transform routines for real and complex data;
  • RNG - a set of random number generators and statistical distribution functions.

The BLAS and LAPACK routines provide a portable and standard set of interfaces for common numerical linear algebra operations that allow code containing calls to these routines to be readily ported across platforms. Full documentation for the BLAS and LAPACK are available online.

The FFT is an implementation of the Discrete Fourier Transform (DFT) that makes use of symmetries in the definition to reduce the number of operations required from O(n*n) to O(n*log n) when the sequence length, n, is the product of small prime factors; in particular, when n is a power of 2. Despite the popularity and widespread use of FFT algorithms, the definition of the DFT is not sufficiently precise to prescribe either the forward and backward directions (these are sometimes interchanged), or the scaling factor associated with the forward and backward transforms (the combined forward and backward transforms may only reproduce the original sequence by following a prescribed scaling).

Currently, there is no agreed standard API for FFT routines. Hardware vendors usually provide a set of high performance FFTs optimized for their systems: no two vendors employ the same interfaces for their FFT routines. The ACML provides a set of FFT routines, optimized for AMD64 processors, using an ACML-specific set of interfaces.

The RNG is a comprehensive set of statistical distribution functions which are founded on various underlying uniform distribution generators (base generators) including Wichmann- Hill and an implementation of the Mersenne Twister. In addition there are hooks which allow you to supply your own preferred base generator if it is not already included in ACML.

A supplementary library of fast math and fast vector math functions (ACML MV) is also provided with some 64-bit versions of ACML. Some of the functions included in ACML MV are not callable from high-level languages, but must be called via assembly language.

For more information, see ACML User guide and ACML documentation page.


The acml module must be loaded first:

> module avail acml
> module load acml

Note that the module will set the environment variables based on what compiler you have loaded as a module. If you have multiple compiler modules loaded before loading acml, the environment variables will point to no more than one of the loaded compilers. ACML_DIR points to the installation directory.

For compiling serial FORTRAN:

> ifort/gfortran/pgfortran test.f90 ${ACML_LIB}

or multi-core/threaded FORTRAN:

> ifort/gfortran/pgfortran -mp test.f90 ${ACML_MPLIB}

Note: You will probably need to use the "-fPIC" or "static" options for successful linking.

For compiling serial C code:

> icc/gcc/pgcc test.c ${ACML_LIB}

or multi-core/threaded C:

> icc/gcc/pgcc -mp test.c ${ACML_MPLIB}


This package has the following support level : Supported

Available Versions

Version Available Builds
intel pgi gnu Other