OpenMP incompatible with LAPACK & BLAS routines

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

James Tursa
James Tursa 2011년 2월 26일
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
Adam connolly 2011년 2월 26일
OK thanks anyway. Thing is, I'm calling them on loads of little matrices which are built in a loop, so want the loop to run in parallel. Think maybe a rewrite in straight c or fortran may be the way forward!
James Tursa
James Tursa 2011년 3월 5일
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
zhuanyi 2024년 3월 31일
Hi Adam, do you have any update? I am facing the same problem.
James Tursa
James Tursa 2024년 4월 2일
편집: James Tursa 2024년 4월 2일
@zhuanyi Can you open a new Question, and maybe include a minimal complete example that reproduces the problem?

댓글을 달려면 로그인하십시오.

답변 (1개)

Jill Reese
Jill Reese 2011년 3월 4일

0 개 추천

Running your original mex function within a MATLAB Parallel Computing Toolbox parfor loop might give you the parallelism you want.

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

질문:

2011년 2월 26일

편집:

2024년 4월 2일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by