OpenMP incompatible with LAPACK & BLAS routines
Show older comments
I've written a few c mex files and have called dsyev to find eigenvalues etc. I want to call this routine in parallel in a threaded loop. Everything compiles OK without warnings (using MS Visual Studio Prof. Edition 2005).
However, when I call it from Matlab it just crashes, without any error messages...
Anyone have any ideas?!?
Thanks in advance
Adam
5 Comments
James Tursa
on 26 Feb 2011
Well, I think your title already says it. The LAPACK and BLAS libraries that ship with MATLAB are probably not thread-safe. However, many of the routines in these libraries are already multi-threaded, so I don't know how much speed up you would get even if they were thread-safe.
Adam connolly
on 26 Feb 2011
James Tursa
on 5 Mar 2011
I should have asked this before, but are you sure your C code for calling dsyev is correct (argument type, etc)? Can you run it in a single thread to verify that it is coded correctly?
zhuanyi
on 31 Mar 2024
Hi Adam, do you have any update? I am facing the same problem.
James Tursa
on 2 Apr 2024
Edited: James Tursa
on 2 Apr 2024
@zhuanyi Can you open a new Question, and maybe include a minimal complete example that reproduces the problem?
Answers (1)
Jill Reese
on 4 Mar 2011
0 votes
Running your original mex function within a MATLAB Parallel Computing Toolbox parfor loop might give you the parallelism you want.
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!