首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MPI:打印每个节点的日志

MPI:打印每个节点的日志
EN

Stack Overflow用户
提问于 2021-07-16 07:13:58
回答 2查看 57关注 0票数 0

MPI不支持有序打印日志。有没有办法打印每个节点的日志?

更细粒度的方法是使用带有openmpi的--output-filename,它将stdout,stderr写到每个进程的节点中的文件,也就是说,如果我在2个节点上运行一个mpi作业,每个节点上有2个进程,我可以看到:

代码语言:javascript
运行
复制
Node1:
rank.0/stdout, rank.0/stderr
rank.1/stdout, rank.1/stderr
Node2:
rank.2/stdout, rank.2/stderr
rank.3/stdout, rank.3/stderr

如何动态合并这些文件并将其写入单个文件(或该节点上的stdout )?

理想情况下,我希望将node1上的所有日志合并到一个日志中,并将node2上的所有日志合并到node2上的另一个日志中。

附言:我正在开发python3

EN

回答 2

Stack Overflow用户

发布于 2021-07-16 16:06:34

你可以的

  1. 随后使用简单的shell脚本合并文件
  2. 在日志字符串上使用MPI_Gather,并将它们从根进程中写出。

在MPI中同步写入的其他尝试可能不会起作用。

票数 0
EN

Stack Overflow用户

发布于 2021-07-17 01:33:00

一些实现允许在mpiexec中使用"prepend“参数。例如,使用MPICH,我可以执行mpiexec -np 4 -l -prepend-rank,并且每一行都以[N]为前缀,其中N是秩。

如果您将这些日志用于工作流中的其他步骤,则可能需要查看MPI-IO选项,并协调将日志写入一个文件。(请注意,MPI-IO和文本文件可能是一项挑战。使用二进制数据推断MPI-IO行为要容易得多)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68401743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档