基于新神威处理器的主从核协同计算编程框架的制作方法

文档序号:10724716阅读:468来源:国知局
基于新神威处理器的主从核协同计算编程框架的制作方法
【专利摘要】一种基于新神威处理器的主从核协同计算编程框架,该基于新神威处理器包含4个核组(CG),核组之间通过片上网络链接,每个核组包含一个管理单元(MPE)和64个计算单元(CPE),每个核组拥有独立的内存空间,管理单元和计算单元通过一个内存控制器(MC)访问内存空间;各处理器之间通过系统接口(SI)建立联系,其特征在于,把新神威处理器的多个核组作为多个独立的线程使用,与管理单元(MPE)或主CPU共同完成相应的计算,基于利用局部内存(LDM)、主存、寄存器通信协同实现高效的MPE与CPE之间及CPE之间同步代替OpenACC的fork/join,能够更有效地利用新神威处理器设计的MPE和CPE计算资源。
【专利说明】
基于新神威处理器的主从核协同计算编程框架
技术领域
[0001]本发明针对我国独立自主研发的新神威处理器构成的超级计算机系统提出了主从核协同计算框架。该编程框架采用MPI实现上层的并行计算,通过Athread启动众核处理器,主核与从核作为多个独立的线程使用,共同完成相关的计算,从而使得编程人员可以直接控制各个线程的行为,最大限度地提高加速效率。采用编程框架可有效提高海洋或大气数值模式对新神威机器计算能力的利用率。
【背景技术】
[0002]新神威处理器是我国独立自主研发的一种世界领先的众核处理器,已应用在无锡超级计算中心的高性能计算系统。如图1所示,每个新神威处理器包括4个核组(CG),并通过片上网络互相链接。每个CG包括I个管理单元(MPE,亦称为主核)和8x8=64个计算单元(CPE,亦称为从核)。每个CG拥有独立的内存空间,称为主存,MPE和CPE等单元通过一个内存控制器(MC)访问内存空间。处理器之间通过系统接口(SI)进行联系,新神威计算机之间的链接为胖树网络。单个新神威处理器的峰值计算性能可达到3TFlops,而充分发挥这种处理器的计算能力是其推广应用的一个至关重要的问题。
[0003]对于这种新型机器架构,相应的编译器提供了基于OpenACC的编程方式,能够从一定程度上发挥这种机器的计算能力。但由于采用了fork/join方式的开发模型,把CPE作为加速硬件使用,可以让用户快速的入门开发,但加速效率受到较大的限制,不能充分利用CPE的计算能力。
[0004]

【发明内容】

