Building Goto BLAS

The Goto BLAS library is an optimized implementation of BLAS routines
(Basic Linear Algebra Subprograms), developed by Kazushige Goto
at the University of Texas at Austin. It provides an alternative to ACML, MKL, or SCSL.

See the author's web page for more information.

Steps to building
To use the Goto BLAS library, you will need to download the source,
uncompress it, install it, and then link it to your application. These
steps, and any known limitations, are described in the sections below

Downloading Goto BLAS
There is an optimized version of the Goto BLAS libraries for AMD
Opteron processors. You can obtain the most recent version from the Goto BLAS website. The
most recent version at the time of this writing is 1.09.

Building and Installing Goto BLAS
Uncompress the downloaded tarball with "tar -zxvf GotoBLAS-1.09.tar.gz". Build
the library using default scripts "quickbuild.32bit" or "quickbuild.64bit". It
will build the .so and .a files. Install them into an appropriate library
directory. One approach is to install in a system directory according
to local system policy, and another is to install it in the user's
home directory.

Linking with Goto BLAS
Goto BLAS is provided as a dynamic shared library, and it needs to be
linked into the application. This is achieved using the usual means:

  • Use the -L linker option to specify the directory
    containing the Goto BLAS library.
  • Use the -l linker option to cause the Goto BLAS
    library to be linked in. For example, if the Goto BLAS library
    is called libgoto_opteron-64-r0.99-3.so, then use -lgoto_opteron-64-r0.99-3.

Running with Goto BLAS
If the Goto BLAS library is not in a default system library directory, then it will be necessary to specify the PATH to the library using the LD_LIBRARY_PATH environment variable. When running an MPI application using the Goto BLAS library, it may be necessary to take
additional steps to propagate the LD_LIBRARY_PATH variable to each MPI process in the job.

Known limitations
There are no known limitations.

We recommend you record what steps you took, along with their output,
in case of problems. You can include this in your email to support.
Here is an example of changing a make command to record the output in a
text file:

make foo 2>&1 | tee make-foo-log.txt

If you have any comments or suggestions about additions to these
pages, please contact support@pathscale.com.