2012-02-01 16 views
1

Mpirun:ただ1つのプロセスのSTDOUTを印刷するには?

mpirun -n 2 <prg> 

を実行すると、両方のプロセスのSTDOUTストリームが結合され、シェルによって表示されています。このようなインターリーブ形式では、どのノードがどのノードから来るのかを知ることは難しい。

mpirunに、あるプロセスのSTDOUTをそのSTDOUTストリームに合併させる方法はありますか?ポールKapinosへ

#!/bin/sh 
[email protected] 
if [[ $OMPI_COMM_WORLD_RANK == 0 ]] 
then 
    $ARGS 
else 
    $ARGS 1>/dev/null 2>/dev/null 
fi 

ありがとう:

+1

これが可能かどうかわかりません。どの言語を使用しているか分かりませんが、プリプロセスマクロを定義して印刷文をオーバーロードし、プロセスランクも書き込まれるようにするか、印刷文が処理ランクをチェックするif文でラップされるようにすることができます。 – Chris

答えて

1

ソリューションには、次のラッパーを提供しています!

http://www.open-mpi.org/community/lists/users/2012/02/18362.php

+0

リンクのみの回答は避けてください。サイトがダウンしたり再構築された場合、あなたの回答はもはや有効ではありません。リンクされたページからソリューションを要約するのはどうですか? –

+0

解決策を要約します。このリンクはそのためのプレースホルダであることを意図していました。 – ritter

関連する問題