并行计算:如何在用户之间共享计算资源?

问题描述 投票:1回答:1

我正在具有以下规格的Linux机器上运行仿真。

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                80
On-line CPU(s) list:   0-79
Thread(s) per core:    2
Core(s) per socket:    20
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
Stepping:              4
CPU MHz:               3099.902
CPU max MHz:           3700.0000
CPU min MHz:           1000.0000
BogoMIPS:              4800.00
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              28160K

这是我的求解器的运行命令行脚本。

/path/to/meshfree/installation/folder/meshfree_run.sh    # on 1 (serial) worker
/path/to/meshfree/installation/folder/meshfree_run.sh N  # on N parallel MPI processes

我与我的另一个同事共享该系统。他使用10个内核作为解决方案。在这种情况下,对我来说最快的选择是什么?使用30个MPI流程?

我是一位机械工程师,对并行计算知识很少。因此,如果问题太愚蠢,请原谅。

linux performance parallel-processing linux-kernel parallelism-amdahl
1个回答
0
投票

Q“在这种情况下,对我来说最快的选择是什么?...时间短。我已经在模拟过程中。

向亚琛致敬。如果不是事后的话,最快的选择将是预先配置计算生态系统,以便:

  • 检查NUMA设备的完整详细信息-使用lstopo,或者使用lstopo-no-graphics -.ascii而不是lscpuenter image description here
  • 启动具有尽可能多的MPI-worker流程的工作(因为这些流程承担着核心FEM /网格化工作负载)
  • 如果您的FH政策不禁止这样做,则可以要求系统管理员引入CPU相似性映射(这将保护您的in-cache数据免于驱逐和昂贵的重新获取,这将使10-专门为您的同事映射的CPU和为您的应用程序专门映射的上述30个CPU运行,其余列出的资源〜40个CPU〜被“ shared >>”-两者都使用各自的CPU亲和力掩码。
  • Q

“使用30个MPI进程?”

[不,对于ASAP处理,这不是一个合理的假设-对于已经进行MPI并行处理的工作人员,使用尽可能多的CPU-Amdahl's Law explains原因。enter image description here

当然,在某些情况下,可能会出现一些细微的差异,在某些情况下,如果一个或多个工人的通信开销可能会略有减少,但是在FEM中需要蛮力处理规则,网格求解器(通信成本通常比大规模的,FEM分段的数值计算部分便宜,但只发送少量的相邻块的“边界”节点的状态数据)


下一次-最好的选择是获得用于处理关键工作负载的限制性较小的计算基础结构(考虑到业务关键条件,认为这是平滑BAU的风险,如果对您的业务连续性产生更大的影响,则为该因素。

© www.soinside.com 2019 - 2024. All rights reserved.