mpirun保留重定向的标准输出

时间:2017-06-09 17:00:42

标签: mpi stdout

我正在群集中运行。我尝试用4种不同的形式运行我的可执行文件:

  1. 连续使用

    myexec
    

    这会立即开始按stdout提供输出。

  2. 在序列中,使用

    重定向stdoutstderr
    myexec > out-err.log 2>&1
    

    这会立即按照预期out-err.log提供输出(在另一个终端中通过cat out-err.log验证)。

  3. 并行
    mpirun -n 2 myexec
    

    这会立即开始按stdout提供输出。

  4. 同时,使用

    重定向stdoutstderr
    mpirun -n 2 myexec > out-err.log 2>&1
    

    这将保留输出直到作业完成(由于完成或时间限制)。

  5. 有没有办法让stdout / stderr"刷新"在案例4的运行时,我可以检查out-err.log

1 个答案:

答案 0 :(得分:2)

这是mpi中重定向的已知功能/问题。 我找到了解决这个问题的方法:

  1. export OMPI_MCA_opal_event_include=poll

  2. 中添加~/.bashrc
  3. opal_event_include=poll中添加~/.openmpi/mca-params.conf(如果目标和/或文件不存在,则创建目录和/或文件)。

  4. 用于获取信息的来源是:

    https://www.cfd-online.com/Forums/openfoam-installation/162664-openfoam-2-4-0-openmpi-epoll-warning-parallel-job.html

    https://github.com/open-mpi/ompi/issues/341

    https://www.open-mpi.org/doc/v2.0/man1/mpirun.1.php#sect20