使用unicore处理器估算并行效率

时间:2014-02-17 08:08:45

标签: performance architecture parallel-processing computer-architecture

我们知道在多核系统上运行的程序的并行效率可以计算为加速/ N,其中N是核心数。因此,为了首先使用这个公式,我们需要在多核系统上执行代码,并且需要知道加速。

我想知道如果我没有多核系统,那么就可以通过在单核处理器上执行它来估计多核系统上给定代码的加速吗?

我可以访问性能计数器(每个周期的指令,缓存未命中数,指令数等),我只有代码的二进制文件。

[注意:我估计了parallel_running_time(T_P)= serial_running_time / N但这个估计有不可接受的错误]

谢谢

1 个答案:

答案 0 :(得分:2)

阅读Amdahl's Law,特别是关于parallelization的内容。

为了确定程序的加速程度,您必须知道程序的哪些部分可以从并行化中受益,哪些部分必须按顺序执行。如果您知道这一点,并且知道串行和并行部分在单个处理器上(单独)占用多长时间,那么您可以估计程序在多个处理器上的速度。

从您的描述中,您似乎不知道哪些部分可以使用并行处理以及哪些部分必须按顺序执行。因此无法估计并行运行时间。