1 |
This is the report of the project "Automated benchmark suite for |
2 |
numerical libraries in Gentoo" for the week 18-24 July. |
3 |
This is also available on my blog [1]. |
4 |
|
5 |
== Project description == |
6 |
|
7 |
The project aims to develop a simple yet powerful automated system of |
8 |
benchmarking for numerical libraries. The Gentoo software system |
9 |
provides many implementations of widely used standards such as BLAS, |
10 |
CBLAS, LAPACK, ScaLAPACK and some other numerical library such as |
11 |
FFTW, MKL. The developed tools will aid the system maintener to choose |
12 |
the best suited implementation with respect to the machine hardware |
13 |
and to test the samer implementation or different ones with different |
14 |
compilers, compiler versions and compile flags. |
15 |
|
16 |
== Progrees during the week == |
17 |
|
18 |
This week the project has gained the following features: |
19 |
|
20 |
* Work on the FFTW module. Now the following two-dimensional actions |
21 |
are available: |
22 |
** FFTW_2D_Forward_Measure |
23 |
** FFTW_2D_Forward_Estimate |
24 |
** FFTW_2D_Backward_Measure |
25 |
** FFTW_2D_Backward_Estimate |
26 |
|
27 |
* Work on the PBLAS/ScaLAPACK module: |
28 |
** Parallel axpy |
29 |
** Parallel matrix-vector multiply |
30 |
** Parallel LU decomposition |
31 |
** Parallel Cholesky decomposition |
32 |
** Parallel QR decomposition |
33 |
** Parallel SVD decomposition |
34 |
** Parallel eigenvalues/eigenvectors computation |
35 |
|
36 |
Regarding the ScaLAPACK actions, some more work is needed in order to |
37 |
avoid singular or non-SPD matrices to be processed. This will be part |
38 |
of the next week's work. The 2-dimensional FFTW actions work well, and |
39 |
the module will also gain soon the 3-dimensional actions. |
40 |
|
41 |
== Plan for the next week == |
42 |
|
43 |
The issue with ScaLAPACK raised another problem, too: every |
44 |
implementation that is tested should receive the same input |
45 |
matrices/vectors, in order to make the tests fair. Therefore a |
46 |
decision has been taken: the matrices will be generated by a |
47 |
deterministic random number generator -- probably a linear |
48 |
congruential one -- and the tests will share the seeds. The seeds will |
49 |
be taken from a set of seeds known to generate valid matrices (e.g. |
50 |
SPD matrices for algorithms that require so). This will be an |
51 |
important part of the work. |
52 |
|
53 |
Another part regards the package dependencies. At this moment the |
54 |
script does not handle package dependencies: it only installs the |
55 |
desired packages into some specific root, but fails when the package |
56 |
has dependencies which are not installed in the system. The script |
57 |
will be adapted in order to also install the dependencies into the |
58 |
same root and manage the environment variables. |
59 |
|
60 |
A last part of the week plan regards the input configuration file. |
61 |
When testing a dependent library (e.g. LAPACK, which depends on BLAS |
62 |
and/or CBLAS), the user should be able to select as implementation for |
63 |
the dependency (e.g. BLAS or CBLAS in this case) not only an installed |
64 |
one, but also an implementataion that has been tested. |
65 |
|
66 |
|
67 |
Best regards |
68 |
Andrea Arteaga |
69 |
|
70 |
[1] http://wp.me/pzWEm-86 |