即使CPU数量增加,执行时间也会增加,为什么? 我在HPC集群上运行了不同数量的CPU的相同C++问题大小,但是我发现,当CPU数量增加时,执行时间也增加了。我预计执行时间会显著减少。有人能解释一下这个问题吗
下面是我每台CPU的执行时间 我的想法:即使CPU数量增加,执行时间也会增加,为什么? 我在HPC集群上运行了不同数量的CPU的相同C++问题大小,但是我发现,当CPU数量增加时,执行时间也增加了。我预计执行时间会显著减少。有人能解释一下这个问题吗,c++,architecture,operating-system,cluster-computing,hpc,C++,Architecture,Operating System,Cluster Computing,Hpc,下面是我每台CPU的执行时间 我的想法: CPU之间的通信增加过多,导致执行时间增加 希望这能解释这一点: “影响性能的主要因素有两个:CPU本身的速度和对内存的访问速度。在集群中,相当明显的是,给定的CPU将以最快的速度访问同一台计算机(节点)内的RAM。”。也许更令人惊讶的是,由于主内存和缓存的速度不同,在典型的多核笔记本电脑上也存在类似的问题。因此,一个好的多处理环境应该允许特定CPU控制内存块的“所有权”。希望这能解释这一点: “影响性能的主要因素有两个:CPU本身的速度和对内存的访问
- CPU之间的通信增加过多,导致执行时间增加
- 希望这能解释这一点:
“影响性能的主要因素有两个:CPU本身的速度和对内存的访问速度。在集群中,相当明显的是,给定的CPU将以最快的速度访问同一台计算机(节点)内的RAM。”。也许更令人惊讶的是,由于主内存和缓存的速度不同,在典型的多核笔记本电脑上也存在类似的问题。因此,一个好的多处理环境应该允许特定CPU控制内存块的“所有权”。希望这能解释这一点:
“影响性能的主要因素有两个:CPU本身的速度和对内存的访问速度。在集群中,相当明显的是,给定的CPU将以最快的速度访问同一台计算机(节点)内的RAM。”。也许更令人惊讶的是,由于主内存和缓存的速度不同,在典型的多核笔记本电脑上也存在类似的问题。因此,一个好的多处理环境应该允许特定CPU控制内存块的“所有权”。这可能有帮助吗。还看一下:你的C++代码是否并行?你是怎么提交的?也许这能帮上忙。还看一下:你的C++代码是否并行?如何提交?
Number of CPUs Problem size Time (seconds)
1 3000000 15.48
2 3000000 18.2
4 3000000 21.73
8 3000000 40.55
16 3000000 60.14
32 3000000 98.75