Main Content

mpiSettings

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

    説明

    mpiSettings('DeadlockDetection',DeadlockDetection) はワーカーでのデッドロック検出を on または off に切り替えます。DeadlockDectection が on の場合は、spmdReceive および spmdSend の呼び出し時にデッドロックが検出されると、ワーカーがエラーを返すことがあります。全ワーカーでデッドロック検出を有効にする必要はありませんが、これは非常に有用なオプションです。

    mpiSettings('MessageLogging',MessageLogging) は、ワーカーのメッセージのログを on または off に切り替えます。MessageLogging が on の場合、既定のメッセージの送信先は MATLAB® コマンド ウィンドウです。

    mpiSettings('MessageLoggingDestination',MessageLoggingDestination) は、MPI ログ メッセージのログ記録先を変更します。オプションには、MATLAB コマンド ウィンドウ、標準ログ ファイル、または指定ファイルがあります。

    すべて折りたたむ

    spmdブロック内の現在の並列プールにあるすべてのワーカーでのデッドロック検出をオフにします。

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

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

    jobStartup.m ファイルは、ジョブが開始する前に自動的にワーカー上で実行されます。jobStartup.m ファイルの詳細については、jobStartup を参照してください。

    次のコードを通信ジョブの jobStartup.m ファイルに追加します。

    mpiSettings('DeadlockDetection','on');
    myLogFname = sprintf('%s_%d.log',tempname,spmdIndex);
    mpiSettings('MessageLoggingDestination','File',myLogFname);
    mpiSettings('MessageLogging','on');

    入力引数

    すべて折りたたむ

    ワーカー間での通信時におけるデッドロック検出のオプション。DeadlockDetection と次の値のいずれかのコンマ区切りのペアとして指定します。

    • 'on' – デッドロック検出を有効にします。これは spmd ステートメント内の既定の状態です。

    • 'off' – デッドロック検出を無効にします。これは通信ジョブの既定の状態です。

    並列プール内のワーカーに対して設定を変更すると、その設定は並列プールが閉じるまで有効です。

    多数のワーカーを使用している場合、デッドロック検出を無効にするとパフォーマンスが向上することがあります。一部のワーカーで spmdSendspmdReceive を長期間呼び出していない場合、デッドロック検出により通信エラーが発生することがあります。エラーが発生した場合は、デッドロック検出を無効にしてみてください。

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

    データ型: logical

    ワーカー間の通信時における MPI メッセージのログのオプション。MessageLogging と次の値のいずれかのコンマ区切りのペアとして指定します。

    • 'on'MessageLogging を有効化します。

    • 'off'MessageLogging を無効化します。

    データ型: logical

    ログ メッセージの送信先。MessageLoggingDestination と次のオプションのいずれかのコンマ区切りのペアとして指定します。

    • 'CommandWindow' – MPI ログ情報を MATLAB コマンド ウィンドウに送信します。コマンド ウィンドウの出力をキャプチャするよう通信ジョブ内のタスクを設定している場合は、MPI ログ情報はタスクの CommandWindowOutput プロパティにあります。

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

    • 'File','filename' – MPI ログ情報を filename として指定されたファイルに送信します。

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

    ヒント

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

    • クライアントではなくワーカーで関数 mpiSettings を呼び出す必要があります。通信ジョブ内の MPI 通信設定を変更するには、タスク関数内、または jobStartup.m ファイルおよび taskStartup.m ファイルのユーザー定義オプション内で mpiSettings を使用します。

      並列プール内のすべてのワーカーの MPI 通信設定を変更するには、poolStartup ファイルで mpiSettings を使用します。

      詳細については、関数 jobStartuptaskStartup、および poolStartup を参照してください。

    バージョン履歴

    R2006a より前に導入