User Tools

Site Tools


wiki:prototype:armpl

ARM Performance Libraries

General information

The ARM Performance Libraries are an ARM implementation of standard core math libraries for HPC applications. In this specific case, the following routines are implemented:

  • BLAS
  • LAPACK
  • FFT

These libraries are also optimized for different ARMv8 platforms like:

  • Applied Micro XGene-1
  • Cavium ThunderX
  • ARM Cortex-A57
  • ARM Cortex-A53

Note also that different interfaces (C and Fortran) as well as different versions (serial and OpenMP) are provided with the ARM Performance Libraries.

More information about can be found at the official website.

Usage

On the clusters were the ARM Performance Libraries are available, they can be linked with your application in order to provide implementations of BLAS, LAPACK and FFT routines.

For BLAS and LAPACK, no changes on your source code is needed except for the fact that you should include the correct headers, e.g. in C:

#include "armpl.h"

Long story short, these are the libraries you can link with:

  • libarmpl_int64.so for serial ARM Perf. Lib. double precision implementation
  • libarmpl_int64_mp.so for parallel ARM Perf. Lib. double precision implementation
  • libarmpl.so for serial ARM Perf. Lib. single precision implementation
  • libarmpl_mp.so for parallel ARM Perf. Lib. single precision implementation

NOTE1: For the parallel versions, you need to compile your application with the -fopenmp flag. At execution time, the number of threads used for the routines must be set with OMP_NUM_THREADS variable.
NOTE2: For the double precision versions, you need to compile your application with the -DINTEGER=64 or -fdefault-integer-8 flags depending if your code is written in C or Fortran respectively.

wiki/prototype/armpl.txt · Last modified: 2016/07/15 14:25 (external edit)