1 |
This is the report of the project "Automated benchmark suite for |
2 |
numerical libraries in Gentoo" for the week 1 - 7 August. |
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 |
|
17 |
== Progrees during the week == |
18 |
|
19 |
This week has been devoted to the following features: |
20 |
|
21 |
* Stabilization of the PBLAS/ScaLAPACK tests |
22 |
* Introduction of the METIS tests |
23 |
* Implementation of the LAPACK accuracy tests |
24 |
* Refinement of the LAPACK performance tests |
25 |
|
26 |
|
27 |
=== METIS === |
28 |
METIS is a package — a set of executables and a library — that perform |
29 |
some common preliminary numerical work: graph partitioning, mesh |
30 |
partitioning, sparse matrix reordering. The metis.py module taht has |
31 |
been introduced benchmarks the run times of the executables "pmetis" |
32 |
and "kmetis" when doing the most important task: graph partitioning — |
33 |
the other task rely on this one. In order to keep the benchmarks fair, |
34 |
the same input data is processed by every “implementation” (i.e. for |
35 |
each different compilation of the sci-libs/metis package). The module |
36 |
is already stable and usable, although some more tests could be added. |
37 |
|
38 |
|
39 |
=== LAPACK performance tests === |
40 |
We decided to benchmark matrix decompositions rather than full |
41 |
solvers, as the decompositions are the real core of each LAPACK |
42 |
solver, while the substitutions and transposed matrix-vector |
43 |
multiplication are BLAS tasks that have to be benchmarked separately. |
44 |
Therefore the following tests have been deprecated — they are still |
45 |
available, but are not part of the standard set: |
46 |
|
47 |
* general_solve: General linear system of equations solver |
48 |
* least_squares: General linear least squares solver |
49 |
* symm_ev: Symmetric matrix eigensolver — eigenvalues only |
50 |
|
51 |
Some new tests have been added, and the following are the resulting |
52 |
standard tests: |
53 |
* lu_decomp: LU decomposition |
54 |
* cholesky: Cholesky decomposition of a SPD matrix |
55 |
* qr_decomp (new): QR decomposition |
56 |
* svd_decomp (new): Singular Values Decomposition |
57 |
* syev (new): Symmetric matrix eigensolver (eigenvalues and |
58 |
eigenvectors), full diagonalization |
59 |
* stev (new): Tridiagonal matrix eigensolver (eigenvalues and |
60 |
eigenvectors), full diagonalization |
61 |
|
62 |
|
63 |
=== LAPACK accuracy tests === |
64 |
Following the blas_accuracy.py module strategy, a new much more |
65 |
interesting module has been added for testing the different LAPACK |
66 |
implementations for accuracy. This includes every LAPACK standard |
67 |
tests (see above section). The matrix decomposition are tested by |
68 |
multiplying the results and comparing this to the original matrix; the |
69 |
eigensolvers are treated as decompositions (diagonalization) and |
70 |
tested the same way. Some reports are available on my homepage [2]. |
71 |
|
72 |
|
73 |
== Plan for the next weeks == |
74 |
|
75 |
The GSoC programme is reaching the end. Next week is the soft “pencils |
76 |
down” date. Therefore I will spend the next week doing only tests and |
77 |
bugfixes, writing documentation and performing other “administrative” |
78 |
tasks (ebuild refinment, repository management,…). On Friday the |
79 |
unstable branch of the repository will be merged to the stable. Then a |
80 |
full report will be written and sent to the mailing list. |
81 |
|
82 |
After the soft “pencils down” date, only critical bugs will be fixed |
83 |
and more documentation will be added. Then, I will release a stable, |
84 |
tested, documented and supported version of my suite just before the |
85 |
hard “pencils down” date. |
86 |
|
87 |
I would appreciaty *very* *much* some helping hand in testing my |
88 |
script! If somebody is interested in having a look of it, it very easy |
89 |
to install the required packages and run some tests. So please if you |
90 |
have some time, let it run and report bugs that you find (if any) to |
91 |
me; if you don’t find bugs, please write to me as well! I will write a |
92 |
short howto for run the tests and send the link to the mailing list. |
93 |
|
94 |
|
95 |
Best regards |
96 |
Andrea Arteaga |
97 |
|
98 |
[1] http://wp.me/pzWEm-8F |
99 |
[2] http://www.phys.ethz.ch/~arteagaa/soc/lapack_accuracy/ |