Numerical Software Packages
Several free, open-source software sources are available to speed up programs. These packages include:
-
BLAS (Basic Linear Algebra Subprograms)
- ATLAS
- ACML
- Intel MKL
- cuBLAS
- LAPACK (Linear Algebra PACKage)
- ScaLAPACK (Scalable Linear Algebra PACKage)
Basic Linear Algebra Subprograms (BLAS)
BLAS is not really a software package anymore, but a standard which packages must conform to. Several software packages implement versions of BLAS related to hardware which allows for quicker calculations. The AMD Core Math Library (ACML) and Intel Math Kernel Libray (Intel MKL) both feature BLAS routines, LAPACK routines, and ScaLAPACK routines. This is highly advantageous since they are directly specifically designed for AMD processors or Intel processors.
Several other libraries offer BLAS-like functionality, usually implemented with additional hardware in mind such as AMD APPML which is a parallel Processing math library for Level 3 BLAS and FFT for use with OpenCL and multicore processors. NVIDIA has its analagous CUDA SDK and cuBLAS lirbrakes. There is one that I hope in particular to try and work with on a couple applications is PLASMA which is Parallel Linear Algebra for Scalable Multicore Architectures.
LAPACK
LAPACK is based on LINPACK and EISPACK with goals of improving efficiency and scalability to multicore and parallel processors. This library includes several common linear algebra task such as LU factorization, Cholesky decomposition, etc. Very useful, although I have yet to use it extensively.