计算多核架构的性能?

用户名

校准具有10个计算核心的多核架构:2个处理器核心和8个协处理器。每个处理器内核可以提供2.0 GFlop,而每个协处理器则可以提供1.0 GFlop。所有计算核心可以同时执行计算。除非有明确的限制,否则任何指令都可以在处理器或协处理器内核中执行。

如果应用程序中70%的动态指令是可并行化的,那么在最佳情况下可以获得的最大平均性能(触发器)是多少?请注意,剩余的30%指令只能在并行70%的执行结束后才能执行。

考虑另一个应用程序,其中所有动态指令都可以按照以下依赖关系分为6组(A,B,C,D,E,F)。例如,A-> C表示在开始执行C中的指令之前,需要先完成A中的所有指令。前四个组(A,B,C和D)中的每一个都包含20%的动态指令而其余的两组(E和F)则包含10%的动态指令。每个组中的所有指令必须在同一处理器或协处理器内核上顺序执行。如何在多核体系结构上安排它们以获得最佳性能?现在最大的平均性能(触发器)是多少?

            A(20%) --> C(20%) -->
                                    E(10%)-->F(10%)
            B(20%) --> d(20%) -->
百视通

对于第一部分,您需要使用阿姆达尔定律,即:

max speed-up = 1/(1-p+p/n)

其中p是可并行化的部分。n是执行并行部分的改进因素。

(请注意,阿姆达尔定律公式可用于其他类型的变化的一阶估算。例如,给定ALU能源使用的N减少因子和ALU所使用的能量P因子,可以发现总能量的改善利用。)

在您的情况下,由于串行部分将在更高性能的(2 GFLOPS)处理器内核上执行,因此n为6([8个协处理器内核* 1 GFLOPS /内核+ 2个处理器内核* 2 GFLOPS /内核] / 2 GFLOPS /处理器核心)。

快速计算显示,与1个处理器内核相关的最大加速为2.4。因此,如果整个程序在一个处理器内核上串行执行,则最大FLOPS将是速度乘以速度,即2.4 * 2 GFLOPS = 4.8 GFLOPS。

对于第二部分,请注意,最初有两个独立的指令流:A-> C和B->C。由于系统具有两个处理器核心,因此两者都可以在更高性能的处理器核心上并行执行。此外,两者的工作量相同(每个流占总工作量的40%),因此它们将在同一时间完成相同的性能核心。

由于E取决于C和D的结果,因此必须在两者均完成后才开始。E和F将在处理器核心上执行(该核心是任意的,因为E必须等待两个处理器核心上运行的任务完成)。

如您所见,程序的80%(A + C为40%; B + D为40%)可以并行化2倍,并且程序(E + F)的20%是串行的。然后,您可以将数字插入阿姆达尔定律公式(p = 0.8,n = 2)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算多核架构的性能?

来自分类Dev

AWS计算优化实例低多核性能

来自分类Dev

多核CPU上的Redis性能

来自分类Dev

多核CPU上的Redis性能

来自分类Dev

Scala Future 多核 - 性能低下

来自分类Dev

多核计算机上单精度数组与双精度数组的矩阵乘法的性能下降

来自分类Dev

如何针对给定的多核架构优化算法

来自分类Dev

while循环性能单核与多核机器

来自分类Dev

VmWare SQL Server Integration Services 多核性能?

来自分类Dev

文档架构性能

来自分类Dev

使用多核来执行 Python 计算?

来自分类Dev

多核上的 MPI 计算比单核上的错误

来自分类Dev

在gem5的多核架构中运行不同的程序

来自分类Dev

bluemix xpages的性能和架构

来自分类Dev

qemu,arch linux和Windows 10的多核性能不佳

来自分类Dev

在多核计算机上加快zgrep的速度

来自分类Dev

如何计算多核处理器的时钟速度?

来自分类Dev

多核超级计算机上的SSH Shell

来自分类Dev

多核计算机上的7-Zip压缩

来自分类Dev

使用 Open-MP 的多核并行计算。

来自分类Dev

Netlogo高性能计算

来自分类Dev

计算列性能

来自分类Dev

Haskell计算性能

来自分类Dev

计算列性能

来自分类Dev

多核性能如何与Scala中的执行上下文和线程池相关

来自分类Dev

C ++中倒数计算的性能

来自分类Dev

高性能计算的C ++类

来自分类Dev

Matlab GPU计算的性能提升

来自分类Dev

ALU计算出的Mips架构地址