超性能计算:增大Node数目,为何不能大量减少运行时间

g
gooog
楼主 (北美华人网)
High performance computing, 我最近遇到了奇怪的结果。
2个Node,每个Node 64 cores。总共128 cores,运行时间2.2小时。 2个Node,每个Node 128 cores。总共256cores,运行时间2.15小时。
请问我的这个结果合理吗? 会不会是错误的。为何减少的时间这么一丁点。我以为总cores达到256cores后,运行时间至少应该降到2小时以下的。
HPC的大牛,请帮忙一下。
孤傲招财猫
不是大牛,帮顶。一亩三分地估计能有更多回复。
m
mylifetouch
Your code is probably memory bound.
c
crazyHat
为什么会觉得这个情况奇怪?
计算负载分配不当,节点间通讯成本过高,访存瓶颈,这些都不要太正常好么...
b
badgerbadger
为什么会觉得这个情况奇怪?
计算负载分配不当,节点间通讯成本过高,访存瓶颈,这些都不要太正常好么...
crazyHat 发表于 2022-06-09 12:45

Re
n
nickbear
不能简单的除core的数量 首先看整个计算中多少部分是并行的 然后看过程的瓶颈在哪,比如IO,中间计算数据的存取
g
gooog
不能简单的除core的数量 首先看整个计算中多少部分是并行的 然后看过程的瓶颈在哪,比如IO,中间计算数据的存取
nickbear 发表于 2022-06-09 12:46

我已经把循环的次数,平均分给每个cores了。 比如总共需要的循环次数是x,总cores数是y, 那么每个core所承担的循环次数是x / y

i
iheartnyc
我已经把循环的次数,平均分给每个cores了。 比如总共需要的循环次数是x,总cores数是y, 那么每个core所承担的循环次数是x / y


gooog 发表于 2022-06-09 12:52

你这些循环是100%互相独立的吗?它们之间有没有dependency?它们对于某共享资源有没有dependency?要是并行计算只是简单除一下,那工作就太容易了。
c
chairsky
楼主看下log不就知道了吗?
a
aoiqa
这些core的平行程度?
t
ted.hanks
Amdahl's law
https://en.wikipedia.org/wiki/Amdahl%27s_law
scalability 是由串行(sequential)运算决定的。
f
fluker
很正常。先看看内存分配负载情况。
如果HPC能够线性SCALEUP, SCALEDOWN, 那还要这么多公司工程师科学家干什么?直接堆核和内存不就完事了吗?
c
castleonsands
High performance computing, 我最近遇到了奇怪的结果。
2个Node,每个Node 64 cores。总共128 cores,运行时间2.2小时。 2个Node,每个Node 128 cores。总共256cores,运行时间2.15小时。
请问我的这个结果合理吗? 会不会是错误的。为何减少的时间这么一丁点。我以为总cores达到256cores后,运行时间至少应该降到2小时以下的。
HPC的大牛,请帮忙一下。
gooog 发表于 2022-06-09 12:39

可能bottle neck 是因为串行的计算结构
g
gooog
Amdahl's law
https://en.wikipedia.org/wiki/Amdahl%27s_law
scalability 是由串行(sequential)运算决定的。
ted.hanks 发表于 2022-06-09 13:18

多谢!
我的运算结果,非常符合这个Amdahl's law.
好奇怪,怎么世间存在这么个law。
c
castleonsands
多谢!
我的运算结果,非常符合这个Amdahl's law.
好奇怪,怎么世间存在这么个law。
gooog 发表于 2022-06-09 14:01

很容易理解啊,串行的东西就要一件件做,资源再多,也没有办法利用节省时间啊
M
MimiMouse
多谢!
我的运算结果,非常符合这个Amdahl's law.
好奇怪,怎么世间存在这么个law。
gooog 发表于 2022-06-09 14:01

因为你的code 没有充分的parallel processing, is it on any Map Reduce framework? Spark? Akka?