nmmamd

Incompatibility between OpenMP in ACML and gfortran

Discussion created by nmmamd on Nov 7, 2009
Latest reply on Nov 9, 2009 by chipf
This is ACML 4.3.0

gfortran -fopenmp is incompatible with -lacml_mp under at least some
circumstances. The program is LAPACK Cholesky and its solver, converted
to Fortran 90 and instrumented for a course. It fails with 4.4.1 in ACML
(i.e. the LAPACK call returns an erroneous error value), and in 4.3.2
the solver (which does NOT call ACML) takes 10 times as long as it should
do. Omitting the -fopenmp and using -lacml instead both work perfectly;
i.e. it fails ONLY if both -fopenmp and -lacml_mp are used. Oh, and it
works with -llapack, too. Oh, joy.

Here is some of the gfortran grobble:

osset$gfortran -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/home/nmm/gfortran --disable-shared
--disable-threads --disable-bootstrap -enable-languages=fortran
--enable-werror=yes --enable-checking=all --disable-decimal-float
Thread model: single
gcc version 4.4.1 (GCC)
gosset$/usr/bin/gfortran -v
Using built-in specs.
Target: x86_64-suse-linux
...
Thread model: posix
gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)

The source is fairly short and clean, but fred_f_1000 is 16 MB.
The 4.4.1 failure shows with a 160 MB test file, but not the 4.3.2
one. However, I can the generating programs, which are very
short.

Outcomes