多核云计算平台并行应用优化方法

文档序号:6579905阅读:426来源:国知局
专利名称:多核云计算平台并行应用优化方法
技术领域
本发明涉及并行应用优化方法,特别涉及多核云计算平台上的并行应用优化方法。
背景技术
过去30年,在摩尔定律的推动下,CPU (Central Processing Unit,中央处理器) 速度差不多每两年就提升一倍,CPU的主频、即CPU的工作频率一直是提高微处理器性能 的主要因素。然而由于功耗的原因,主频提升已显得力不从心。当处理器频率达到其极限 时,一种流行的提高性能的方法是添加更多的处理器,典型的为早期的SMP(Symmetrical Multi-Processing,对称多处理)技术,将更多的处理器添加到主板上形成多核计算平台, 或将多个独立计算机集群到一起形成云计算平台。一般地,构成云计算平台的多个独立计 算机的每一个被称为一个节点。而最近,CMP (Chip Multi-Processor,多核处理器)技术在 单个芯片上实现SMP,成为当前和未来处理器发展的主要方向。多核处理器的引入,使得云计算平台节点内通信(包括芯片内通信和芯片间通 信)性能得到大幅提升,节点内外通信性能差距明显增大,为并行应用的优化带来了新的 挑战。目前改善并行应用性能的主要方法例如有下述的方法。第一种方法为具体并行应用局部优化方法,比如专利200810104205. 9中具有多 个处理器的多核编码器及图像切片单元的处理即属这种方法。其中图像切片单元用于将视 频图像划分为多个切片,并将每个切片分配到多核编码器的不同处理器中进行处理;多核 编码器在利用多个处理器对图像的切片进行处理的过程中,采用并行流水的方式执行图像 编码;并在多核编码器的处理器处理完一个切片后,给图像切片单元发送消息以使图像切 片单元发送下一个切片给该处理器。另外,目前还有在特定结构下通过链路最小化、节点竞争以及通信节点距离最小 化来改善并行应用性能的方法。另外,目前还有针对网络架构的层次性来优化并行应用的性能的方法,如使网速 较快的局域网环境承载更多的通信量而使网速较慢的广域网上的通信量最小化来实现并 行应用的优化。上述的这些方法虽然可以在一定程度上提升并行应用性能,但都与具体应用有较 大的相关性,普遍适用性较差,且对多核云计算平台的性能改善程度是有限的。另外,目前还有从操作系统层对多核云计算平台进行并行应用优化的方法,但研 究表明,这种方法存在实现复杂、实用性差的问题。

发明内容
鉴于上述并行应用优化方法存在的问题,本发明的目的在于提供一种普遍适用性 好、实现简单的多核云计算平台并行应用优化方法。
为了实现上述目的,根据本发明的多核云计算平台并行应用优化方法,包括第一 步骤,从组成多核云计算平台的多个节点中,为并行应用分配多个应用节点,并在每一个所 述应用节点上分别为所述并行应用分配多个CPU核心,在所分配的多个CPU核心上分别启 动线程;第二步骤,为所述并行应用创建主通信组,所述主通信组由分配给所述并行应用的 每一个所述应用节点上的所述多个线程中的首线程组成;第三步骤,为每一个所述应用节 点创建子通信组,每一个所述子通信组由其所对应的所述应用节点上为所述并行应用所启 动的多个线程组成;第四步骤,由所述主通信组中的所述多个线程中的首线程向所述主通 信组中的其余线程广播所述并行应用的应用通信数据;第五步骤,由每一个所述子通信组 中的所述多个线程中的首线程向所述子通信组中的其余线程广播所述应用通信数据。而且,在上述的多核云计算平台并行应用优化方法中,在所述第四步骤之前还包 括第六步骤,将所述应用通信数据切分成多个数据块。而且,在上述的多核云计算平台并行应用优化方法中,所述第六步骤包括第七步 骤,当所述应用通信数据大于一级高速缓存(Li cache)大小时,将所述应用通信数据按所 述一级高速缓存大小切分成所述多个数据块,当所述应用通信数据小于等于所述一级高速 缓存大小时,将所述应用通信数据直接做为一个数据块。而且,在上述的多核云计算平台并行应用优化方法中,在所述第七步骤之前还包 括将所述应用通信数据与大于所述一级高速缓存的二级高速缓存(L2 cache)进行大小 比较,当所述应用通信数据大于所述二级高速缓存大小时,将所述应用通信数据按所述二 级高速缓存大小切分成所述多个数据块。根据本发明的多核云计算平台并行应用优化方法,在多核云计算平台中,由分配 给同一并行应用的每一个节点的首线程组成主通信组,由主通信组中的首线程向主通信组 中的其他线程广播数据来进行节点间通信,再由同一节点内的同一并行应用的首线程向该 节点内同一并行应用的其余线程广播数据,即由子通信组中的首线程向子通信组中的其余 线程广播数据来进行节点内通信。这样,无需增加设备,而且不限于平台结构,即为并行应 用的数据广播形成了层次化的规整的拓扑结构,解决了现有多核云计算平台并行应用优化 方法普遍适用性差、实用性差的问题。并且通过上述拓扑结构,减少了节点间的数据广播, 而更多采用节点内的数据通信,从而提高了并行应用的执行速度。


