欢迎来到天天文库
浏览记录
ID:41710476
大小:83.44 KB
页数:21页
时间:2019-08-30
《多核多线程ppt总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.CPU核心数据共享与同步的通信机制:■总线共享Cache结构:每个CPU内核拥有共享的二级或三级Cache,用于保存比较常用的数据,并通过连接核心的总线进行通信。■基于片上互连的结构:每个CPU核心具有独立的处理单元和Cache,各个CPU核心通过交叉开关或片上网络等方式连接在一起。■给程序开发者带来的挑战2.并行和并发□如果某个系统支持两个或多个动作(Action)同吋存在,那么这个系统就是一个并发系统□如果某个系统支持两个或多个动作同时执行,那么这个系统就是一个并行系统□并发程序可同时拥有两个或多个线程。如果程序能够并行执行,则一定是运行在多核处理器上,每个
2、线程都将分配到一个独立的处理器核上。□“并行”概念是“并发”概念的一个子集3.并行计算的目的、目标并行计算技术的主要目的:■加速求解问题的速度例如,给定某应用,在单处理器上,串行执行需要2周,这个速度对一般的应用而言,是无法忍受的。于是,可以借助并行计算,使用100台处理器,加速50倍,将执行时间缩短为6.72个小时。■提高求解问题的规模例如,在单处理器上,受内存资源2GB的限制,只能计算10万个网格,但是,当前数值模拟要求计算千万个网格。于是,也可以借助并行计算,使用100个处理器,将问题求解规模线性地扩大100倍。并行计算的主要目标:在并行机上,解决具有重大挑战
3、性计算任务的科学、工程及商业计算问题,满足不断增长的应用问题对速度和内存资源的需求。4.并行计算的主要研究内容大致可分为四个方面:■并行机的高性能特征抽取充分理解和抽収当前并行机体系结构的高性能特征,提出实用的并行计算模型和并行性能评价方法,指导并行算法的设计和并行程序的实现。■并行算法设计与分析设计高效率的并行算法,将应用问题分解为可并行计算的多个子任务,并具体分析这些算法的可行性和效果。■并行实现技术主要包含并行程序设计和并行性能优化。并行应用这是并行计算研究的最终目的。通过验证和确认并行程序的正确性和效率,进一步将程序发展为并行应用软件,应用于求解实际问题。同
4、时,结合实际应用出现的各种问题,不断地改进并行算法和并行程序。5.并行程序执行时间对各个进程,墙上时间可进一步分解为计算CPU时间、通信CPU时间、同步开销时间、同步导致的进程空闲时间■计算CPU时间:进程指令执行所花费的CPU时间,包括程序木身的指令执行占用的时间(用户时间)和系统指令花费的时间;■通信CPU时间:进程通信花费的CPU吋间;■同步开销时间:进程同步花费的时间;■进程空闲时间:进程空闲时间是指并行程序执行过程屮,进程所有空闲时间总和(如进程阻塞式等待其他进程的消息吋。此吋CPU通常是空闲的,或者处于等待状态)1.并行程序性能优化最主耍的是选择好的并行
5、算法和通信模式■减少通信量、提高通信粒度提高通信粒度的有效方法就是减少通信次数,尽可能将可以一次传递的数据合并起来一起传递■全局通信尽量利用高效集合通信算法对于标准的集合通信,如广播、规约、数据散发与收集等,尽量调用MPI标准库幣数■挖掘算法的并行度,减少CPU空闲等待具有数据相关性的计算过程会导致并行运行的部分进程空闲等待.在这种情况下,可以考虑改变算法來消除数据相关性■负载平衡必要时使用动态负载平衡技术,即根据各进程计算完成的情况动态地分配或调整各进程的计算任务。动态调整负载时要考虑负载调整的开销及由于负载不平衡而引起的空闲等待对性能的影响,寻找最优负载调整方案
6、。■通信、计算的重叠让通信和计算重叠进行,利用计算时间来屏蔽通信时间。实现方法一般基于非阻塞通信,先发出非阻塞的消息接受或发送命令,然后处理与收发数据无关的计算任务,完成计算后再等待消息收发的完成。■通过引入重复计算来减少通信,即以计算换通信由于当前大部分并行计算机的计算速度远远大于通信速度,并且在一些情况下,当一个进程计算时,别的进程往往处于空闲等待状态,因而适当引入重复计算可以提高程序的总体性能。2.顺序程序的特性■顺序性:处理机严格按照指令次序依次执行,即仅当一条指令执行完后才开始执行下一条指令;■封闭性:程序在执行过程中独占系统中的全部资源,该程序的运行环境
7、只与其自身动作有关,不受其它程序及外界因素影响;■可再现性:程序的执行结果与执行速度无关,而只与初始条件有关,给定相同的初始条件,程序的任意多次执行一定得到相同的执行结果.并发程序特性■交叉性:程序并发执行对应某一种交叉,不同的交叉可能导致不同的计算结果,操作系统应当保证只产生导致正确结果的交叉,去除那些可能导致不正确结果的父叉;■非封闭性:一个进程的运行环境可能被其它进程所改变,从而相互影响;■不可再现性:由于交叉的随机性,并发程序的多次执行可能対应不同的交叉,因而不能期望重新运行的程序能够再现上次运行的结果。3.解决死锁的方法?预先分配策略■思想:进程在运行
此文档下载收益归作者所有