为什么节点零不会执行一些写入日志文件的语句

发布于 2025-01-09 08:10:09 字数 668 浏览 1 评论 0原文

我有一个生产作业,通过 OPENMPI 使用两个节点(0=主节点和 1=从节点),并通过 OPENMP 使用每个节点上的所有线程。

我在master上提交了作业。
作业在 master 上打开一个磁盘文件来记录一些信息。 (我看到在运行期间也在从属设备上打开了相同的文件)

我有类似

write(lu,*) 'pid=',pid,' some text'

和 的

write(6, *) 'pid=',pid,' some text'

语句一个接一个。 (单元 6 是 gfortran 中的 stdout -screen-)。 我在屏幕上看到这两条语句一个接一个地打印( pid=0 和 pid=1 )。
奇怪的是,日志文件上的大多数(不是全部)主打印(pid=0)都不存在。

这令人费解。我想学习一下规则。我认为主服务器和从服务器共享日志文件。

我有一个主机文件,其中有两个主机,每个主机请求 32 个线程(通过 slot 和 max-slots 命令),并且我正在将以下命令作为脚本运行,

miprun --hostfile hostfile --map-by node:pe32  myexecutable

如果有专家能够阐明这个问题,我将不胜感激。

I have a production job where I use two nodes (0=master and 1=slave) via OPENMPI and all the threads on each node via OPENMP.

I submit the job on the master.
Job opens a disk file on master to log some info. ( I see same file is opened on slave as well during the run)

I have statements like

write(lu,*) 'pid=',pid,' some text'

and

write(6, *) 'pid=',pid,' some text'

one after the other. (unit 6 is the stdout -screen- in gfortran).
I see on screen that both statements are printed one after the other ( pid=0 and pid=1 ).
Strangely enough most (not all) of master prints (pid=0) on the log file are absent.

This is puzzling. I would like to learn the rule. I thought both master and slave share the logfile.

I have a host file with two hosts each requesting 32 threads ( via slots and max-slots commands ) and I am running the following command as a script

miprun --hostfile hostfile --map-by node:pe32  myexecutable

I will appreciate if some expert can shed light on the issue.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文