gpt4 book ai didi

time - 在科学集群上使用并行处理时 $time 意味着什么?

转载 作者:行者123 更新时间:2023-12-02 21:42:23 25 4
gpt4 key购买 nike

我正在学校的一个科学集群上运行我的有限差分程序。该程序使用 openmpi 来并行化代码。

当程序串行运行时,我得到:

real    78m40.592s
user 78m34.920s
sys 0m0.999s

当我使用 8 个 mpi 处理器运行它时,我得到:

real    12m45.929s
user 101m9.271s
sys 0m29.735s

当我使用 16 mpi 处理器运行它时,我得到:

real    4m46.936s
user 37m30.000s
sys 0m1.150s

所以我的问题是:如果用户时间是总 CPU 时间,那么为什么不同数量的处理器的用户时间彼此如此不同?

谢谢

安东尼·G.

最佳答案

在串行中,您的代码运行时间为 78 分 40 秒,并且 realuser 几乎相同。

当您运行 8 个进程时(我假设它们都在同一台机器(节点)上运行),总 CPU 时间为 101m9。它要大得多,我猜你遇到了节点过载或内存过度消耗。但由于您使用的是 8 个核心,因此总挂钟时间为 101m9/8 = 12m45。您可以尝试重新运行该测试并观察会发生什么。

当您运行 16 个进程时(我假设这些进程分派(dispatch)在两个节点上),实际时间为 4m46,大约为 78m40/16。但是实际时间是累积的 cpu 时间所有处理都在与 mpirun 相同的节点上运行; time 命令无法了解其他节点上运行的 mpi 进程; 37m30 约为 78m40/2。

关于time - 在科学集群上使用并行处理时 $time 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com