Performance 构建屋顶线模型

Performance 构建屋顶线模型,performance,parallel-processing,hardware,multicore,supercomputers,Performance,Parallel Processing,Hardware,Multicore,Supercomputers,我正试图为超级计算机中的一个节点构建一个模型,我正在运行模拟。该节点拥有2个Intel Xeon E5-2650 v2(常春藤桥)8核2.6 GHz处理器(每个处理器16核) 节点),总内存为64GB(每个4GB)。英特尔至强E5-2650的最大内存带宽为59.7 GB/s 达到的GFLOPS=最大内存带宽x算术强度 最大GFLOPS=核数x时钟频率,单位为GHz x操作/周期 我的代码的算术强度为1/3,使用双精度浮点 以下是我计算不同类型程序峰值GFLOP的计算: 顺序程序(单核)无矢量化

我正试图为超级计算机中的一个节点构建一个模型,我正在运行模拟。该节点拥有2个Intel Xeon E5-2650 v2(常春藤桥)8核2.6 GHz处理器(每个处理器16核) 节点),总内存为64GB(每个4GB)。英特尔至强E5-2650的最大内存带宽为59.7 GB/s

达到的GFLOPS=最大内存带宽x算术强度

最大GFLOPS=核数x时钟频率,单位为GHz x操作/周期

我的代码的算术强度为1/3,使用双精度浮点

以下是我计算不同类型程序峰值GFLOP的计算:

  • 顺序程序(单核)无矢量化:

    • 1x2.6x1(我假设没有矢量化,我们只能实现1个操作/周期?)=2.6gflops
  • 带矢量化(SSE)的顺序程序(单核):

    • 1x2.6x8=20.8千兆次
  • 具有矢量化(SSE)的一个Xeon上的所有磁芯:

    • 8x2.6x8=166.4 GFLOPs
  • 具有矢量化(SSE)的两个Xeon的所有核心:

    • 2x 8x2.6x8=332.8 GFLOPs
在上述不同类型的程序之间,程序可用的内存带宽是如何变化的?我知道1 Xeon E5-2650的最大内存带宽为59.7 GB/s,但是在单核上可以实现吗?2 Xeon E2650s的速度是否达到119.4 GB/s

因此,达到的GFLOP(使用峰值带宽x算术强度)是:

  • 不带矢量化的顺序程序:

    • 59.7*1/3=19.9 GFLOPs,但由于我们的屋顶线为2.6 GFLOPs,我们限制为2.6 GFLOPs
  • 带矢量化的顺序程序:

    • 59.7*1/3=19.9 GFLOPs。这是可以实现的,因为我们的屋顶线是20.8 GFLOPs
  • 一个Xeon(使用所有8个核)具有矢量化:

    • 59.7*1/3=19.9 GFLOPs。我对此表示怀疑,因为我们的并行程序肯定比顺序程序能够产生更多的内存需求,而且顺序程序肯定不会使内存系统饱和
  • 两个Xeon(共16芯),带矢量化:

    • 119.4*1/3=39.8 GFLOPs
我觉得已经完成的GFLOP有些问题,我在什么地方犯了错误吗