闵应骅的博客分享 http://blog.sciencenet.cn/u/ymin 一位IEEE终身Fellow对信息科学及其发展的看法

博文

阿姆达尔(amdahl)定律(091012)

已有 4939 次阅读 2009-10-12 17:07 |个人分类:计算机|系统分类:科研笔记| 多核处理器, 并行编程

阿姆达尔(amdahl)定律(091012)
闵应骅
    10天没写博文了,觉得有点对不起关心我的网友们。进入10月,几个国际会议,弄得比较忙。再加上得了一场肠感冒,又发烧、又肚泻,折腾得不亦乐乎。今日得宽余,不免写上一篇。
    在“纳电子时代摩尔定律还灵吗?(090915)”里,我介绍了摩尔定律。近年来,INTEL等大半导体制造公司不是在增加芯片功能或复杂化单个处理器上下功夫,而是将多个处理器放到一个芯片上,即所谓多核处理器。
    大多数的通用计算平台都支持串行应用,即程序是按顺序执行的。而并行编程是要想让许多计算同时进行,其前提是大问题可以分割成许多能够同时求解的小问题。但是,究竟什么问题需要并行编程?字处理需要吗?恐怕不需要。语音识别用并行处理恐怕会比改进串行算法更有效。计算机人希望大力提高计算能力,而用户关心的是性能价格比。关键是并行编程的方法。布朗大学一位教授说:“我可以让四核处理器都在忙于工作。但多于四核,我们必须重新思考。”
    解决并行编程问题,并不在于并行语言或开发框架。现在已经有OpenMP,和OpenCL。这些都是框架。我们需要的是高级的并行概念,以及渐进式的并行编程途径。所谓渐进式,就是不能丢掉已有的串行和并行程序。可喜的是现在已经有了一些串行程序并行化的工具,虽然它们的应用范围还很有限。最明智的办法是分析程序中潜在的并行性。
    1967年计算机体系结构专家吉恩.阿姆达尔提出过一个定律,说:在并行计算中用多处理器的应用加速受限于程序所需的串行时间百分比(见图)。譬如说,你的程序50%是串行的,其他一半可以并行,那么,最大的加速比就是2。不管你用多少处理器并行,这个加速比不可能提高。在这种情况下,改进串行算法可能比多核处理器并行更有效。最近,我们国家对多核处理器炒得火热。我们有些人有一个特性,只有外国人喊出一个新东西、新名词,我们马上跟上,跟着起哄。要知道,国外有些东西的炒作,其实是有目的的,也许是为他公司的利益,也许是故意让我们上当的。应该小心谨慎才是。对于多核处理器,与之相适应的关于并行计算的基础研究应该摆在第一位。不然,又是搞出来,报一下喜,起不到什么实际作用,也打不进国际市场。

http://blog.sciencenet.cn/blog-290937-261868.html

上一篇:护栏网的故事(091002)
下一篇:医用纳米机器人(091018)

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-2-25 22:09

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部