MATLAB 2012b の Simbiology ツールボックスと組み合わせて並列計算ツールボックス (PCT) を使用しています。ワーカーのローカル プールではなくリモート プールのワーカーでスクリプトを実行すると、断続的なエラー メッセージが表示されます。
キャッチされたstd::exception
例外メッセージは次のとおりです。
vector::_M_range_check
Error using parallel_function (line 589)
Error in remote execution of remoteParallelFunction : RUNTIME_ERROR
Error in PSOFit (line 486)
parfor ns = 1:r.NumSwp
Error in PSOopt_driver (line 209)
PSOFit(ObjFuncName,LB,UB,PSOopts);
関数 sbiosimulate (モデル評価用の SimBiology 関数) の呼び出しをコメント アウトすると、エラーは発生しません。
私にはいくつかのアイデアがあります:
- モデル変数へのアクセスに問題を引き起こすある種の競合状態を導入しました (これは MATLAB で可能ですか?)
- シンバイオロジーにおけるモデルのコンパイルは、PCT と互換性がある場合もありますが、常にそうであるとは限りません。
- sbiosimulate はコンパイルされた C++ コードを評価するため、入力によってはソースに例外を生成するバグがある可能性があります。
私はこれを認識しています。