gpt4 book ai didi

time - $time 在科学集群上使用并行处理时的含义?

转载 作者:行者123 更新时间:2023-12-02 04:44:16 28 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 个内核,因此挂钟总时间为 101 分 9/8 = 12 分 45 秒。您可以尝试重新运行该测试并观察会发生什么。

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

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

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