Mex files and parallel processing
古いコメントを表示
Hi,
I have a function that uses parfor and I could successfully run it on my local cluster. When running, I could see that the local cluster was starting and was active.
From this file, I created a mex file. The mex file is created on my local machine (Win) and then I run it by using the local cluster (so, always Win). However, when the mex is running, the local cluster does not start. When I first start it, it goes in idle mode while the mex is running. So I assume that the mex file does not run in parallel.
The mex file is compiled for C language, and the default compiler is MinGW64. Shouldn't this be fine for parallel computation of mex files?
>> mex -setup
MEX configured to use 'MinGW64 Compiler (C)' for C language compilation.
2 件のコメント
Raymond Norris
2021 年 8 月 26 日
Sorry, I'm not quite following the flow here. I understand that you have a function that starts a parallel pool with the local profile. From there, you're probably running parfor.
Are you then trying to compile this function as a MEX-file, but don't see the local pool starting? Not seeing a speed up of your code? Maybe a little more description/sample code.
回答 (1 件)
Walter Roberson
2021 年 8 月 26 日
編集済み: Walter Roberson
2021 年 8 月 26 日
0 投票
Historically, MINGW did not support OpenMP, which is what parfor compiles into if you ask to generate code for parfor.
If I recall correctly, you need one of the Microsoft compilers -- but if I recall correctly, any of the Community or Express editions since 2011 should work (but not SDK 7.1), provided that the edition is supported by your MATLAB release.
2 件のコメント
Maria
2021 年 8 月 26 日
Walter Roberson
2021 年 8 月 26 日
編集済み: Walter Roberson
2021 年 8 月 26 日
... which shows about installing OpenMP with MinGW.
However, it does not deal with the incompatibilities issues you rightly pointed to.
カテゴリ
ヘルプ センター および File Exchange で MATLAB Support for MinGW-w64 C/C++ Compiler についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!