OpenMP incompatible with LAPACK & BLAS routines
Afficher commentaires plus anciens
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 commentaires
James Tursa
le 26 Fév 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
le 26 Fév 2011
James Tursa
le 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
le 31 Mar 2024
Hi Adam, do you have any update? I am facing the same problem.
James Tursa
le 2 Avr 2024
Modifié(e) : James Tursa
le 2 Avr 2024
@zhuanyi Can you open a new Question, and maybe include a minimal complete example that reproduces the problem?
Réponses (1)
Jill Reese
le 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.
Catégories
En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!