SCST1HITAnalystMeetAugust27,2002SCSTHITMulticoreProgrammingInstructor:ZhangWeizhe(张伟哲)ComputerNetworkandInformationSecurityTechniqueResearchCenter,SchoolofComputerScienceandTechnology,HarbinInstituteofTechnologySCST2HIT2课程安排Classhours:Weeks12-19周二,1-2am致知32周四,1-2am致知32Office:综合楼708Informationexchange:wewillmainlyuseemailEmail:zwz@pact518.hit.edu.cnContacttimes:afterclassorbyappointmentTransparencies:availableafterclass(*.pdf)SCST3HIT3实验安排Classhours:Weeks15-19五楼网络实验室Content:1)Intel多核编译器及性能分析器2)基于WindowsThread和OpenMP的多线程编程3)基于cell的多核程序设计4)基于MPI的并行程序设计SCST4HIT4考核安排■Examhours:Weeks20Fri.10:00-12:00am正心33■Requirement:(1)Exam:60%(2)Experiments:30%(3)Attendance:10%SCST5HIT5教材■《多核程序设计》清华大学工业出版社■《IntroductiontoParallelComputing》机械工业出版社SCST6HIT6教材■《DesigningandBuildingParallelPrograms并行程序设计》■IanFoster等著,人民邮电出版社■网址:参考书目■《多核程序设计技术—通过软件多线程提升性能》■《Multi-CoreProgramming-increasingperformancethroughsoftwaremulti-threading》■ShameemAkhter等著/李宝峰等译,电子工业出版社,2007■《高性能计算并行编程技术——MPI并行程序设计》■都志辉等著,清华大学出版社,2001■网址:课程基础知识■高级程序设计语言■数据结构及算法■计算机网络(TCP/IP)SCST9HIT9本课程的目的■总体目标:将多核技术与并行程序设计的内容结合起来,培养面向多核处理器和Linux环境的并行程序设计人才。■并行处理的基础理论■多核处理器体系结构■基于共享内存的多核并行程序设计■基于消息传递的多核并行程序设计■面向多核系统的并行算法SCST10HIT课程的主要内容10多核技术导论多核处理器体系结构并行程序设计基础多核程序通讯及算法性能分析并行计算系统同步多核程序设计并行计算系统互斥容错基于共享内存程序设计基于分布式内存程序设计Windows多线程Linux多线程MPI程序设计PVM程序设计OpenMP多线程Cell程序设计SCST11HIT11关于如何学习■1、课堂知识■2、搜索引擎■3、论坛和专业站点■4、期刊论文(CNKI)■5、花足够的时间研究案例-实践SlidesdonotcoveranythingNotareplacementtoyourownreadingandownnotesSCST12HITAnalystMeetAugust27,2002SCSTHIT第一章多核技术导论SCST13HIT第一章多核技术导论■微处理器发展史SCST14HIT计算机先驱--BabbageAnalyzerSCST15HIT微处理器和计算机的发展史■计算机的发展按照硬件工艺可以分为■第一代(1946-1958):电子管数字计算机。■第二代(1958-1964):晶体管数字计算机。■第三代(1964-1971):集成电路数字计算机。■第四代(1971年以后):大规模集成电路数字计算机SCST16HITENIAC(ElectronicNumericalIntegratorandCalculator,即电子数字积分器和计算器)1946年,世界上第一台全自动电子数字计算机SCST17HIT微处理器和计算机的发展史■计算机的发展按照硬件工艺可以分为■第一代(1946-1958):电子管数字计算机。■第二代(1958-1964):晶体管数字计算机。■第三代(1964-1971):集成电路数字计算机。■第四代(1971年以后):大规模集成电路数字计算机SCST18HIT■美国的IBM公司制成了第一台全部使用晶体管的计算机RCA501型。■1958年18SCST19HIT微处理器和计算机的发展史■计算机的发展按照硬件工艺可以分为■第一代(1946-1958):电子管数字计算机。■第二代(1958-1964):晶体管数字计算机。■第三代(1964-1971):集成电路数字计算机。■第四代(1971年以后):大规模集成电路数字计算机SCST20HIT■IBM360系统是最早使用集成电路元件的通用计算机系列,计算机从此进入了集成电路时代。■1964年,IBM360为第三代计算机里程碑20SCST21HIT微处理器和计算机的发展史■计算机的发展按照硬件工艺可以分为■第一代(1946-1958):电子管数字计算机。■第二代(1958-1964):晶体管数字计算机。■第三代(1964-1971):集成电路数字计算机。■第四代(1971年以后):大规模集成电路数字计算机SCST22HIT4位、8位与16位微处理器■第一代处理器:■1971年,英特尔推出微处理器4004■世界上第一款微处理器■Intel8008是■世界上第一种8位的微处理器22SCST23HIT4位、8位与16位微处理器■第二代处理器:■Intel公司的8080、8085■Zilog公司的Z80、摩托罗拉公司的6800■第三代处理器■1978年,Intel公司的8086是■第一个16位的处理器■Intel的8088■1981年,美国IBM公司将8088芯片用于其研制的PC机中、开创了全新的微机时代■Intel的80286■实模式与保护模式、多任务■Zilog公司的Z8000、摩托罗拉公司的6800023SCST24HITIntel8086/8088架构24SCST25HIT第一台PC的诞生(IBM,1981)25Intel8088MicroprocessorFirstPCequippedby8088SCST26HITTheAppleMacintoshIn1984,AppledebuteditsMacintosh,whichpopularizedthegraphiticuserinterface,knownastheGUI.MacintoshSystem1.0SCST27HITAPPLEISCST28HITAPPLEIIPLUSSCST29HITTheMacintoshMacintoshSystem2.0SCST30HIT32位处理器■1985年英特尔80386DX正式发布■32位核心、cache■1989年,英特尔推出80486芯片■首次采用了RISC(精简指令集)技术30SCST31HIT32位处理器■1993年,586CPU:Pentium(奔腾)■1999年,XEON(志强)、Celeron(赛扬)■2002年,新款IntelPentium4处理器内含超线程技术■AMD和Cyrix31SCST32HIT64位处理器■2003年9月24日,AMDAthlon64处理器正式推出■2004年,Intel推出了Nocona代号Pentium4EM64T■2005年4月18日,英特尔全球同步首发基于双核技术桌面产品英特尔奔腾D处理器,正式揭开x86处理器多核心时代。■在x86微处理器发展的同时,人们也在进行计算机并行化的探索,又出现了并行计算机体系结构,与多核微机走了不同的道路。32SCST33HIT第一章多核技术导论■微处理器■并行计算机SCST34HIT并行计算机■Aparallelcomputerisasetofprocessorsthatareabletoworkcooperativelytosolveacomputationalproblem■由一组处理单元组成■各处理单元之间相互通信与协作■以更快的速度共同完成一项大规模计算任务34SCST35HIT并行计算机的分类:■Flynn分类法(行为特征)35SISDSingleInstruction,SingleData串行计算机(vonNeumann计算机)SIMDSingleInstruction,MultipleData适用性很有限(如MPEG类计算、字符串匹配计算)MISDMultipleInstruction,SingleData为分类的的完美而设置,意义不大MIMDMultipleInstruction,MultipleData常见的并行计算机都可归入此类MPP/Cluster/SMP/当前基于Cache的Multi-core(Intel、AMD)SCST36HITSIMD■处理器阵列机、向量机:CELL、GPU■适用于非常规则的计算,例如:视频、音频处理的MPEG算法;密集矩阵的运算36SCST37HITMIMD37最常见的并行计算机SCST38HIT38MIMD进一步分类1.6DifferentbasicorganizationsandmemoriesindistributedcomputersystemsMulticomputers多计算机系统Multiprocessors多处理器系统SCST39HITMIMD进一步分类39SCST40HITMultiprocessors■systemswithsharedmemory■ensureuniformmemoryaccess(UMA),–serveasthebasisfordesigning:■parallelvectorprocessors(PVP),e.g.:CrayT90,■symmetricmultiprocessor(SMP),e.g.:IBMeServer,SunStarFire,HPSuperdome,SGIOrigin.40SCST41HIT2020/1/2541PVP(ParallelVectorProcessor)■含有为数不多、功能强大的定制向量处理器(VP),定制的高带宽纵横交叉开关及高速的数据访问。■通常不使用高速缓存,而是使用大量向量寄存器及指令缓存,使得该系统对程序编制的要求较高。■只有那些充分考虑了向量处理特点的程序才能在该系统上获得较好的性能。另外,由于价格昂贵、难于管理等原因,这种类型计算机的应用主要集中在一些大型国家关键部门。■银河I,NEC地球模拟器。。。SCST42HIT2020/1/2542地球模拟器SCST43HIT2020/1/2543SMP(SymmetricMultiprocessor■采用商品化的处理器,这些处理器通过总线或交叉开关连接到共享存储器。■每个处理器可等同地访问共享存储器、I/O设备和操作系统服务■扩展性有限■曙光1号,IBMRS/6000。。。SCST44HIT2020/1/2544RS6000SCST45HITMultiprocessors■distributedsharedmemoryorDSM■non-uniformmemoryaccessorNUMA,■Thesystemswithsuchmemorytypefallintothefollowinggroups:■Сache-onlymemoryarchite