基于多核处理器的常见计算任务分析与优化.docx

基于多核处理器的常见计算任务分析与优化.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于多核处理器的常见计算任务分析与优化

基于多核处理器的常见计算任务分析与优化摘要本文介绍了三种常见计算任务中针对多核处理器的性能分析与优化设计的新技术,这三种常见计算任务分别是:广泛用于组合搜索与优化的动态规划算法(DP, Dynamic Programming),广泛用于科学计算的矩阵计算,以及集群(Cluster)这样传统的并行计算技术。针对动态规划算法,从其一般形式入手,介绍非连续多元动态规划算法在多核处理器环境下的一系列优化技术;针对矩阵计算,介绍针对多核处理器环境的乱序调度算法;针对多核集群,分析了多核处理器对传统集群技术带来的性能,特别是通信性能上的影响。关键词:多核、动态规划、集群、矩阵计算1 引言人们追求计算能力的脚步从没有放缓,过去数十年的发展证明了摩尔定律——微处理器的性能将以指数方式增长,即每两年翻一番。但是目前的技术已经难以通过提高频率来维持这种增长速度,一个主要的问题就是过度产热(overheat)问题,以及能耗问题。因此,多核处理器设计应运而生,即在同一块芯片上放置两个甚至更多处理核心,通过将应用程序的工作复杂分担到不同的核心来提高应用程序性能。这种处理器也被称为片内多处理器(CMP, Chip Multiprocessor)。本文2至4章将介绍多核处理器对三种常见计算任务的性能影响与相应计算任务的优化设计。这三种计算任务分别是广泛用于组合搜索与优化的动态规划算法(DP, Dynamic Programming),广泛用于科学计算的矩阵计算,以及集群(Cluster)这样传统的并行计算技术。针对动态规划算法,从其一般形式入手,介绍非连续多元动态规划算法在多核处理器环境下的一系列优化技术;针对矩阵计算,介绍针对多核处理器环境的乱序调度算法;针对多核集群,分析了多核处理器对传统集群技术带来的性能,特别是通信性能上的影响。2 动态规划算法的分析与优化2.1 动态规划算法简介动态规划算法(Dynamic Programming, DP)是一种经典的,且为人熟知的算法,用于解决各种组合搜索与优化问题,广泛应用于任务调度、资源管理、自动控制、VLSI设计与生物医学等应用中。动态规划算法的核心是动态规划方程(组),根据方程组,如果每一个子问题的解D[i]只依赖于与其直接相邻的子问题的解,则称其为连续的(Serial),否则,若D[i]依赖于多个非直接相邻的子问题的解,则称其为非连续的(Non-serial);如果D[i]的函数式中只包含一个递归项,即形如D[i]=Max0jif(D[j]),则称其为一元的(Monadic),否则,若包含多于一个递归项的,则称其为多元的(Polyadic)。由此,我们可以对动态规划算法做出一下分类[2]:一元连续动态规划算法(serial monadic),如单求解源最短路问题的Dijkstra算法、0/1背包问题;多元连续动态规划算法(serial polyadic),如求解全部点对之间最短路的Floyd;一元非连续动态规划算法(nonserial monadic),如最长公共子序列问题、寻找序列最优相似比较的Smith-Waterman;多元非连续动态规划算法(nonserial polyadic),如最优矩阵添括号问题、RNA二级结构预测所使用的Zuker算法。在这种分类方法中,多元非连续动态规划算法最具有可并行性,一元非连续动态规划和多元连续动态规划算法次之,一元连续动态规划算法几乎不具备可并行计算的部分。对于一元连续动态规划算法,我们只能依靠处理器内部实现的动态调度算法来实现简单的指令级并行,而对于多元非连续动态规划算法,则可以充分利用多核处理器的特性来提高其性能,2.2-2.6中将介绍多元非连续动态规划算法在多核处理器上的一种优化方法。2.2 动态规划方程(组)Zuker是非连续多元动态规划算法的一个典型例子,它是预测RNA二级结构的基对最大化算法。对给定的RNA序列,令S(i, j)表示自索引i至j的RNA子序列折叠结果,其数值表示折叠后的最高基对数量或者是最小自由能。其对应的动态规划方程组如下:(2.1)在这个方程组中,最后一个求最大值的等式就是一个非连续多元动态规划计算过程。这个方程组所描述的子问题间依赖关系如图2.1所示。图2.1 Zuker算法中子问题计算依赖关系为了方便进行一般性描述,可以将非连续动态规划的动态规划方程组做写作等式2.2的样子:(2.2)为了便于之后的描述,将这里的设定为1,则等式变为:(2.3)2.3 核外并行算法多核处理器继承了传统通用计算机的存储器结构,处理器核心直接访问独立的一级缓存,同一芯片上的处理器核心之间共享二级缓存,二级缓存之外是内存以及外部存储。相邻两级存储之间的速度相差了几乎一个数量级,因此,低速存储设备的访问速度可能造成并行处理的瓶颈,即数据传输无法满足并行

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档