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.