boosters

mklbooster and acmlbooster are two similar modules. The main goal of these modules is to speedup surfit computation speed by implementing system of linear equations solver. Both mklbooster and acmlbooster use BLAS functions, but different implementations:

To start using library you should type the command:

$ load libacmlbooster[info sharedlibextension]

if you want to use acmlbooster or

$ load libmklbooster[info sharedlibextension]

if you want to use mklbooster.

mklbooster provides cg_mkl (Conjugate Gradient method implementation with MKL calls) and you can use it by command

$ solver_set "cg_mkl"

acmlbooster provides cg_acml (Conjugate Gradient method implementation with ACML calls) and you can use it by command

$ solver_set "cg_acml"

Each library contains sample script for testing increasing of computation speeds. Here is a tables with some tests results, performed with different computers:

Name Instructions native time ACML time MKL time ACML boost MKL boost
AMD Athlon 64 X2 4200+ MMX(+), 3DNow!(+), SSE, SSE2, SSE3, x86-64 1:34 1:19 1:19 18,99%

18,99%

Intel Pentium 4 MMX, SSE, SSE2 1:56 1:37 1:36 19,59%

20,83%

Intel Pentium D 805 MMX(+), SSE, SSE2, SSE3, x86-64 2:29 N/A 2:04 N/A

20,16%

AMD Athlon Thunderbird 950 MHz MMX(+), 3DNow!(+) 4:51 4:11 4:18 15,94%

12,79%

Intel Celeron 325 MMX, SSE, SSE2, SSE3 2:42 2:18 2:17 17,39%

18,25%

Intel Mobile Celeron MMX, SSE, SSE2 4:08 3:36 3:34 14,81%

15,89%

AMD Athlon 64 3500+ MMX(+), 3DNow!(+), SSE, SSE2, x86-64 1:36 1:22 1:22 17,07%

17,07%

Intel Pentium 4 MMX, SSE, SSE2 3:05 2:37 2:37 17,83%

17,83%


Name Instructions native time ACML time MKL time ACML boost MKL boost threading boost
native boost ACML boost

MKL boost

AMD Athlon 64 X2 4200+ MMX(+), 3DNow!(+), SSE, SSE2, SSE3, x86-64 0:58 0:44 0:45 31,82% 28,89% 62,07% 113,64%

108,89%

Intel Pentium 4 MMX, SSE, SSE2 1:16 0:58 0:59 31,03% 28,81% 52,63% 100,00%

96,61%

Intel Pentium D 805 MMX(+), SSE, SSE2, SSE3, x86-64 1:32 N/A 1:07 N/A 37,31% 61,96% N/A

122,39%

As you can see from tables, acmlbooster's and mklbooster's results looks like very similar. But, as I think, in general it is better to use mklbooster with Intel processors and acmlbooster with AMD processors.

Both libraries (ACML and MKL) are very useful: it is very easy to obtain computation speedup by making some simple changes in source code. You can easily get 15-20% speedup with one processors computers and about 30% with two processors (or computers with multithreading support).

Special thanks to Intel for providing noncommercial license for Windows version of MKL.



surfit: gridding and contouring software.