串行&并行程序在效率上的简单比较
问题:
多核与单核的CPU在运行串行、并行程序时时,在效率上的差别。
多核兴起:
20世纪40年代第一台电子管计算机的发明标志计算工具进入了一个崭新的时代。20世纪50年代末,晶体管的发现促成了计算机技术的一大飞跃,其性能先之电子管计算机数十倍到数百倍以上。而之后集成电路时代的到来又为计算机的发展开辟了一个新的里程。
20世纪70年代,集成电路技术能够将计算机的控制单元和算术逻辑单元集成到一个芯片上制成了微处理器芯片。之后,对计算机性能的提升研究主要集中在对微处理器的性能的提高。传统的提高处理器性能的方法主要有三种途径:
(一)提高主频;(二)优化技术,采用功能更强大的指令,流水处理的技术;(三)增加Cache的容量。
近年来,通过提高处理器主频来提升处理器性能的方法已经不大可能有大的进展,因而业界对处理器性能的提升逐渐转向了超线程、多核、缓存等技术。其中,多核是目前一个热点。
并行编程:
在以往,硬件技术的提升不会对运行其上的软件带来影响,而多核的诞生为其提出的一些难题。之前的应用程序都是针对一个运算核心而设计,而当处理器的架构
升级为多核时,以前的应用程序便不能够充分地利用多核的优势,甚至会造成性能的下降。因而,随着多核渐行,今后程序员所将面临的挑战便是开发针对多核的并
行程序。
并行程序的设计目标是挖掘问题求解过程中的并行性,寻求并行算法与并行机器体系结构的最佳匹配和映射,合理组织并行任务,减少额外消息传递和数据移动开
销。目前,开发一个并行程序可以有三种途径&#