We have discovered a problem with the Windows release of ATK 2009.12.0.3643. Fortunately we were quickly able to determine the reason for it, and we also have a temporary work-around. Since we are in the middle of an active development period, we are however not able to release a new package immediately.
It will take 1-2 weeks before an updated version will be made available.
Problem description
- The symptom of the issue is that calculations don't converge, or converge to the wrong result, because of incorrectly computed eigenvectors
- The problem only occurs when running threaded on multi-cores, on Windows. If you run ATK on a single core, all is fine.
- On Linux, there seems to be no problem even with threading turned on, but we cannot be sure
Solution
The solution is to disable threading, which automatically is turned ON in Windows, but (usually, unfortunately!!!) turned OFF in Linux (this is outside of our control).
Therefore, users of 2009.12.0.3643 should set the following
environment variables in
Contol Panel>System
MKL_NUM_THREADS = 1
MKL_DYNAMIC = FALSE
Don't forget to remove these when installing the updated version later on!
As noted above, the code seems to run fine on Linux even with threading turned on (which usually has to be
activated manually), but for now we recommend everyone to leave it turned off, for safety.
For reference, the problem is not in the ATK code, but it's a bug in Intel's MKL library. The bug was discovered in November and fixed December 21st, and we have now updated to the latest library version which should solve the problem.