We noticed a threading issue with some of our code that uses MTJ and I've isolated the issue to SVD failing under certain conditions.
- By failing I mean that the same calculation returns different values depending on the thread it is running in
- The errors do not occur with the F2J libraries
- The errors occur on OSX, Windows and Linux with the reference libraries
- The errors do not occur with the default Debian system libraries (https://packages.debian.org/wheezy/liblapack3)
- The errors do occur with the Debian ATLAS system libraries (https://packages.debian.org/wheezy/libatlas3-base)
- OSX system libraries work
- We've not tested system libraries on Windows
The project https://bitbucket.org/jwray/matrix-library-investigation contains isolated, minimum code illustrating the issue. It's calculating the pseudo-inverse as that's where we noticed the issue.
There are two test class and one of them illustrates the issue with multi-threading. The test fails as above but will pass if the size of the thread pool is set to 1.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
We noticed a threading issue with some of our code that uses MTJ and I've isolated the issue to SVD failing under certain conditions.
The project https://bitbucket.org/jwray/matrix-library-investigation contains isolated, minimum code illustrating the issue. It's calculating the pseudo-inverse as that's where we noticed the issue.
There are two test class and one of them illustrates the issue with multi-threading. The test fails as above but will pass if the size of the thread pool is set to 1.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.