我在集群中运行。我尝试用 4 种不同的形式运行我的可执行文件:
在串行中,与
myexec
Run Code Online (Sandbox Code Playgroud)
stdout正如预期的那样,这立即开始提供输出。
在串行中,重定向stdout和stderr,与
myexec > out-err.log 2>&1
Run Code Online (Sandbox Code Playgroud)
out-err.log正如预期的那样,这立即开始提供输出(cat out-err.log在另一个终端中验证)。
同时,与
mpirun -n 2 myexec
Run Code Online (Sandbox Code Playgroud)
stdout正如预期的那样,这立即开始提供输出。
同时,重定向stdout和stderr,与
mpirun -n 2 myexec > out-err.log 2>&1
Run Code Online (Sandbox Code Playgroud)
这将保留输出直到作业完成(由于完成或时间限制)。
在情况 4 中,有没有办法在运行时“刷新”stdout/stderr,以便我可以检查out-err.log?
这是 mpi 中重定向的一个已知功能/问题。我找到了解决这个问题的方法:
添加,export OMPI_MCA_opal_event_include=poll或~/.bashrc
添加(如果目录和/或文件不存在,则创建它们)opal_event_include=poll。~/.openmpi/mca-params.conf
用于获取信息的来源是:
https://github.com/open-mpi/ompi/issues/341
https://www.open-mpi.org/doc/v2.0/man1/mpirun.1.php#sect20
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |