Intel的下一代新内核Nehalem即将问世,AMD代号为“上海”的新一代处理器也发布在即。再此之前Kentsfield、Yorkfield和Phenom处理器均实现了多核,多核时代已经来临。

在计算机科学领域中,多核不是一个新的概念。远在PC还没有问世之前,多处理器系统就已出现,MPP(Massively parallel processing)系统已经集成了成千上万个处理器,这些处理器受限当时的工艺,无法像如今的CMP将多个处理器集成到一个封装中,但是从数学的角度上看,这两者等效,只是MPP集成的处理器间的通信延时大于CMP系统中处理器间的通信延时。而MPP系统需要解决的问题与如今基于CMP的多核不同,MPP系统所要解决的是一些特定问题,如医药模拟、地质勘探、天气预报、核能开发及密码破译等金字塔尖的顶级问题。MPP处理器的用户是这个星球上顶级的科研人员,而CMP系统所面对的是芸芸众生。不同的用户群决定了两者在使用上的区别,CMP的多核使用不能照搬MPP处理器的使用经验。而即便是MPP处理器也没有解决好如何使用的问题,可编程性至今还是MPP处理器需要亟待解决的核心问题。

而Intel的Tick-Tock计划使摩尔定律在近些年看不到失败的迹象,见下表[29]

Tick-Tock Roadmap

Architectural change

Fabrication process

Year

Tick

Shrink/derivative of previous micro architecture (P6)

65nm

2005

Tock

Intel Core micro architecture

2006

Tick

Shrink/derivative (Penryn)

45nm

2007

Tock

Nehalem micro architecture

2008

Tick

Shrink/derivative (Westmere)

32nm

2009

Tock

Sandy Bridge micro architecture

2010

Tick

Sandy Bridge Shrink/derivative

22nm

2011

目前Intel的第二轮Tick-Tock即将完成,Nehalem面世在即,Westmere和Sandy Bridge也在有条不紊地进行。更新的半导体工艺进一步提高了芯片的集成度,使得一个芯片内部可以集成更多的处理器内核,目前有许多公司都拥有多核产品。这里面,不仅仅有Intel、IBM和AMD传统的处理器公司,还有一些近些年Startup的公司。

多核处理器

Intel

Xeon 四核和6核处理器

Core 2 Quad

80个内核的Teraflops Research Chip,也被称为Polaris

IBM

3个内核的Xenon处理器

和Sony、Toshiba联合推出的Cell处理器,Cell中包含一个PowerPC内核和8个SPU(Synergystic Processing Unit)

Sun Microsystems

8核的UltraSPARC T1和T2

AMD

Opteron 4核处理器

Phenom 3核、4核处理器

Raza Microelectronic

8核的XLR732

Cavium Networks

16核的CN5860

Tilera

64核的TILE64

除此之外还有一些多核的GPU,如AMD/ATI的Radeon和FireStream、nVidia的GeForce 200多核GPU和Tesla多核GPGPU(General-purpose GPU)。

多核处理器降临并不以人们的意志转移,突然间满城尽是多核。连最保守的科学家也不得不承认目前需要解决的多核问题,不是讨论多核目前适不适用已有的软件平台,而是多核时代已经来临,如何调整软件平台使之适用。摩尔定律的不断成功,面对的挑战除了工艺的继续提高,还面对了来自另外一个定律Amdahl’s law的挑战。

Amdahl’s Law提出了最大并行度(The Maximum Speedup)的计算方法。当使用N个处理器运算一个课题时,理论上最大并行度为N。但是对于一个指定的课题,很难做到所有部分都是可以并行的,假设其可并行的程序比率为P,则这个课题在使用N个处理器运算时,其并行度为

1/((1-P)+(P/N))[30]

如果我们对N取极限将得到并行度=1/(1-P)这个公式,这个公式表明即便我们可以使用无限数目的处理器,也不能进一步提高执行这个课题的效率。如果一个课题的P为90%,即这个课题可以并行执行的部分为90%,此时这个程序的最大并行度为10,这也表明片面提高处理器的数目对解决一些并行度不高的课题没有太大意义。当然有些并行度较好的课题当N上升时,P也随之上升,从而课题的最大并行度也会上升,当P为1时,最大并行度为N。

Amdahl’s Law是一个理想模型,这个定律没有考虑多核之间通信的延时与带宽。如果考虑通信所花费的时间,采用多核处理器解决一个课题所耗费的总时间如下

T=f(N)=Ts+Tp/N+Tis*N[31]

其中Ts为这个课题串行执行所需要的时间,Tp为这个课题并行执行所需要的时间,而Tis为单个处理器所花费的通信时间。利用以上公式,我们可以轻易得出解决一个特定课题所需要的最优的处理器数目。

f'(N)=-Tp/sqr(N)+Tis=0<==>N=sqrt(Tp/Tis)

由以上公式可以看出,处理器间通信时间Tis与解决一个问题可能使用的处理器数目直接相关,Tis越大则可能使用的处理器数目越小。从这个公式也可以看出片面提高处理器内核的数目并不能提高一个课题执行的效率。

这个公式也为CMP的发展指明了方向,CMP的发展不应该是将多个处理器内核放在一个Die中,然后再找一条总线将多个处理器内核连接在一起,而是根据多核间的互联结构的延时与带宽决定在一个Die中到底集成多少个内核,多核处理器的设计核心是处理器内核间的互联结构而不单纯是处理器核心。Freescale即将推出的MPC8578处理器在这方面做了许多工作,MPC8578处理器中将CoreNet Architecture(互联网结构)作为设计重心,这个CoreNet Architecture可以连接的处理器内核数目的最大值为32。

摆在多核处理器面前的除了处理器的延时与带宽外,还有一个大的难题就是并行程序的可编程性。并行程序的编写、调试与维护的难度远大于串行程序。熟练掌握并行编程模型并不是一件简单的事情。

对于之前使用在巨型计算机上运行的程序在CMP运行上没有太大问题,因为这些程序本身就是由并行运算的专家编制,并经过精心并行优化的。书写这些程序的编程人员本身不仅掌握了MPI和OpenMP这些并行编程模型,对高性能计算机体系结构也有充分的认识。

对于一些银行,网站等服务性部门,他们的程序的并发性非常好。业务的无关性使得处理器间的通信与延时几乎可以忽略不计。这种程序的天然并发性使得多核处理器在CMP没有出现之前就得到了充分的应用。

多核面对的最大挑战来自PC领域的用户,这些用户良莠不齐,各种不利于程序并行化的现象都会出现在这些用户使用的机器中。而这些用户却是使用CMP人数最多的群体,这些用户正在使用的程序绝大多数都没有经过并行化处理,而这些程序的数目过于庞大,基本不可能做到将其一一优化。这些用户所执行的程序连多核处理所需要的最基本的负载均衡这个特性也很难满足。目前这些客户使用的操作系统也不能有效帮助这些客户完成这些工作。既然如此,4核、8核或者更多的内核对于他们并没有意义。

多核处理器如果不能真正解决这些人群所面临的挑战,CMP又将被重新回到高端计算的领域,而这个高端领域所蕴含的能量不足以支撑整个多核产业链的继续发展。这也可能是制约多核技术继续向前发展的决定力量。

多核处理器崭露头角的背后蕴藏着太多的危机,而这个危机的解决需要牵扯到计算机科学的所有领域,并行算法、编译器、运行时库、操作系统、处理器及制作工艺。如何提高多核处理器的可编程性高悬在每一个计算机科学研究人员心里。而这个问题,即便在超级计算机中也没有解决。发明一个聪明的编译器将串行程序直接翻译成并行程序,是一个很容易想到的方法,但是这种方法目前还很难推广到PC领域。目前已有的几个并行语言,如UPC(Unified Parallel C)、CAF(Co-Array Fortune)并不足以推广到PC用户。而IBM的X10、Sun的Fortness和Cray的Chapel还在开发阶段。并行处理需要的函数库急需完善。

而目前在多核领域,唯一令人欣慰的是处理器及制作工艺的提高使得在一个封装中可以集成更多的处理器,这也正是令人担忧的。在多核领域跑得过快的硬件迟早会被几乎停滞不前的软件拖住后腿。也许在不远的将来,Life will find a way。

PC的足迹--多核时代《九》相关推荐

  1. 多核时代,并行编程为何“臭名昭著”?

    作者 | Yan Gu 来源 | 转载自知乎用户Yan Gu [导读]随着计算机技术的发展,毫无疑问现代计算机的处理速度和计算能力也越来越强.然而细心的同学们可能早已注意到,从2005年起,单核的 C ...

  2. java多核的利用率_java利用FutureTask、ExecutorService 在多核时代充分利用CPU运算

    java利用FutureTask.ExecutorService 在多核时代充分利用CPU运算 FutureTask.ExecutorService 相关知识,请看java,API 一个使用Futur ...

  3. Amdahl定律以及该定律在多核时代的影响

    Amdahl定律 不可并行计算的存在是很重要的,因为它将限制并行化的潜在好处.阿姆达尔定律指明如果一个计算的1/S本质上是顺序的,那么最大的性能改进将受限于因数S.其论证如下,一个并行计算的执行时间T ...

  4. 三级pc技术_第十九周PC、笔电、数码周边新品汇总:AMD英特尔激战正酣

    [dogkeji-科技犬] 各位网友周末好,又到了2020年第十九周的PC.笔电.数码周边新品发布汇总时刻(2020年5月4日至2020年5月9日),那么本周有那些PC.笔电.数码周边新品发布呢?通过 ...

  5. 多核时代多线程编程(一)基本策略

    1.1问题分析 1.2分工原则 1.2.1确定线程数 1.2.2确定任务的数量 1.3共享可变性 1.4小结 1.5参考资料 大家对并发(concurrency).多线程(Multi-Threadin ...

  6. 多核时代:并行程序设计探讨(1)——并行系统

    并行程序设计探讨(1)--并行系统 大家可能会有疑问:你一会儿并行,一会儿多核,到底是谁跟谁啊? 我开始也有这个疑问,甚至以为并行就是多核,其实两个并不能对等,一句话就是:多核是并行的一种. 并行本身 ...

  7. PC的足迹--酝酿的反击《八》

    2003年3月12日是一个很特别的日子,在这一天Intel和AMD同时发布了针对笔记本的产品Athlon XP-M和Intel的迅驰平台[26].迅驰平台一经推出立刻得到认可,第一代迅驰平台由Pent ...

  8. 多核时代:并行程序设计探讨(2)——并行实现技术

    并行程序设计探讨(2)--并行实现技术 通过"并行程序设计探讨(1)"的介绍,相信大家都已经对并行系统相关的概念有了初步的了解.不过看起来挺吓人的,一堆的术语和概念,想起来头就有点 ...

  9. 多核时代 .NET Framework 4 中的并行编程6---并行LINQ

    1. 并行LINQ(PLINQ) 并行 LINQ (PLINQ) 是 LINQ 模式的并行实现. PLINQ 查询在许多方面类似于非并行 LINQ to Objects 查询. PLINQ 尝试充分利 ...

  10. linux线程并不真正并行,多核时代:并行程序设计探讨(3)——Windows和Linux对决(多进程多线程)...

    并行程序设计探讨(3)--Windows和Linux对决(多进程多线程) 前面的博文经过分析总结,最后得出两种并行技术:多进程多线程.多机协作.对于多进程和多线程来说,最有代表性且最常见的的莫过于Wi ...

最新文章

  1. java http 下载网页代码_Java下http下载文件客户端和上传文件客户端实例代码
  2. MySQL抓包工具:MySQL Sniffer
  3. 【DB2】db2命令Export与Import
  4. [转]使用rosbridge协议实现安卓跟ros的解耦
  5. 解决9.png malformed以及libpng warning: iCCP
  6. python3.7.2怎么使用win7_Win7同时安装Python2和Python3的配置
  7. hessianphp java_hessian 在PHP中的使用
  8. Flask 离线脚本
  9. Tomcat优化实践——网站运维
  10. 趣味集算:八皇后问题
  11. udp java 实例_udp例子,javaudp简单实例分享
  12. java 制作word模板
  13. Microsoft Teams 报错:We‘re sorry-we‘ve run into an issue.
  14. Drive-by Compromise 术语名词概念
  15. QQ截图时窗口自动识别的原理
  16. 论文阅读:Securely Outsourcing Neural Network Inferenceto the Cloud with Lightweight Techniques
  17. linux icc编译器,icc编译器
  18. zcmu-1653,1654...【水题集合】
  19. Spring各jar包的作用
  20. 12 图浅析人口分布对经济趋势的影响

热门文章

  1. 实时股票行情接口api有哪些?
  2. matlab字符识别ocr,OCR字符识别 matlab
  3. vue3.0 路由隐藏地址栏
  4. Android使用SubsamplingScaleImageView完美查看超大图片
  5. 【引用】教你会看电脑的配置
  6. RationalDMIS 2020高级编程之提取数据OBTAIN语句
  7. TM4C123-使用ROM中的函数库
  8. 论文写作笔记7 大纲outline写作方法
  9. 大数据可视化设计师丹尼斯_自助数据可视化设计师如何谋生
  10. 破解jQuery插件收费、下载币(单页扒站小工具)