Compiler SDK による C++ ライブラリはマルチスレッドをサポートしますか?
조회 수: 3 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2026년 1월 13일 0:00
답변: MathWorks Support Team
2026년 1월 13일 4:02
MATLAB Compiler SDK を使って MATLAB 関数をコンパイルしています。この関数は同時ユーザーがいるアプリ内で呼び出されます。これはサポートされますか?
채택된 답변
MathWorks Support Team
대략 4시간 전
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!