One of our users found the following problem when using the mp version of ACML 5.3.1 (exists in 5.3.0 too)
Compiling the attached file with
opencc -o oq -O0 -g -std=c99 -openmp acml-bug.c -Lpath-to-acml-lib -Wl,-rpath,/path-to-acml-lib -lacml_mp -lm
and then run with
for i in `seq 1 12`; do echo $i; OMP_NUM_THREADS=$i ./oq 71 1; done
you will see that it produces different results from the two identical calls to dgemm
the results differs between number of threads and also if you repeat the loop it will give a different set of diffs.
The result should be no diffs printed.
If i instead use the GCC, Intel or PGI version of the acml lib the result is always correct.