1. ホーム
  2. debugging

[解決済み] MPIプログラムのデバッグはどのように行うのですか?

2022-05-14 14:30:24

質問

私はコンパイルして実行するMPIプログラムを持っていますが、私は奇妙なことが何も起こっていないことを確認するためにそれを介してステップしたいと思います。理想的には、特定のプロセスに GDB をアタッチする簡単な方法が欲しいのですが、それが可能かどうか、また、どのように行うのかがよくわかりません。代替案としては、各プロセスが個別のログ ファイルにデバッグ出力を書き込むことが考えられますが、これはデバッガーと同じ自由を本当に与えるわけではありません。

もっと良い方法はないでしょうか?MPIプログラムのデバッグはどのように行うのでしょうか?

どのように解決するのですか?

誰かが言っていたように 合計表示 が標準です。 しかし、手間がかかります。

OpenMPIのサイトには、素晴らしい MPIデバッギングに関するFAQ . FAQの6番目の項目は、MPIプロセスにGDBをアタッチする方法について説明しています。 全部読んでみてください、いくつかの素晴らしいヒントがあります。

もし、あまりにも多くのプロセスを追跡する必要がある場合は スタック トレース解析ツール (STAT) . 私たちはリバモアでこれを使用して、潜在的に何十万もの実行中のプロセスからスタック トレースを収集し、ユーザーに対してそれらをインテリジェントに表現しています。 これはフル機能のデバッガーではありませんが (フル機能のデバッガーは 208k コアにはスケールしません)、どのプロセス グループが同じことを行っているかを教えてくれます。 そして、標準的なデバッガーで各グループからの代表者をステップスルーすることができます。