通过下面结合附图进行的描述,本发明的上述和其他目的和特点将会变得更加清 楚,其中图1是表示根据本发明实施例的多核云计算平台并行应用优化方法的流程图;图2是表示根据本发明实施例的多核云计算平台并行应用优化方法的示意图;图3是表示根据本发明实施例的多核云计算平台并行应用优化方法中的数据切 分方法的流程图。主要符号说明S1010-S1060及S2010-S2050为步骤。
具体实施例方式以下,参照附图来详细说明本发明的实施例。
(实施例)图1是表示根据本发明实施例的多核云计算平台并行应用优化方法的流程图。根 据本发明实施例的多核云计算平台并行应用优化方法由并行应用优化系统执行。首先,在步骤S1010,由并行应用优化系统从组成多核云计算平台的多个节点中, 为一并行应用分配多个应用节点,并在每一个应用节点上分别为该并行应用分配多个CPU 核心,在所分配的多个CPU核心上分别启动线程。这里,通过重复上述处理,为多个并行应 用分别分配多个应用节点及多个CPU核心,并在分配的CPU核心上分别为相应的并行应用 启动线程。接着,在步骤S1020,由并行应用优化系统创建主通信组,该主通信组由分配给同 一并行应用的每一个所述应用节点上的多个CPU核心的线程中的首线程,即rank为0的线 程组成。同样地,这里通过重复上述处理,为多个并行应用的每一个分别创建一个主通信组。接着,在步骤S1030,由并行应用优化系统为每一个应用节点创建子通信组,每一 个子通信组由其所对应的应用节点上为同一并行应用所启动的多个线程组成。即,这里在 每一节点中为每一个不同的并行应用分别创建子通信组。接着,在步骤S1040,由并行应用优化系统对并行应用的应用通信数据进行切分, 得到多个数据块。这里应用通信数据的切分是以并行应用为单位进行的,即对每一个并行 应用分别进行应用通信数据的切分,分别得到多个数据块。具体的切分方法将在后详细说 明。接着,在步骤S1050,由并行应用的主线程,即并行应用的主通信组中的首线程向 该主通信组中的其他线程广播在步骤S1040中切分而得的多个数据块,即将多个数据块广 播到主通信组中的其他节点。这里,每一个并行应用可分别通过自己的主通信组,由主通信 组中的首线程所在的节点向主通信组中的其他节点将自己的应用通信数据广播出去。接着,在步骤S1060,在每一个应用节点内,由每一个并行应用的子通信组中的首 线程将该并行应用的多个数据块广播到该子通信组中的其他线程。图2是表示根据本发明实施例的多核云计算平台并行应用优化方法的示意图。在此图中,举例表示了为一个并行应用分配资源及广播应用通信数据的情形。具 体地,由并行应用优化系统为该并行应用分配节点A、B、C、D、及N,并由这些节点为组成该 并行应用的主通信组。进一步地,由并行应用优化系统在这些节点上为该并行应用分别分配多个CPU核 心,比如在节点为A上为该并行应用分配三个CPU核心,并在所分配的CPU核心上分别启动 线程。而且,在每一个节点上,由为该并行单元启动的多个线程组成该并行应用的子通信 组,图中具体示出了节点A中为该并行单元启动的4个线程组成的子通信组。进一步地,在此图中,将主通信组中的首线程,也即主通信组中的该并行应用的执 行入口标示为主线程,图中主线程位于节点N上。在执行该并行应用时,首先由节点N上的 主线程向节点A、B、C、及D的首线程广播并行应用的应用通信数据,接着由节点A、B、C、及 D各自的首线程分别向本节点内的该并行应用的其他线程广播上述应用通信数据。这里被 广播的应用通信数据在广播前被切分成了多个数据块。下面,对本发明实施例的多核云计算平台并行应用优化方法中应用通信数据的切分进行说明。在多核云计算平台中处理应用通信数据时,是将应用通信数据放置在缓存 (cache)中。因此通过减少不必要的cache替换,可以得到更好的cache命中率。如对一个 大的应用通信数据进行操作时,如果应用通信数据不能够完全放入cache中,则需要将在 这之前进入cache的数据移出来,将应用通信数据替换进cache中,在进行下一步操作时, 再将此次被替换出cache的数据重新放入cache中。这种反复的cache替换会导致数据频 繁地在内存与cache之间交换,不但降低了数据的访问速度,而且占用了大量的内存带宽 并降低执行效率。所以将大的应用通信数据切分成多个小的数据块,并依次对每个小的数据块执行 操作,这样就可能保证在对每个小数据块执行操作时,数据始终驻留在cache中,可以利用 芯片内高速通道进行节点内数据通信。对消息进行切分时,数据块越小,广播的数据块全部驻留在最内层Cache的可能 性就越高,但是数据块越小,循环的次数就越多,进行多次广播增加的额外开销就越大。因此,在本发明实施例中,数据块大小是根据一级高速缓存(Li cache)和二级高 速缓存(L2 cache)的大小来确定的。图3是表示根据本发明实施例的多核云计算平台并行应用优化方法中的数据切 分方法的流程图。这里,数据切分是由并行应用优化系统来执行的。首先,在步骤S2010,判断应用通信数据大小是否大于L2 Cache的大小。当应用通信数据大小大于L2 Cache的大小(S2010:“是”)时,则接着在步骤 S2020,按L2 Cache的大小将应用通信数据切分成多个数据块。接着,在步骤S2050,进行多个数据块的广播,即执行图2中的步骤S1050及步骤 S1060。当应用通信数据大小不大于L2 Cache的大小(S2010 “否”)时,则接着在步骤 S2030,判断应用通信数据大小是否大于一级缓存(Li Cache)的大小。当应用通信数据大小大于Ll Cache的大小(S2030:“是”)时,则接着在步骤 S2040,按Ll Cache的大小将应用通信数据切分成多个数据块。接着,执行步骤S2050。当应用通信数据大小不大于Ll Cache的大小(S2030 “否”)时,则直接执行步骤 S2050。以上,对本发明实施例进行了说明。如上所述,根据本发明,在多核云计算平台中,由分配给同一并行应用的每一个节 点的首线程组成主通信组,由主通信组中的首线程向主通信组中的其他线程广播数据来进 行节点间通信,再由同一节点内的首线程向该节点内同一并行应用的其余线程广播数据, 即由子通信组中的首线程向子通信组中的其余线程广播数据来进行节点内通信。这样,无 需增加设备,而且不限于平台结构,即为并行应用的数据广播形成了层次化的规整的拓扑 结构,通过该拓扑结构,避免了一次性向所有节点广播数据,减少了广播规模,从而能够减 少网络间的通信量,降低了网络冲突的概率。并且减少了节点间的数据广播,而更多采用性能相对较好的节点内数据通信,因 此能够提高通信效率,降低并行应用的执行时间。而且根据本发明,因为根据多级cache的大小来切分应用通信数据,将大的数据切分成多个小的数据块,并依次对每个小的数据块执行操作,因此能够保证在对每个数据 块执行操作时,数据始终驻留在cache中,提高处理器各级cache的命中率,提高了数据的 访问速度,释放大量的内存带宽,提高节点内通信的性能,进而进一步降低并行应用执行时 间。另外,在本发明并不限于上述实施例,而是可以进行等同的变换来实施。例如,在本发明实施例中,作为并行应用的执行单元虽然以线程为例进行了说明, 但本发明并不限于此,并行应用的执行单元也可以为进程,此时,主通信组、子通信组的创 建以及应用通信数据的广播均以进程为单位进行。又例如,在本发明实施例中,虽然以两级缓存的情形为例对数据切分进行了说明, 但本发明并不限于此,缓存的级数也可以为一级或三级以上。而且,各级缓存的大小是根据 平台不同而不同的。产业上的可利用性本发明的多核云计算平台并行应用优化方法适用于多核云计算平台的并行应用 优化系统。
权利要求
1.多核云计算平台并行应用优化方法,包括第一步骤,从组成多核云计算平台的多个节点中,为并行应用分配多个应用节点,并在 每一个所述应用节点上分别为所述并行应用分配多个CPU核心,在所分配的多个CPU核心 上分别启动线程;第二步骤,为所述并行应用创建主通信组,所述主通信组由分配给所述并行应用的每 一个所述应用节点上的所述多个线程中的首线程组成;第三步骤,为每一个所述应用节点创建子通信组,每一个所述子通信组由其所对应的 所述应用节点上为所述并行应用所启动的多个线程组成;第四步骤,由所述主通信组中的所述多个线程中的首线程向所述主通信组中的其余线 程广播所述并行应用的应用通信数据;第五步骤,由每一个所述子通信组中的所述多个线程中的首线程向所述子通信组中的 其余线程广播所述应用通信数据。
2.如权利要求1所述的多核云计算平台并行应用优化方法,其中在所述第四步骤之前 还包括第六步骤,将所述应用通信数据切分成多个数据块。
3.如权利要求2所述的多核云计算平台并行应用优化方法,其中所述第六步骤包括 第七步骤,当所述应用通信数据大于一级高速缓存(LI cache)大小时,将所述应用通信数据按所述一级高速缓存大小切分成所述多个数据块,当所述应用通信数据小于等于所 述一级高速缓存大小时,将所述应用通信数据直接做为一个数据块。
4.如权利要求2所述的多核云计算平台并行应用优化方法,其中在所述第七步骤之前 还包括将所述应用通信数据与大于所述一级高速缓存的二级高速缓存(L2 cache)进行大小 比较,当所述应用通信数据大于所述二级高速缓存大小时,将所述应用通信数据按所述二 级高速缓存大小切分成所述多个数据块。
全文摘要
公开了一种多核云计算平台并行应用优化方法。该方法包括从组成多核云计算平台的多个节点中,为并行应用分配多个应用节点,并在每一个应用节点上分别为该并行应用分配多个CPU核心,在所分配的多个CPU核心上分别启动线程;为该并行应用创建主通信组,该主通信组由分配给该并行应用的每一个应用节点上的多个线程中的首线程组成;为每一个应用节点创建子通信组,每一个子通信组由其所对应的应用节点上为该并行应用所启动的多个线程组成;对该并行应用的应用通信数据进行切分,得到多个数据块;由主通信组中的多个线程中的首线程向主通信组中的其余线程广播多个数据块;由每一个子通信组中的多个线程中的首线程向子通信组中的其余线程广播多个数据块。
文档编号G06F9/54GK101996103SQ20091016660
公开日2011年3月30日 申请日期2009年8月20日 优先权日2009年8月20日
发明者江滢, 王剑, 胡晨 申请人:三星电子(中国)研发中心;三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1