I'm currently trying to optimize Bundler (http://phototour.cs.washington.edu/bundler/), a software using LAPACK and BLAS (I'm working with a Ubuntu 32-bit partition with a VM), so I downloaded MKL. However, once libraries have been changed and the whole project compiled, the result seems to be modified, in a wrong way. I wanted to know what could be the difference between the libraries included in the original source code and the MKL ones?
The result of the Bundler is a 3D reconstruction of an object in a set of images (as a point cloud) and it differs when I only switch libraries between original LAPACK & BLAS ones and MKL ones and in this case, some cameras are misplaced, that's why I'm saying the result is wrong. What I want to know is the reason why this difference occures, the source code and libs of Bundler are on their website.
I can't really show results here as the pictures I'm using are confidential.
My internship mentor thought that the probleme could come from the sba library, using also lapack, but there's obviously no link between this library and the lapack one as there's a sba_lapack.c file in the directory (bundler/lib/sba-1.5) where the libsba.v1.5.a is built. Just in case someone thought about the same thing :)
While testing executables on another computer, we had troubles with a segmentation fault, and we found out that the initial libraries didn't work as well (nothing to do with the result difference, as the end of the program wasn't even reached) and we used the ldd command to check which libraries the executables actually used and we found out that the "good" executables were using the blas and lapack library from the "atlas" package, probably already installed on our systems.
Now, do you have an idea about the fact that libraries from atlas work, bundler ones lead to a segfault and that MKL ones' result is not the same as atlas ones?