1多核程序设计2008年4月中山大学-Intel多核技术实验室2教材主教材:《多核程序设计》,ISBN9-787302-158356,清华大学出版社,2007年8月参考书:《多核程序设计技术-通过软件多线程提升性能》,电子工业出版社,ISBN9787121038716,2007年3月中山大学-Intel多核技术实验室3教学内容第一章多核技术概论第二章多核体系架构第三章Windows多线程编程(实验)第四章Linux多线程编程第五章OpenMP多线程编程及性能优化(实验)第六章Intel编译器及VTune性能分析器基础(实验)第七章ThreadCheckerAndThreadProfiler(实验)第八章ThreadingMethodology(实验)第九章ScalabilityofThreadedApplications(实验)第十章实例分析(实验)中山大学-Intel多核技术实验室4实验环境硬件:英特尔多核计算机:双核酷睿2软件:Visualstudio2003/2005IntelC++compiler10.0forlinux&forwindowsIntelMKL9.1forLinux&WindowsIntelThreadChecker3.1forLinux&WindowsThreadProfiler3.1forWindowsVtune9.0forWindows&Linux5第一章并行与多核体系结构概论中山大学-Intel多核技术实验室61微处理器发展史1945年,世界上第一台全自动电子数字计算机ENIAC计算机的发展按照硬件工艺可以分为第一代(1946~1958):电子管数字计算机。第二代(1958~1964):晶体管数字计算机。第三代(1964~1971):集成电路数字计算机。第四代(1971年以后):大规模集成电路数字计算机。中山大学-Intel多核技术实验室7微处理器1971年,第一款微处理器40041978年,英特尔公司80861979年,英特尔公司又开发出了80881981年,美国IBM公司将8088芯片用于其研制的PC机1982年,英特尔公司研制出了80286微处理器1985年10月17日,英特尔80386DX正式发布1989年,英特尔推出80486芯片1993年,新一代586CPU问世1996年底,多能奔腾PentiumMMX1998年,奔腾二代PentiumII、至强微处理器Xeon、赛扬Celeron1999年春,英特尔公司PentiumIII奔三2000年,英特尔公司Pentium4,奔四2002年,英特尔超线程技术(HT,Hyper-Threading)2005年4月18日,英特尔全球同步首发奔腾D处理器中山大学-Intel多核技术实验室8Intel40041971年,英特尔发布了其第一个微处理器:Intel4004。这款处理器核心面积未1/8英吋x1/16英吋,包含2300多个晶体管,采用了10微米PMOS技术生产——1969年,英特尔研制成功了PMOS硅栅晶体管,这些晶体管继续使用传统的二氧化硅栅介质,最大的改进是引入了新的多晶硅栅电极。中山大学-Intel多核技术实验室9Intel808580868088系列1976年3月,英特尔发布了Intel8085处理器,这款处理器主频达到了5MHz,采用了3微米制程技术,包含了6500个晶体管。两、三年后,Intel8086和8088处理器相继问世,依然采用3微米制程技术,但是集成了29000个晶体管,数量是上一代产品的4倍中山大学-Intel多核技术实验室10Intel80286803861982年,英特尔80286微处理器推出,它使用了13400个晶体管,运行频率为6MHz、8MHz、10MHz和12.5MHz。此时,英特尔采用了1.5微米制程技术。1985年,32bit的英特尔386微处理器问世,包括27.5万个晶体管,也是1.5微米制程技术。中山大学-Intel多核技术实验室11Intel486DX1989年4月,英特尔发布了Intel486DX处理器,这款处理器采用了1微米制程技术,所包含的晶体管数量达到了118万个。随后的几年间,486处理器相继发布了DX2、SX2和DX4等版本,处理器所整合的晶体管数量达到了160万个。中山大学-Intel多核技术实验室12Pentium1993年3月,英特尔Pentium处理器问世,包含有310万个晶体管,采用了英特尔0.8微米制程技术。中山大学-Intel多核技术实验室13PentiumPro1995年11月,英特尔发布的PentiumPro处理器的晶体管数量升至550万个,相继采用了0.6微米和0.35微米制程技术。1997年1月面世的PentiumMMX处理器集成度将到了450万,开始稳定的使用0.35微米制程技术。第一代的PentiumII处理器(代号Klamath)也沿用了0.35微米制程技术,包含的晶体管数量超过了750万个。中山大学-Intel多核技术实验室14中山大学-Intel多核技术实验室15PentiumIIXeon1998年4月,第二代PentiumII处理器(代号为Deschutes)和PentiumIIXeon处理器发布,它们均采用了0.25微米制程技术,后者包含了750万个晶体管。中山大学-Intel多核技术实验室16PentiumIII1999年,英特尔发布的PentiumIII处理器和PentiumIIIXeon处理器也采用了025微米制程技术,由950万个晶体管组成。随着工艺的发展,后期的PentiumIII处理器开始启用0.18微米制程技术。中山大学-Intel多核技术实验室17Pentium42000年11月,起始主频为1.5GHz的Pentium4处理器也采用了0.18微米制程技术,其所包含的晶体管数量达到了4200万个。2001年5月,英特尔还推出了Pentium4Xeon和Itanium处理器,也均为0.18微米制程技术。2002年1月,英特尔推出采用了0.13微米制程的Pentium4处理器(代号Northwood)。2003年3月12日,英特尔发布迅驰移动技术平台,其中包括了英特尔最新的移动处理器PentiumM,该处理器采用了0.13微米制程,包含7700万个晶体管。中山大学-Intel多核技术实验室18IntelPentium4&PentiumMIntelPentium4处理器(Northwood核心),0.13微米制程技术英特尔PentiumM处理器结合了855芯片组家族与IntelPRO/Wireless2100网络联机技术,成为英特尔Centrino(迅驰)移动运算技术的最重要组成部分。中山大学-Intel多核技术实验室19Itanium(安腾)处理器2001年英特尔发布了Itanium(安腾)处理器。Itanium处理器是英特尔第一款64位元的产品。这是为顶级、企业级服务器及工作站设计的,在Itanium处理器中体现了一种全新的设计思想,完全是基于平行并发计算而设计(EPIC)。对于最苛求性能的企业或者需要高性能运算功能支持的应用(包括电子交易安全处理、超大型数据库、电脑辅助机械引擎、尖端科学运算等)而言,Itanium处理器基本是PC处理器中唯一的选择。中山大学-Intel多核技术实验室20Itanium里程碑似的64位时代到来中山大学-Intel多核技术实验室21IntelITANIUM22005年,英特尔将90nm制程技术应用于代号为Prescott的Pentium4处理器和双核处理器PentiumD上,后者包含了2.3亿个晶体管。2006年7月18日,英特尔双核安腾2处理器发布,集成了17.2亿个晶体管,同样采用了90nm制程技术生产。中山大学-Intel多核技术实验室22Intel双内核奔腾D2005年5月26日,Intel发布了发布迄今为止该公司第一款双内核服务器处理器,名为—Intel双内核奔腾D处理器,主要是面向数字化家庭娱乐和数字化办公的个人应用双内核处理器。中山大学-Intel多核技术实验室23Intel双核新一代Core微架构IntelCore微架构中全新的智能缓存技术有效地加强双核心乃至多核心处理器的工作效率,Conroe同样也是双核心设计,但是其缓存设计跟PentiumD并不相同。IntelPentiumD双核心处理器中每个独立的核心都拥有独立的二级缓存;但IntelCore微架构则是通过内部的传输总线共享同一个二级缓存,2个内核共同拥有4MB或2MB的共享式二级缓存。65nm制程技术中山大学-Intel多核技术实验室24T2500&Core2DuoE4300中山大学-Intel多核技术实验室25Core实际上,我们把Core音译为酷睿,它是Intel下一代处理器产品将统一采用的微架构,而Conroe只是对基于Core微架构的Intel下一代桌面平台级产品的代号。除Conroe处理器之外,Core微架构还包括代号为Merom的移动平台处理器和代号为Woodcrest的服务器平台处理器。采用Core的处理器将被统一命名。由于上一代采用Yonah微架构的处理器产品被命名为CoreDuo,因此为了便于与前代Intel双核处理器区分,Intel下一代桌面处理器Conroe以及下一代笔记本处理器Merom都将被统一叫做Core2Duo。另外,Intel的顶级桌面处理器被命名为Core2Extreme,以区别于主流处理器产品。中山大学-Intel多核技术实验室2645nm随着45nm制造工艺的IntelPenryn处理器的发布包括双核心桌面处理器Wolfdale、四核心桌面处理器Yorkfield、双核移动处理器Penryn等家族成员中山大学-Intel多核技术实验室27CPU的一些技术名词1.主频与外频2.前端总线(FSB)频率3.CPU的位和字长4.缓存Cache5.CPU扩展指令集MMXSSE6.CPU内核和I/O工作电压7.制造工艺8.指令集CISC&RISC9.超流水线与超标量10.乱序执行技术中山大学-Intel多核技术实验室28指令集变化提高电脑在多媒体、3D图形方面的应用能力MMX57条多媒体指令SSE3DNOW!3D加速指令集怎么利用这些指令用专业编译器中山大学-Intel多核技术实验室292多核技术是处理器发展的必然推动微处理器性能不断提高的因素半导体工艺技术的飞速进步体系结构的不断发展这两个因素相互影响,相互促进工艺和电路技术的发展使得处理器性能提高约20倍体系结构的发展使得处理器性能提高约4倍编译技术的发展使得处理器性能提高约1.4倍。如今,这个规律已经很难维持中山大学-Intel多核技术实验室30Intel的制程技术发展中山大学-Intel多核技术实验室31十亿晶体管时代即将到来通用微处理器的主频已经突破了4GHz数据宽度也达到64位。65nm工艺的微处理器已经批量生产大连45nm工艺以下的微处理器也已问世芯片上集成的晶体管数目已经超过10亿个如何有效地利用数目众多的晶体管?多核通过在一个芯片上集成多个简单的处理器核利用这些晶体管资源发挥其最大的能效中山大学-Intel多核技术实验室32门延迟逐渐缩短,全局连线延迟却不断加长晶体管特征尺寸不断缩小使得晶体管门延迟不断减少互连线延迟却不断变大芯片的制造工艺达到0.18微米甚至更小时线延迟已经超过门延迟成为限制电路性能提高的主要因素CMP(单芯片多处理器)的分布式结构全局信号较少,与集中式结构的超标量处理器结构相比,在克服线延迟影响方面更具优势中山大学-Intel多核技术实验室33符合Pollack规则Pollack规则处理器性能的提升与其复杂性的平方根成正比如一个处理器的硬件逻辑提高一倍,至多能提高性能40%采用两个简单处