intel公司内部教材多核多线程技术.ppt
《intel公司内部教材多核多线程技术.ppt》由会员分享,可在线阅读,更多相关《intel公司内部教材多核多线程技术.ppt(363页珍藏版)》请在三一办公上搜索。
1、多核程序设计,参考资料:1.多核系列教材编写组.多核程序设计.清华大学出版社,2007.92.David B.Kirk,Wen-mei W.Hwu著.陈曙晖,熊淑华译.大规模并行处理器编程实践.清华大学出版社,2010.93.Maurice Herlihy,Nir Shavit著.金海,胡侃译.多处理器编程的艺术.机械工业出版社,2009.84.Richard Gerber,Aart,Kevin B.Smith等著,王涛,单久龙,孙广中译.软件优化技术IA-32平台的高性能手册(第2版).电子工业出版社,2007.4,多核程序设计,电子书及资料下载:,多核程序设计,第一章 多核技术导论,微处理
2、器发展史,1945年,世界上第一台全自动电子数字计算机ENIAC计算机的发展按照硬件工艺可以分为第一代(19461958):电子管数字计算机。第二代(19581964):晶体管数字计算机。第三代(19641971):集成电路数字计算机。第四代(1971年以后):大规模集成电路数字计算机。微处理器第一代微处理器(4位):英特尔4004,8008 第二代微处理器(8位):采用NMOS工艺,采用汇编语言、BASIC、Fortran编程,使用单用户操作系统。如英特尔8080,8085。第三代微处理器(16位):以1978年英特尔的8086出现为起点。第四代微处理器(32位):运算模式包括实模式、保护模
3、式和“虚拟86”。英特尔80386 DX,80486,Pentium 4,并行计算机,由一组处理单元组成,这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。出现背景:60年代初期,晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。出现规模不大的共享存储多处理器系统,即大型主机(典型代表:IBM360)。60 年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了,在处理器内部的应用大大提高了并行计算机系统的性能。两个最主要的组成部分计算节点节点间的通信与协作机制,并行计算机的弗林分类,Flynn根据指令流和数据流的不同组织
4、方式,把计算机系统的结构分为以下四类:单指令流单数据流(Single Instruction stream Single Data stream,SISD)单指令流多数据流(Single Instruction stream Multiple Data stream,SIMD)多指令流单数据流(Multiple Instruction stream Single Data stream,MISD)多指令流多数据流(Multiple Instruction stream Multiple Data stream,MISD),并行计算机的弗林分类,并行计算机系统绝大部分为MIMD系统,包括:并行向
5、量机(PVP,Parallel Vector Processor);对称多处理机(SMP,Symmetric Multiprocessor);大规模并行处理机(MPP,Massively Parallel Processor);机群(Cluster);分布式共享存储多处理机(DSM,Distributied Shared Memory),并行计算机从系统结构角度分类,分布式存储器的SIMD处理机含有多个同样结构的处理单元(PE),通过寻径网络以一定方式互相连接。每个PE有各自的本地存储器(LM)。向量超级计算机(共享式存储器SIMD)集中设置存储器,共享的多个并行存储器通过对准网络与各处理单元
6、PE相连。在处理单元数目不太大的情况下很理想。对称多处理器(SMP)一个计算机上汇集了一组处理器,各处理器之间共享内存子系统以及总线结构。并行向量处理机(PVP)使用定制的高带宽网络将向量处理器连向共享存储器模块使用大量的向量寄存器和指令缓冲器集群计算机由许多连在一起的独立计算机组成,像一个单独集成的计算机资源一样协同工作,用来解决大型计算问题。,并行计算机从系统结构角度分类,对称多处理共享存储并行机(SMP)内存模块和处理器对称地分布在互联网络的两侧,内存访问属典型的均匀访问模型。,并行计算机从系统结构角度分类,SMP主要特征对称共享存储 系统中任何处理器均可直接访问任何存储模块中的存储单元
7、和I/O 模块,且访问的延迟、带宽和访问成功的概率是一致的。各个处理器之间的地位等价,操作系统可在任意处理器上运行。单一的操作系统映像 全系统只有一个操作系统驻留在共享存储器中,它根据各个处理器的负载情况,动态地分配各个进程到各个处理器,并保持各处理器间的负载平衡。局部高速缓存cache 及其数据一致性 每个处理器均配备局部cache,它们可以拥有独立的局部数据,但是这些数据必须与存储器中的数据保持一致。低通信延迟 各个进程通过读/写操作系统提供的共享数据缓存区来完成处理器间的通信,其延迟通常小于网络通信的延迟。共享总线带宽 所有处理器共享总线的带宽,完成对内存模块和I/O 模块的访问。支持消
8、息传递、共享存储并行程序设计,并行计算机从系统结构角度分类,SMP典型代表SGI POWER Challenge XL 系列并行机(可扩展至36 个MIPS R10000 微处理器)。COMPAQ Alphaserver 84005/440(含12 个Alpha 21264微处理器)。HP9000/T600(含12 个HP PA9000 微处理器)。IBM RS6000/R40(含8 个RS6000 微处理器)。,并行计算机从系统结构角度分类,分布共享存储并行机(DSM)内存模块局部在各个结点内部,并被所有结点共享。这样,可以较好地改善对称多处理共享存储并行机的可扩展能力,并行计算机从系统结构
9、角度分类,DSM主要特征 以结点为单位,每个结点包含一个或多个CPU,每个CPU 拥有自己的局部cache,并共享局部存储器和I/O设备,所有结点通过高性能互联网络相互连接;物理上分布存储:内存模块分布在各结点中,并通过高性能互联网络相互连接。单一的内存地址空间:所有这些内存模块都由硬件进行统一编址,并通过互联网络连接形成了并行机的共享存储器。非一致内存访问(NUMA)模式:由于远端访问必须通过高性能互联网络,而本地访问只需直接访问局部内存模块,因此,远端访问的延迟一般是本地访问延迟的3 倍以上。单一的操作系统映像:用户只看到一个操作系统,它可以根据各结点的负载情况,动态地分配进程。,并行计算
10、机从系统结构角度分类,DSM主要特征 基于cache 的数据一致性:通常采用基于目录的cache 一致性协议来保证各结点的局部cache 数据与存储器中数据的一致性。低通信延迟与高通信带宽:专用的高性能互联网络使得结点间的延迟很小,通信带宽可以扩展。DSM 并行机可扩展到数百个结点,能提供每秒数千亿次的浮点运算性能。支持消息传递、共享存储并行程序设计。,并行计算机从系统结构角度分类,DSM典型代表 SGI Origin2000、SGI Origin 3800、SGI Altix,并行计算机从系统结构角度分类,大规模并行机系统(MPP)大规模并行机系统是典型的分布存储系统。,并行计算机从系统结构
11、角度分类,MPP典型特征 由数百个乃至数千个计算结点和I/O 结点组成,每个结点相对独立,并拥有一个或多个微处理器。这些结点配备有局部cache,并通过局部总线或互联网络与局部内存模块和I/O 设备相连接。这些结点由局部高性能网卡(NIC)通过高性能互联网络相互连接。它一般采用由多种静态拓扑结构耦合而成的混合拓扑结构,其通信延迟和通信带宽均明显优于机群互联网络。MPP 的各个结点均拥有不同的操作系统映像。一般情况下,用户可以将作业提交给作业管理系统,由它负责调度当前最空闲、最有效的计算结点来执行该作业。各个结点间的内存模块相互独立,且不存在全局内存单元的统一硬件编址。仅支持消息传递或者高性能F
12、ortran 并行程序设计,不支持全局共享的OpenMP 并行程序设计模式。,并行计算机从系统结构角度分类,机群(cluster)有三个明显的特征 系统由商用结点构成,每个结点包含2-4 个商用微处理器,结点内部共享存储。采用商用机群交换机连接结点,结点间分布存储。在各个结点上,采用机群Linux 操作系统、GNU 编译系统和作业管理系统。,片上多核处理器架构,片上多核处理器(Chip Multi-Processor,CMP)就是将多个计算内核集成在一个处理器芯片中,从而提高计算能力。按计算内核的对等与否,CMP可分为同构多核和异构多核CPU核心数据共享与同步的通信机制:总线共享Cache结构
13、:每个CPU内核拥有共享的二级或三级Cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。基于片上互连的结构:每个CPU核心具有独立的处理单元和Cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起。给程序开发者带来的挑战,典型多核芯片架构,芯片组对多核的支持固件,固件是一种嵌入到硬件设备中的软件。它通常烧写在flash等介质中,可以被当作一个二进制映像文件由用户从硬件设备中调用。固件是在集成电路只读存储器中的计算机程序,是可擦写可编程芯片,其上的程序可以通过专门的外部硬件进行修改,但是不能被一般的应用程序改动。,芯片组对多核的支持固件(续),BIOS(Basic Inp
14、ut/Output System)作为系统硬件和操作系统之间的抽象层,主要用来初始化和配置系统的硬件,启动操作系统以及提供对系统设备底层的通讯。BIOS是连接CPU、芯片组和操作系统的固件,是IBM兼容计算机中启动时调用的固件代码。由两部分组成:上电自举即POST(Power On Self Test)和在线的中断服务(主要由legacy 操作系统使用)。计算机加电时BIOS从flash、PROM或是EPROM中启动并完成初始化,进行加电自检,对硬盘,内存,显卡,主板等硬件进行扫描检查,然后它将自己从BIOS内存空间中解压到系统的内存空间中,并开始从那里运行。正在被以EFI(Extensibl
15、e Firmware Interface,可扩展固件接口)为代表的新一代技术所取代。,芯片组对多核的支持固件(续2),EFI(可扩展固件接口)在操作系统与平台固件之间的软件接口。EFI规范定义的接口包括包含平台信息的数据表和启动时及启动后的服务。EFI启动管理器被用来选择装载操作系统,不再需要专门的启动装载器机制辅助。Framework是一种固件的架构,它是EFI固件接口的一种实现,用来完全替代传统的BIOS。,EFI对多核支持,在Framework中定义了两类处理器BSP(boot strap processor),执行EFI的初始化代码,设置APIC环境,建立系统范围的数据结构,开始并初始
16、化AP。AP(application processor),在系统上电或重启之后,AP会自己进行一个简单的设置,然后就等待BSP发出Startup信号。Framework在多核计算机中初始化过程如下:SEC:从实模式切换到保护模式,处理不同的重启事件、对每个处理器进行缓存设置。PEI:做尽量少的硬件初始化,而把更多的留给DXE。DXE:对所有可用的硬件设备进行初始化,为建立控制台和启动操作系统提供必要的服务。BDS:建立所需的控制台设备,在输出控制台上显示用户界面。当系统最后选择启动到操作系统时,EFI需要提交包括处理器在内的有关信息。,操作系统对多核处理器的支持方法,调度与中断对任务的分配进
17、行优化。使同一应用程序的任务尽量在一个核上执行。对任务的共享数据优化。由于CMP体系结构共享二级缓存,可以考虑改变任务在内存中的数据分布,使任务在执行时尽量增加二级缓存的命中率。对任务的负载均衡优化。当任务在调度时,出现了负载不均衡,考虑将较忙处理器中与其他任务最不相关的任务迁移,以达到数据的冲突量小。输入输出系统多核体系处理器中,必须将中断处理分发给一组核处理。存储管理与文件系统库函数做成非阻塞调用方式(需要保证数据同步的机制)使用多线程内存分配,操作系统对多核处理器的支持方法,多核程序设计,第二章 并行计算基础,并行和并发,如果某个系统支持两个或多个动作(Action)同时存在,那么这个系
18、统就是一个并发系统如果某个系统支持两个或多个动作同时执行,那么这个系统就是一个并行系统并发程序可同时拥有两个或多个线程。如果程序能够并行执行,则一定是运行在多核处理器上,每个线程都将分配到一个独立的处理器核上。“并行”概念是“并发”概念的一个子集,什么是并行计算,并行计算(parallel computing)是指,在并行机上将一个应用分解成多个子任务,分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加速求解速度,或者求解应用问题规模的目的。成功开展并行计算,必须具备三个基本条件:并行机 并行机至少包含两台或两台以上处理机,这些处理机通过互连网络相互连接,相互通信。应用问
19、题必须具有并行度 也就是说,应用可以分解为多个子任务,这些子任务可以并行地执行。将一个应用分解为多个子任务的过程,称为并行算法的设计。并行编程 在并行机提供的并行编程环境上,具体实现并行算法,编制并行程序,并运行该程序,从而达到并行求解应用问题的目的。,并行计算的目的、目标,并行计算技术的主要目的:加速求解问题的速度 例如,给定某应用,在单处理器上,串行执行需要2 周,这个速度对一般的应用而言,是无法忍受的。于是,可以借助并行计算,使用100 台处理器,加速50 倍,将执行时间缩短为6.72 个小时。提高求解问题的规模 例如,在单处理器上,受内存资源2GB的限制,只能计算10 万个网格,但是,
20、当前数值模拟要求计算千万个网格。于是,也可以借助并行计算,使用100 个处理器,将问题求解规模线性地扩大100 倍。并行计算的主要目标:在并行机上,解决具有重大挑战性计算任务的科学、工程及商业计算问题,满足不断增长的应用问题对速度和内存资源的需求。,并行计算的研究内容,并行计算的主要研究内容大致可分为四个方面:并行机的高性能特征抽取 充分理解和抽取当前并行机体系结构的高性能特征,提出实用的并行计算模型和并行性能评价方法,指导并行算法的设计和并行程序的实现。并行算法设计与分析 设计高效率的并行算法,将应用问题分解为可并行计算的多个子任务,并具体分析这些算法的可行性和效果。并行实现技术 主要包含并
21、行程序设计和并行性能优化。并行应用 这是并行计算研究的最终目的。通过验证和确认并行程序的正确性和效率,进一步将程序发展为并行应用软件,应用于求解实际问题。同时,结合实际应用出现的各种问题,不断地改进并行算法和并行程序。,并行计算示例,N 个数被分布存储在P 台处理器,P 台处理器并行执行N 个数的累加和。首先,各个处理器累加它们各自拥有的局部数据,得到部分和;然后,P 台处理器执行全局通信操作,累加所有部分和,得到全局累加和。,并行计算机体系结构,组成并行计算机的各个部分:节点(node)构成并行机的基本单位互联网络(interconnect network)内存(memory),内存模块与节
22、点分离,内存模块位于节点内部,多级存储体系结构,为了解决内存墙(memory wall)性能瓶颈问题。在节点内部的cache称为二级cache(L2 cache)。在处理器内部更小的cache称为一级cache(L1 cache)。L1 cache连接CPU寄存器和L2 cache,负责缓存L2 cache中的数据到寄存器中。,多级存储体系结构,并行计算机的多级存储结构主要包括两个问题:Cache的映射策略,即cache如何从内存中取得数据进行存储;节点内部或者节点之间内存的访问模式。cache原理cache以cache线为基本单位,每条cache包含L个字,每个字8个字节。例如,L=4,则表
23、示cache线包含4*8=32个字节。内存空间分割成块(block),每个块大小与cache线长度一致,数据在内存和cache之间的移动以cache线为基本单位。For i=1 to M Ai=Ai+2*Bi 如果操作数存在cache中,称该次访问是命中的,否则,该次操作是“扑空”的。,无Cache,访问内存2M次;有cache,访问内存2M/L次,多级存储体系结构,cache的映射策略指的是内存块和cache线之间如何建立相互映射关系。直接映射策略(direct mapping strategy)每个内存块只能被唯一的映射到一条cache线中K路组关联映射策略(K-way set assoc
24、iation mapping strategy)Cache被分解为V个组,每个组由K条cache线组成,内存块按直接映射策略映射到某个组,但在该组中,内存块可以被映射到任意一条cache线。全关联映射策略(full association mapping strategy)内存块可以被映射到cache中的任意一条cache线。,并行计算机访存模型,UMA(Uniform Memory Access)均匀存储访问模型物理存储器被所有节点共享;所有节点访问任意存储单元的时间相同;发生访存竞争时,仲裁策略平等对待每个节点,即每个节点机会均等;各节点的CPU可带有局部私有高速缓存;外围I/O设备也可以
25、共享,且每个节点有平等的访问权利。NUMA(Non-Uniform Memory Access)模型物理存储器被所有节点共享,任意节点可以直接访问任意内存模块;节点访问内存模块的速度不同,访问本地存储模块的速度一般是访问其他节点内存模块的3倍以上;发生访存竞争时,仲裁策略对节点可能是不等价的;各节点的CPU可带有局部私有高速缓存(cache);外围I/O设备也可以共享,但对各节点是不等价的。,并行计算机访存模型,COMA(Cache-Only Memory Access)模型各处理器节点中没有存储层次结构,全部高速缓存组成了全局地址空间利用分布的高速缓存目录D进行远程高速缓存的访问COMA中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- intel 公司内部 教材 多核 多线程 技术
链接地址:https://www.31ppt.com/p-5435056.html