Compiler SDK による C++ ライブラリはマルチスレッドをサポートしますか?

조회 수: 3 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2026년 1월 13일 0:00
답변: MathWorks Support Team 2026년 1월 13일 4:02
MATLAB Compiler SDK を使って MATLAB 関数をコンパイルしています。この関数は同時ユーザーがいるアプリ内で呼び出されます。これはサポートされますか?

채택된 답변

MathWorks Support Team
MathWorks Support Team 대략 4시간 전
C++ MATLAB Data API を使用する場合、ランタイムはインプロセスモードまたはアウトオブプロセスモードのいずれかで起動できます。
インプロセスモードで実行する場合、インタープリタスレッドは1本のみで、ライブラリへのすべての呼び出しは直列化されます。この場合、同時実行性によるメリットはありません。
アウトオブプロセスモードで実行する場合、作成される各ライブラリオブジェクトごとに独立した MVM サーバーが起動されます。したがって、各スレッドから initMATLABLibrary を呼び出せば、各スレッドは自身のインタープリタを持つことになり、スレッドは MATLAB コードを同時に実行できます。ただし、MATLAB Runtime はプロセス外で動作するため、プロセス間でデータをやり取りする必要があるというトレードオフがあります。全体として、この場合に性能向上が得られるかどうかは、ランタイムプロセス間で転送すべきデータ量と、ライブラリコードが実行する処理量の相対関係に依存します。
また、アウトオブプロセス機能は広く使われてきたわけではないため、インプロセスほど安定していません。
さらに、mwArray API ではアウトオブプロセスモードはサポートされません。つまり、mwArray API はマルチスレッドをサポートしません。

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 C++ mwArray API 共有ライブラリの統合에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!