2012-02-01 115 views
1

当运行Mpirun:如何打印一个进程的标准输出?

mpirun -n 2 <prg> 

两个进程的STDOUT流被合并,并通过外壳被显示。在这种交错的格式中,很难说哪一行来自哪个节点。

有没有办法让mpirun合并一个进程的标准输出到它的标准输出流?

+1

我不确定这是否是可能的。我不确定你使用的是什么语言,但是你可以定义一个预处理器宏来重载你的打印语句,这样你的打印语句也可以被写入,或者你的打印语句被包装在一个检查进程等级的if语句中。 – Chris 2012-02-01 16:48:09

回答

1

该解决方案提供了以下包装:

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

感谢保罗Kapinos!

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

+0

尽量避免仅链接的答案。如果该网站发生故障或重组,您的答案将不再有效。如何从链接页面中总结解决方案? – 2012-02-01 17:31:56

+0

我将总结解决方案。该链接意味着它是一个占位符。 – ritter 2012-02-01 19:07:22

相关问题