Compiler SDK による C++ ライブラリはマルチスレッドをサポートしますか?
4 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2026 年 1 月 13 日 0:00
回答済み: MathWorks Support Team
2026 年 1 月 13 日 4:02
MATLAB Compiler SDK を使って MATLAB 関数をコンパイルしています。この関数は同時ユーザーがいるアプリ内で呼び出されます。これはサポートされますか?
採用された回答
MathWorks Support Team
2026 年 1 月 13 日 0:00
C++ MATLAB Data API を使用する場合、ランタイムはインプロセスモードまたはアウトオブプロセスモードのいずれかで起動できます。
インプロセスモードで実行する場合、インタープリタスレッドは1本のみで、ライブラリへのすべての呼び出しは直列化されます。この場合、同時実行性によるメリットはありません。
アウトオブプロセスモードで実行する場合、作成される各ライブラリオブジェクトごとに独立した MVM サーバーが起動されます。したがって、各スレッドから initMATLABLibrary を呼び出せば、各スレッドは自身のインタープリタを持つことになり、スレッドは MATLAB コードを同時に実行できます。ただし、MATLAB Runtime はプロセス外で動作するため、プロセス間でデータをやり取りする必要があるというトレードオフがあります。全体として、この場合に性能向上が得られるかどうかは、ランタイムプロセス間で転送すべきデータ量と、ライブラリコードが実行する処理量の相対関係に依存します。
また、アウトオブプロセス機能は広く使われてきたわけではないため、インプロセスほど安定していません。
さらに、mwArray API ではアウトオブプロセスモードはサポートされません。つまり、mwArray API はマルチスレッドをサポートしません。
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で C++ mwArray API 共有ライブラリの統合 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!