Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

mpiSettings

MPI 通信のオプションを構成する

構文

mpiSettings('DeadlockDetection','on')
mpiSettings('MessageLogging','on')
mpiSettings('MessageLoggingDestination','CommandWindow')
mpiSettings('MessageLoggingDestination','stdout')
mpiSettings('MessageLoggingDestination','File','filename')

説明

mpiSettings('DeadlockDetection','on')labSend および labReceive の呼び出し中のデッドロック検出をオンにします。デッドロックが検出されると、labReceive の呼び出しでエラーが発せられる可能性があります。全ワーカーでデッドロック検出を有効にする必要はありませんが、これは非常に有用なオプションです。既定値は、通信ジョブで 'off'spmd ステートメント内で 'on' です。spmd ステートメント内で設定を変更すると、その設定は並列プールが閉じるまで有効です。

多数のワーカーを使用している場合、デッドロック検出を無効にするとパフォーマンスが向上することがあります。

一部のワーカーで labSendlabReceive を長期間呼び出していない場合、デッドロック検出により通信エラーが発生することがあります。エラーが発生した場合は、デッドロック検出を無効にしてみてください。

mpiSettings('MessageLogging','on') は MPI メッセージのログをオンにします。既定値は 'off' です。既定の出力先は MATLAB® コマンド ウィンドウです。

mpiSettings('MessageLoggingDestination','CommandWindow') は MPI ログ情報を MATLAB コマンド ウィンドウに送信します。コマンド ウィンドウの出力をキャプチャするよう通信ジョブ内のタスクを設定している場合は、MPI ログ情報がタスクの CommandWindowOutput プロパティに格納されます。

mpiSettings('MessageLoggingDestination','stdout') は MPI ログ情報を MATLAB プロセスの標準出力に送信します。MATLAB ジョブ スケジューラを使用している場合は mjs サービス ログ ファイルです。

mpiSettings('MessageLoggingDestination','File','filename') は MPI ログ情報を指定されたファイルに送信します。

通信ジョブのデッドロック検出を、そのジョブの jobStartup.m ファイル内で設定します。

    % Inside jobStartup.m for the communicating job
    mpiSettings('DeadlockDetection','on');
    myLogFname = sprintf('%s_%d.log',tempname,labindex);
    mpiSettings('MessageLoggingDestination','File',myLogFname);
    mpiSettings('MessageLogging','on');

後続の spmd ステートメントのうち、同じ並列プールを使用するものすべてに対してデッドロック検出をオフにします。

spmd;mpiSettings('DeadlockDetection','off');end

ヒント

MessageLoggingDestination を設定しても、自動的にメッセージのログが有効になることはありません。メッセージのログを有効にするには、別の呼び出しが必要です。

mpiSettings を、クライアントではなくワーカーで 呼び出す必要があります。つまり、タスク関数内、jobStartup.m 内または taskStartup.m 内で呼び出す必要があります。

バージョン履歴

R2006a より前に導入