为什么会觉得这个情况奇怪? 计算负载分配不当,节点间通讯成本过高,访存瓶颈,这些都不要太正常好么... crazyHat 发表于 2022-06-09 12:45
不能简单的除core的数量 首先看整个计算中多少部分是并行的 然后看过程的瓶颈在哪,比如IO,中间计算数据的存取 nickbear 发表于 2022-06-09 12:46
我已经把循环的次数,平均分给每个cores了。 比如总共需要的循环次数是x,总cores数是y, 那么每个core所承担的循环次数是x / y gooog 发表于 2022-06-09 12:52
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
Amdahl's law https://en.wikipedia.org/wiki/Amdahl%27s_law scalability 是由串行(sequential)运算决定的。 ted.hanks 发表于 2022-06-09 13:18
多谢! 我的运算结果,非常符合这个Amdahl's law. 好奇怪,怎么世间存在这么个law。 gooog 发表于 2022-06-09 14:01
2个Node,每个Node 64 cores。总共128 cores,运行时间2.2小时。 2个Node,每个Node 128 cores。总共256cores,运行时间2.15小时。
请问我的这个结果合理吗? 会不会是错误的。为何减少的时间这么一丁点。我以为总cores达到256cores后,运行时间至少应该降到2小时以下的。
HPC的大牛,请帮忙一下。
计算负载分配不当,节点间通讯成本过高,访存瓶颈,这些都不要太正常好么...
Re
我已经把循环的次数,平均分给每个cores了。 比如总共需要的循环次数是x,总cores数是y, 那么每个core所承担的循环次数是x / y
你这些循环是100%互相独立的吗?它们之间有没有dependency?它们对于某共享资源有没有dependency?要是并行计算只是简单除一下,那工作就太容易了。
https://en.wikipedia.org/wiki/Amdahl%27s_law
scalability 是由串行(sequential)运算决定的。
如果HPC能够线性SCALEUP, SCALEDOWN, 那还要这么多公司工程师科学家干什么?直接堆核和内存不就完事了吗?
可能bottle neck 是因为串行的计算结构
多谢!
我的运算结果,非常符合这个Amdahl's law.
好奇怪,怎么世间存在这么个law。
很容易理解啊,串行的东西就要一件件做,资源再多,也没有办法利用节省时间啊
因为你的code 没有充分的parallel processing, is it on any Map Reduce framework? Spark? Akka?