Hello everbody,
I use Armadillo in my Visual Studio 2012 project to interface LAPACK and BLAS routines. The performance of my program depends directly on the matrix solver DGESV. So I want to get the best speed on that function.
I have done some research, but there are still a lot of things, which are not really clear to me. I have read that LAPACK uses fast BLAS routines in order to use multi-threading technologies and get a better speed. That implies to me, that LAPACK is not using multi-cores by nature. I have read that there are BLAS compilations, which are optimized and use multi-cores (Intel MKL, AMD ACML, OpenBLAS).
1) Does my LAPACK.dll depend on my external BLAS.dll?
2) Or is BLAS already compiled into LAPACK with linking?
3) Does DGESV uses multiple-cores? (Or how can I find out, if a LAPACK routine is optimized?)
In the 2nd case, I have compile my own LAPACK.dll with several BLAS compilations, right? In the first case, I can just link them, and LAPACK automatically gets profit from the BLAS speed(I don't think that it works that way) ? Excuse me, if the question is too stupid for you, but I am new to using third party dll's.
Cheers,
Niclas

