如何测量Python MPI或多处理程序的内存占用率?

2024-05-15 18:04:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Cray XE6机器上执行此操作,在那里我无法登录到计算节点上,并且不可能进行交互会话,因此我需要以某种方式使用top命令:在后台运行top,让它定期拍摄快照并将其发送到日志文件中。。。有人能给我举个例子吗?

谢谢


Tags: 文件命令机器节点top方式快照后台
1条回答
网友
1楼 · 发布于 2024-05-15 18:04:53

使用resource模块查询当前内存使用情况。然后,在MPI程序的某个地方,每隔一定的时间将使用情况转储到日志中。在

例如,下面的方法测量当前进程的最大驻留内存大小,并将该值附加到文件中。您可能要做的是在模拟的每个时间步的某个地方插入片段。在

import datetime
import resource
import os
from mpi4py import MPI

mem = resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
rank = MPI.COMM_WORLD.Get_rank()
fname = 'r{}.log'.format(rank)
with open(fname, 'a') as f:
    # Dump timestamp, PID and amount of RAM.
    f.write('{} {} {}\n'.format(datetime.datetime.now(), os.getpid(), mem))

注意文件的命名,使用正在运行的MPI进程的等级(根据@Hristo的建议)。在

相关问题 更多 >