Benchmarking suite – Report 9

This is the report of the project “Automated benchmark suite for numerical libraries in Gentoo” for the week 18-24 July.

Project description

The project aims to develop a simple yet powerful automated system of benchmarking for numerical libraries. The Gentoo software system provides many implementations of widely used standards such as BLAS, CBLAS, LAPACK, ScaLAPACK and some other numerical library such as FFTW, MKL. The developed tools will aid the system maintener to choose the best suited implementation with respect to the machine hardware and to test the samer implementation or different ones with different compilers, compiler versions and compile flags.

Progrees during the week

This week the project has gained the following features:

  • Work on the FFTW module. Now the following two-dimensional actions are available:
    • FFTW_2D_Forward_Measure
    • FFTW_2D_Forward_Estimate
    • FFTW_2D_Backward_Measure
    • FFTW_2D_Backward_Estimate
  • Work on the PBLAS/ScaLAPACK module:
    • Parallel axpy
    • Parallel matrix-vector multiply
    • Parallel LU decomposition
    • Parallel Cholesky decomposition
    • Parallel QR decomposition
    • Parallel SVD decomposition
    • Parallel eigenvalues/eigenvectors computation

Regarding the ScaLAPACK actions, some more work is needed in order to avoid singular or non-SPD matrices to be processed. This will be part of the next week’s work. The 2-dimensional FFTW actions work well, and the module will also gain soon the 3-dimensional actions.

Plan for the next week

The issue with ScaLAPACK raised another problem, too: every implementation that is tested should receive the same input matrices/vectors, in order to make the tests fair. Therefore a decision has been taken: the matrices will be generated by a deterministic random number generator — probably a linear congruential one — and the tests will share the seeds. The seeds will be taken from a set of seeds known to generate valid matrices (e.g. SPD matrices for algorithms that require so). This will be an important part of the work.

Another part regards the package dependencies. At this moment the script does not handle package dependencies: it only installs the desired packages into some specific root, but fails when the package has dependencies which are not installed in the system. The script will be adapted in order to also install the dependencies into the same root and manage the environment variables.

A last part of the week plan regards the input configuration file. When testing a dependent library (e.g. LAPACK, which depends on BLAS and/or CBLAS), the user should be able to select as implementation for the dependency (e.g. BLAS or CBLAS in this case) not only an installed one, but also an implementataion that has been tested.

Best regards
Andrea Arteaga


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: