12.6 Support Libraries

12.6 Support Libraries

The packages in this chapter rely on two very common support libraries: MPI and BLAS. Since you are reading this book, we assume that you have an MPI library somewhere.

The Basic Linear Algebra Subprograms [64] are fairly simple linear algebra kernels that you can easily code yourself in a few lines. You can also download the source and compile the library [16]. Doing so, however, is unlikely to give good performance, no matter the level of sophistication of your compiler. The recommended way is to use vendor libraries that are available on a number of platforms, for instance, in the ESSL library on IBM machines and the mkl on Intel. On platforms without such vendor libraries (or sometimes even if they are present) we recommend that you install the ATLAS [125] (for Automatically Tuned Linear Algebra Software) package, which gives a library tuned to your specific machine. In a nutshell, ATLAS has a search algorithm that generates many implementations of each kernel, saving the one with the highest performance. This will far outperform anything you can write by hand.




Part III: Managing Clusters