[0005]本发明基于底层的Athread,提出了一种主从核协同计算的编程框架:使用Athread启动众核后,众核作为多个独立的线程使用,与主核或主CPU共同完成相应的计算,编程人员可以直接控制各个线程的行为,最大限度的提高加速效率。
[0006]本发明的技术方案是:一种基于新神威处理器的主从核协同计算编程框架,该基于新神威处理器包含4个核组(CG),核组之间通过片上网络链接,每个核组包含一个管理单元(MPE)和64个计算单元(CPE),每个核组拥有独立的内存空间,管理单元和计算单元通过一个内存控制器(MC)访问内存空间;各处理器之间通过系统接口(SI)建立联系,其特征在于,把新神威处理器的多个核组作为多个独立的线程使用,与管理单元(MPE)共同完成相应的计算,基于利用从核的局部内存(LDM)、核组共用的主存、从核的寄存器通信协同实现高效的MPE与CPE之间及CPE之间同步代替基于OpenACC接口的拆分/合并(Fork/Join)的编程框架,能够更有效地利用新神威处理器设计的MPE和CPE计算资源。
[0007]所述的MPE与CPE之间的协同计算包括:
步骤(I):上层基于信息传递应用程序接口(MPI)的并行计算与计算通信重叠;
步骤(2): MPE、CPE多线程任务分配。
[0008]所述的步骤(I)上层的MPI并行计算与计算通信重叠的具体方法:将每个众核处理器的一个核组作为I个MPI进程,基于MPI技术实现模式的大规模并行计算;通过地理空间的网格划分,将计算任务均衡地分配到每个进程;对MPI并行分区对每个分块,模式网格点包括内区(inner)和外区(outer)两部分,inner区的计算不依赖于MPI交换,outer区的计算需要等待MPI交换的结果,该分区的outer区的上一步的计算结果需要通过MPI发送给邻区,而outer区的计算也需要从邻区接收上一步的计算结果,所需接收的计算点记为halo区;在协同计算过程中,在MPE上对外区的变量通过MPI的非阻塞式发送(ISEND)函数发送给邻区,通过与_阻塞式接受(IRECV )函数接收邻区的数据,实现ha I ο区的数据交换。
[0009]在所述的步骤(I)上层的MPI并行计算与计算通信重叠的具体方法的过程中,MPI通讯和内区的计算完全重置进彳丁,提尚MPI并彳丁的效率。
[0010]所述的步骤(2)主从核(MPE、CPE)多线程任务分配的具体方法:在步骤(I)完成后,每个核组将分配到近绝对均衡的计算任务,在每个核组上通过Athread启动众核多线程,进一步将计算任务平均分配到每个从核线程,而主核线程主要负责MPI通讯和数据的输入输出;每个从核线程的计算点确定后,其计算过程与单纯的MPI并行计算过程类似,但核间的数据交换通过访问主存实现,而同步则采用主从核及从核间快速同步。
[0011]所述的主从核及从核间快速同步的具体实现方法:在线程间同步频率较高的应用场合,主从核及从核间同步效率也是模式效率的一个重要限制条件,利用LDM、主存、寄存器通信协同实现高效的主从核及从核间同步;神威处理器中主核能够访问每个从核的LDMJA核也能够直接访问主存,从核间可以进行寄存器通信和硬同步;主核线程状态设置从核线程组O号线程LDM状态标识,从核线程组O号线程检测标识后同步到从核线程组;从核线程组同步后,O号线程设置主存标识,主线程检测主存标识。
[0012]在MPE上,当halo区的数据交换完成后,在CPE-O的LDM上设置一个flag;由于内区的源函数的计算和海浪传播计算与halo区的相应计算是相互独立的,可以在CPE上首先进行;此后,每个CPE需要检查flag以便确定halo区的交换是否完成。当这个flag被设置后,夕卜区的海浪传播便可以开始计算;然后,在开始计算结果输出之前,所有的CPE需要进行同步;这个同步是通过在内存中设置一个flag来实现的;为了避免MPE在设置CPE的flag和检查同步flag期间的资源闲置,给MPE额外分配了一些计算任务并预取下一次循环所需的风场数据;通过计算点点序列化处理,实现了主核与从核之间MASNUM海浪模式的协同计算。
[0013]本发明的优点是:基于底层的Athread,使用Athread启动众核后,众核作为多个独立的线程使用,与主核或主CHJ共同完成相应的计算,编程人员可以直接控制各个线程的行为,可以大幅度提高计算效率,远高于OpenACC;熟悉MPI开发的编程人员可以快速适应这种开发模式,中后期开发代价低于OpenACC。利用LDM、主存、寄存器通信协同实现高效的主从核及从核间同步,同步效率得到大幅度提高。
[0014]
【附图说明】
[0015]图1是现有新神威处理器架构示意图(图中:MPE:管理单元;CPE:计算单元;MC:内存控制器;Core-group(CG):核组;main memory:主存;Network on Chip (NoC):片上网络;S1:系统接口)。
[0016]图2是本发明的MASNUM海浪模式主从核协同计算框架图(图中:MPE:管理单元;CPE:计算单元;Halo update:halo区数据更新;Set flag:设置flag)。
[0017]
【具体实施方式】
[0018]本发明针对的计算机系统是由新型神威处理器构建的新神威超级计算机系统,这种处理器的硬件结构如图1所示。每个新神威处理器包括4个核组(CG),并通过片上网络互相链接。每个CG包括I个管理单元(MPE,亦称为主核)和8x8=64个计算单元(CPE,亦称为从核)。每个CG拥有独立的内存空间,称为主存,MPE和CPE等单元通过一个内存控制器(MC)访问内存空间。处理器之间通过系统接口(SI)进行联系,新神威计算机之间的链接为胖树网络。
[0019]在本发明的编程框架中,64个CPE将用于解决大规模计算问题,而MPE用于执行每个CG上的任务管理或规划。本发明把众核作为多个独立的线程使用,与主核或主CPU共同完成相应的计算,基于利用LDM、主存、寄存器通信协同实现高效的主从核及从核间同步代替OpenACC的fork/ join,可以更有效利用新神威处理器设计的MPE和CPE计算资源。该框架的实现主要包括4部分,I)上层的MPI并行计算与计算通信重叠;2)主从核多线程任务分配;3)主从核及从核间快速同步的实现;4)主从核协同计算流程调整。实现过程中,首先对整体计算任务进行上层的MPI并行设计,MPI任务分配以核组为单位,保证MPI各进程的任务均衡和通讯计算重叠;在每个核组上启动多线程,对计算任务再次进行分配;基于硬件特征,设计实现核间快速同步;重新调整各个过程的实现流程,实现主从核协同计算。
[0020]以MASNUM海浪模式为例,基于新神威处理器的主从核协同计算框架如图2所示。主核主要负责MPI通讯、风场强迫数据的读入和结果输出,而从核负责主要的计算,为了充分利用新神威处理器的计算资源。基于新神威处理器的主从核协同计算框架各部分实现的详细说明如下:
步骤(I):上层的MPI并行计算与计算通信重叠:将每个众核处理器的一个核组作为I个MPI进程,基于MPI技术实现模式的大规模并行计算。通过地理空间的网格划分,可将计算任务均衡地分配到每个进程;对MPI并行分区对每个分块,模式网格点包括内区(inner)和外区(outer)两部分。inner区的计算不依赖于MPI交换。outer区的计算需要等待MPI交换的结果,该分区的outer区的上一步的计算结果需要通过MPI发送给邻区,而outer区的计算也需要从邻区接收上一步的计算结果,所需接收的计算点记为halo区。在协同计算过程中,在MPE上对外区的变量通过MPI的I SEND函数发送给邻区,通过IRECV函数接收邻区的数据,实现halo区的数据交换。在上述这几个过程中,MPI通讯和内区的计算可以完全重叠进行,提高MPI并行的效率。
[0021 ]步骤(2):主从核多线程任务分配:在前一步完成后,每个核组将分配到近绝对均衡的计算任务,在每个核组上通过Athread启动众核多线程,进一步将计算任务平均分配到每个从核线程,而主核线程主要负责MPI通讯和数据的输入输出。每个从核线程的计算点确定后,其计算过程与单纯的MPI并行计算过程类似,但需要考虑核间的数据交换与同步。由于新神威处理器架构采用了共享局部内存(LDM)的设计方式,每个线程的计算结果直接可写入到内存中,无需进行相应的数据通讯,主从核及从核间快速同步将在下一步详细说明。
[0022]主从核及从核间快速同步的实现:在海洋大气气候等模式应用中,线程间同步频率较高,主从核及从核间同步效率也是模式效率的一个重要限制条件,利用LDM、主存、寄存器通信协同实现高效的主从核及从核间同步。神威处理器中主核可以访问每个从核的LDM,从核也可以直接访问主存,从核间可以进行寄存器通信和硬同步;主核线程状态设置从核线程组O号线程LDM状态标识,从核线程组O号线程检测标识后同步到从核线程组;从核线程组同步后,O号线程设置主存标识,主线程检测主存标识;这种方式实现主从核通讯与同步,可以减少防存带宽竞争,提高同步效率。
[0023]以MASNUM海浪模式为例的主从核协同计算流程调整的具体方法:在MPE上,当halo区的数据交换完成后,在CPE-O的LDM上设置一个flag。由于内区的源函数的计算和海浪传播计算与halo区的相应计算是相互独立的,可以在CPE上首先进行。此后,每个CPE需要检查flag以便确定halo区的交换是否完成。当这个flag被设置后,外区的海浪传播便可以开始计算。然后,在开始计算结果输出之前,所有的CPE需要进行同步。这个同步是通过在内存中设置一个flag来实现的。为了避免MPE在设置CPE的flag和检查同步flag期间的资源闲置,我们给MPE额外分配了一些计算任务并预取下一次循环所需的风场数据。通过计算点点序列化处理,我们实现了主核与从核之间MASNUM海浪模式的协同计算。
【主权项】
1.一种基于新神威处理器的主从核协同计算编程框架,该基于新神威处理器包含4个核组(CG),核组之间通过片上网络链接,每个核组包含一个管理单元(MPE)和64个计算单元(CPE),每个核组拥有独立的内存空间,管理单元和计算单元通过一个内存控制器(MC)访问内存空间;各处理器之间通过系统接口(SI)建立联系,其特征在于,把新神威处理器的多个核组作为多个独立的线程使用,与管理单元(MPE)共同完成相应的计算,基于利用从核的局部内存(LDM)、核组共用的主存、从核的寄存器通信协同实现高效的MPE与CPE之间及CPE之间同步代替基于OpenACC接口的拆分/合并(Fork/Join)的编程框架,能够更有效地利用新神威处理器设计的MPE和CPE计算资源。2.根据权利要求1所述的基于新神威处理器的主从核协同计算编程框架,其特征在于,所述的MPE与CPE之间的协同计算包括: 步骤(I):上层基于信息传递应用程序接口(MPI)的并行计算与计算通信重叠; 步骤(2 ): MPE、CPE多线程任务分配。3.根据权利要求2所述的基于新神威处理器的主从核协同计算编程框架,其特征在于,所述的步骤(I)上层的MPI并行计算与计算通信重叠的具体方法:将每个众核处理器的一个核组作为I个MPI进程,基于MPI技术实现模式的大规模并行计算;通过地理空间的网格划分,将计算任务均衡地分配到每个进程;对MPI并行分区对每个分块,模式网格点包括内区(inner)和外区(outer)两部分,inner区的计算不依赖于MPI交换,outer区的计算需要等待MPI交换的结果,该分区的outer区的上一步的计算结果需要通过MPI发送给邻区,而outer区的计算也需要从邻区接收上一步的计算结果,所需接收的计算点记为halo区;在协同计算过程中,在MPE上对外区的变量通过MPI的非阻塞式发送(ISEND)函数发送给邻区,通过非阻塞式接受(IRECV)函数接收邻区的数据,实现halo区的数据交换。4.根据权利要求3所述的基于新神威处理器的主从核协同计算编程框架,其特征在于,在所述的步骤(I)上层的MPI并行计算与计算通信重叠的具体方法的过程中,MPI通讯和内区的计算完全重叠进行,提高MPI并行的效率。5.根据权利要求2所述的基于新神威处理器的主从核协同计算编程框架,其特征在于,所述的步骤(2)主从核(MPE、CPE)多线程任务分配的具体方法:在步骤(I)完成后,每个核组将分配到近绝对均衡的计算任务,在每个核组上通过Athread启动众核多线程,进一步将计算任务平均分配到每个从核线程,而主核线程主要负责MPI通讯和数据的输入输出;每个从核线程的计算点确定后,其计算过程与单纯的MPI并行计算过程类似,但核间的数据交换通过访问主存实现,而同步则采用主从核及从核间快速同步。6.根据权利要求5所述的基于新神威处理器的主从核协同计算编程框架,其特征在于,所述的主从核及从核间快速同步的具体实现方法:在线程间同步频率较高的应用场合,主从核及从核间同步效率也是模式效率的一个重要限制条件,利用LDM、主存、寄存器通信协同实现高效的主从核及从核间同步;神威处理器中主核能够访问每个从核的LDM,从核也能够直接访问主存,从核间可以进行寄存器通信和硬同步;主核线程状态设置从核线程组O号线程LDM状态标识,从核线程组O号线程检测标识后同步到从核线程组;从核线程组同步后,O号线程设置主存标识,主线程检测主存标识。7.根据权利要求2所述的基于新神威处理器的主从核协同计算编程框架,其特征在于,在MPE上,当halo区的数据交换完成后,在CPE-O的LDM上设置一个flag;由于内区的源函数的计算和海浪传播计算与halo区的相应计算是相互独立的,可以在CPE上首先进行;此后,每个CPE需要检查flag以便确定halo区的交换是否完成; 当这个flag被设置后,外区的海浪传播便可以开始计算;然后,在开始计算结果输出之前,所有的CPE需要进行同步;这个同步是通过在内存中设置一个flag来实现的;为了避免MPE在设置CPE的flag和检查同步flag期间的资源闲置,给MPE额外分配了一些计算任务并预取下一次循环所需的风场数据;通过计算点点序列化处理,实现了主核与从核之间MASNUM海浪模式的协同计算。
【文档编号】G06F15/173GK106095583SQ201610439755
【公开日】2016年11月9日
【申请日】2016年6月20日
【发明人】乔方利, 赵伟, 尹训强, 宋振亚
【申请人】国家海洋局第海洋研究所, 国家海洋局第一海洋研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1