Amdahl's Law

  Amdahl‘s Law 程序可能的加速比取决于可以被并行化的部分。

  • 如果没有可以被并行化的部分,则P=0,speedup=1,no speedup。
  • 如果全部可以被并行化,P=1,speedup is infinite(in thecory)。可以获得无穷大的加速比。
  • 如果50%可以被并行化,maxmum speedup = 2.

  如果有N个处理器并行:

  • 并行化可扩展极限For example  P=.50/.90/.99,如下表所示:

    speed up
    N P=.50 P=.90 P=.99
    10 1.82 5.26 9.17
    100 1.98 9.17 50.25
    1000 1.99 9.91 90.99
    10000 1.99 9.91 99.02

    解释:假定有一半的程序可以被并行化,即使你有10000个核心用于计算,那么也仅有1.99的加速比。

Amdahl's Law

时间: 2024-08-19 08:36:49

Amdahl's Law的相关文章

理解性能提升By阿姆达尔定律(Amdahl‘s law)

我们在进行系统优化完成后,怎么评估优化的效果呢?最简单的方式是测量系统优化后耗时和优化前耗时的比例,这也叫加速比S(Speed Up).阿姆达尔定律在理解性能优化具有重要指导意义.优化前系统总耗时To(old),优化后系统总耗时Tn(new),加速比S=To/Tn.通过下面这张图理解:(α为待提速部分原来耗时比例) S = To/Tn = 1 / (1-α)+α/k当待优化部分提速无穷倍(k接近无穷大,不耗时间)时候,S = 1 / (1-α) , 也就是说,比如α=60%,如果系统中60%的部

阿姆达尔Law对系统性能提升的定义

阿姆达尔定律 = Amdahl's Law,本篇重点是介绍该定律. 背景系统架构中对系统性能设计的解决方案之一:"阿姆达尔方案".书中还有个完全看不懂的公式,理解起来脑仁痛(不懂...)但发现很有价值,便系统的学习一下. 例题试先做一下,带着疑问点再看定律. 例题:假设某一功能的处理时间为整体系统运行时间的60%,若使该功能的处理速度提高至原来的5倍,则根据阿姆达尔定律,整个系统的处理速度可提高至原来的多少倍? 定理公式优化前系统总耗时To(old),优化后系统总耗时Tn(new),加

h.264并行熵解码

在前面讨论并行解码的章节中,我们专注于讨论解码的宏块重建部分,甚至把宏块重建描述成宏块解码,这是因为在解码工作中,宏块重建确实占了相当大的比重,不过解码还包含其它的部分,按照解码流程可粗略分为: 读取并初步解析码流(front-end) 熵解码(本文章只讨论CABAC) 帧间预测.帧内预测 (主要讨论部分为运动向量预测) 宏块重建 在以前的并行解码文章,我们主要讨论了宏块重建的并行算法,得知采用不同的算法,会产生不同的并行度.在不考虑硬件负担的情况下,并行度可以达到几十,甚至上千,如此一来,除开

symmetric multiprocessor

https://en.wikipedia.org/wiki/Symmetric_multiprocessor_system A symmetric multiprocessor system (SMP) is a multiprocessor system with centralized shared memory called main memory (MM) operating under a single operating system with two or more homogen

程序性能优化

作为一个性能癖,关于程序优化的奥秘怎能错过? 咱么可以将优化分为三个层次: 1.High-level design:即选择适当的数据结构和算法. 2.Basic code principles:注意避免两个optimization blockers,使编译器可以顺利优化.还要注意尽量不要使用连续的函数调用和不必要的内存访问.中间值就不要写入内存了,求得最终值再来写入. 3.Low-level optimizations:unroll loops即通过增加每次循环中处理的元素个数以减少迭代次数:通

The Performance Analysis of MENCODER with PARROT

1 ENVIRONMENTS               Table 1 ENV A CPU Intel(R) Xeon(R) CPU E7- 4870 @ 2.40GHz 10-core Memory 100G Linux Version 3.11.0 Ubuntu Version 12.04 2 RESULTS *We could find that MENCODER with PARROT is faster than that without PARROT over four threa

深入浅出 Java Concurrency (40): 并发总结 part 4 性能与伸缩性[转]

性能与伸缩性 使用线程的一种说法是为了提高性能.多线程可以使程序充分利用闲置的资源,提高资源的利用率,同时能够并行处理任务,提高系统的响应性. 但是很显然,引入线程的同时也引入了系统的复杂性.另外系统的性能并不是总是随着线程数的增加而总是提高. 性能与伸缩性 性能的提升通常意味着可以用更少的资源做更多的事情.这里资源是包括我们常说的CPU周期.内存.网络带宽.磁盘IO.数据库.WEB服务等等. 引入多线程可以充分利用多核的优势,充分利用IO阻塞带来的延迟,也可以降低网络开销带来的影响,从而提高单

Java concurrency (multi-threading) - Tutorial

Java concurrency (multi-threading) This article describes how to do concurrent programming with Java. It covers the concepts of parallel programming, immutability, threads, the executor framework (thread pools), futures, callables and the fork-join f

A trip through the Graphics Pipeline 2011_03

At this point, we’ve sent draw calls down from our app all the way through various driver layers and the command processor; now, finally we’re actually going to do some graphics processing on it! In this part, I’ll look at the vertex pipeline. But be