ACML

General Description

ACML consists of the following main components:

  1. A full implementation of Level 1, 2 and 3 Basic Linear Algebra Subroutines (BLAS), with key routines optimized for high performance on AMD Opteron™ processors.
  2. A full suite of Linear Algebra (LAPACK) routines. As well as taking advantage of the highly-tuned BLAS kernels, a key set of LAPACK routines has been further optimized to achieve considerably higher performance than standard LAPACK implementations.
  3. A comprehensive suite of Fast Fourier Transforms (FFTs) in both single-, double-, single-complex and double-complex data types.
  4. Fast scalar, vector, and array math transcendental library routines optimized for high performance on AMD Opteron processors.
  5. Random Number Generators in both single- and double-precision.

Depending on the compiler used and the architecture of the CPU, there is a corresponding library for each of them.

Basic Usage

Four compilers are currently supported: Gfortran/GCC, Intel Ifort/ICC, Pathscale pathf90/pathcc, Portland pgf90/pgcc. For instance, gfortran64 directory contains ACML library to be linked with Gfortran compiler on a 64bits machine. pgi64_mp directory contains ACML library to be linked with Pathscale compiler on a 64bits using OpenMP directives.

To DYNAMICALLY access the library using Portland compiler from a Fortran program on a 64bits machine:

pgf90 -Wl,-rpath,/afs/crc.nd.edu/x86_64_linux/scilib/acml/current/pgi/pgi64/lib my_fortran_program.f90 -lacml

To STATICALLY access the library using Pathscale compiler from a Fortran program on a 64bits machine:

pathf90 /afs/crc.nd.edu/x86_64_linux/scilib/acml/current/path/pathscale64/lib/libacml.a my_fortran_program.f90

The advantage to compile dynamically the library is that you will not have to recompile your program when the library will be updated.

Further Information