ATLAS/LAPACK cgels_() not re-entrant?

Bug #670298 reported by Richard Furse on 2010-11-03
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
atlas (Ubuntu)
Undecided
Unassigned

Bug Description

Looks like the current build of ATLAS + Netlib LAPACK might not be threadsafe (64bit 3.6.0-24ubuntu1).

I've been running multiple calls to cgels() in parallel on a multicore system (12 ht cores, 24 threads) and have finally noticed that the results returned aren't consistent when multiple threads run it at the same time. Putting a mutex lock around cgels() fixes the problem, so I guess it isn't reentrant.

I'm not sure whether the bug is in ATLAS, LAPACK or something weird in the Ubuntu build. The ATLAS and LAPACK docs both suggest that the libraries should be threadsafe, though ATLAS recommends some compile switches be set. Is it possible this hasn't been done? I had a go at building from source but couldn't make the linkage with LAPACK work.

For clarity, I'm calling "cgels_()", which I think is the correct Fortran-style entry point into LAPACK through the CLAPACK interface.

I've had great results with ATLAS in general for several years - this is a very specific problem. I'm reasonably confident the issue isn't in my code because it runs fine using the cgels() provided by Intel MKL on Windows - but as always it's possible I'm doing something stupid ;-)

Any help appreciated...

Sylvestre Ledru (sylvestre) wrote :

3.6.0 is outdated. Could you try with the 3.8.3 release ?

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Related questions