大規模な並列アプリケーションのデバッグ: 概要

大規模な並列アプリケーションのデバッグの最大のポイントは、並列アプリケーションのプロセスを制御するデバッガーからの大量の出力の処理です。インテル® デバッガーは、同様の出力をグループに集約して出力を管理することができます。デバッガーは、次の 2 つの手法を使用して出力を集約します。

大規模な並列アプリケーションのデバッグの別のポイントは、一貫した方法でアプリケーションのプロセス、またはプロセスのサブセットをすべて制御できるデバッガーを使用することです。インテル® デバッガーは、単一のユーザーインターフェイスを使用して制御を行うことができます。

並列デバッグセッションの開始:

  1. デバッガーは、アプリケーションのトポロジーを検出して、デバッガーをアプリケーションの各プロセスにアタッチします。
  2. デバッガーは、中間にアグリゲーターと呼ばれる特別なプロセスが含まれた、ルートおよびリーフデバッガーを含む n 分木のツリーを作成します。ツリーの分岐係数とアグリゲーターの時間遅延を指定することができます。

ルートデバッガーは、並列アプリケーションを開始する責任を負い、ユーザー・インターフェイスとして動作します。アグリゲーターは前述したように出力を統合します。リーフデバッガーは、アプリケーションのプロセスを制御および問い合わせます。

分岐係数は、n 分木のツリーを作成してツリーのアグリゲーターの数を決定するために使用する係数です。例えば、16 プロセスの場合:

デバッガー初期化ファイルで、$parallel_branchingfactor 変数の値をデフォルト値 (8) から 2 以上の値に変更できます。

デバッガー初期化ファイルから $parallel_branchingfactor を削除すると、開始時に使用される分岐係数はデフォルト値になります。

アグリゲーター遅延には、期待したメッセージがすべて届かない場合に、メッセージを集約して次のレベルへメッセージを送る前にアグリゲーターが待機する時間を指定します。

デバッガー初期化ファイルで、$parallel_branchingfactor 変数の値をデフォルト値 (3000 ミリ秒) から変更できます。詳細は、「並列デバッグのヒント」を参照してください。

デバッガー初期化ファイルから $parallel_aggregatordelay を削除すると、開始時に使用されるアグリゲーター遅延はデフォルト値になります。


このヘルプトピックについてのフィードバックを送信