一种基于异构众核处理器的并行编程模型及其构建方法与流程

文档序号:37471648发布日期:2024-03-28 18:54阅读:12来源:国知局
一种基于异构众核处理器的并行编程模型及其构建方法与流程

本发明涉及并行编程模型构建,具体涉及一种基于异构众核处理器的并行编程模型及其构建方法。


背景技术:

1、虽然处理器一直在遵循着摩尔定律快速发展,但是目前计算机系统的计算能力仍然不能满足人类社会的需求,在气象预报、石油勘探、材料合成、药物研究、地球模拟等众多领域仍然亟需更快的计算速度来进行科学研究。高性能计算已经成为继理论研究、科学实验之后的第三大科学手段,并且发挥的作用越来越重要。传统的单核处理器主要依靠提高主频来获得更快的计算速度,但是由于主频提高后带来的功耗和散热等问题的限制,主频已很难继续提高。因此,增加计算资源成为提高计算速度的主要方式,在单个芯片上集成更多的处理器核心已经成为当前处理器设计的主流。目前处理器核心的数目增长很快,尤其是面向高性能计算领域的处理器已经进入众核时代。相比通用的多核处理器,众核处理器在片上集成了超出数量级的简化核心,可以提供更高的计算能力、计算密度和性能功耗比。众核已被业界视为继单核、多核之后处理器发展的第三个时代,它为在今后的一段时间内继续维持摩尔定律提供了可能。2016年6月,我国自主研制的“神威太湖之光”计算机发布,其峰值性能、持续性能、性能功耗比3顼关键指标均居世界第一,“太湖之光”的核心器件之一便是自主设计的sw26010众核处理器。按照集成处理器核种类的不同,众核处理器主要分为两类:同构众核处理器和异构众核处理器。同构众核处理器是在一个芯片内集成了多个结构相同、地位对等的处理器核。异构众核处理器则是在一个芯片内集成了多个不同结构的处理器核。目前,主流的商用众核处理器多为同构众核结构,如intel的至强phi协处理器和nvidia公司的gpgpu系列的产品。同构众核主要作为加速器,与通用cpu一起构成高性能计算系统,对应用的计算密集部分进行加速。但这种方式存在一些不足:cpu与众核处理器通过pci-e接口连接,二者之间的数据传输有较大的延迟,并且数据传输带来了额外的功耗,松耦合的系统架构降低了高性能计算系统的组装密度。异构众核处理器则在同一芯片内集成了具有控制管理功能的通用处理器核心和大量用于加速计算的精简计算核心,能够实现较高的性能功耗比和计算密度,弥补了上述同构众核的不足。首先在处理器内部采用异构结构的是索尼、东芝和ibm等公司联合开发的cell处理器。目前各主要处理器厂商已经开始异构众核处理器的开发或研究工作,如amd公司的apu、nvidia公司牵头的echolen项目、intel公司牵头的runnemede项目等,采用异构众核处理器是未来构建高性能计算系统的重要趋势。异构众核架构虽然具有诸多优势,但在单个计算节点内集成大量不同类型的处理器核心,使得体系结构更加复杂,这给程序设计和编译优化都带来了更大的挑战。从程序设计和编译优化的角度看,异构众核处理器结构主要有以下特点:一是异构众核处理器内集成了更多的处理器核心,能够提供更多的计算资源,需要发掘出应用程序中更多的并行性;二是异构众核处理器为了控制功耗,大多使用了软件管理的spm(scratchpadmemory),编程时需要用户程序管理spm空间,显式地控制数据在通用核心和加速计算核心之间的传输;三是异构众核处理器的spm由软件管理,不同于以往的硬件cache,传统的面向cache结构的编译优化技术不再适用.这种结构上的复杂性使得在异构众核处理器上的并行程序开发面临着巨大的挑战。

2、为了解决异构众核处理器的并行编程问题,人们提出了并行编程模型。并行编程模型是底层体系结构与上层应用程序之间的桥梁,向上隐蔽并行处理器的细节,提供给程序员并行表达的方法;向下充分利用硬件资源,高效正确地实现应用。

3、但是现有基于异构众核处理器的并行编程模型,无法协调统一地表达粗粒度并行和细粒度并行、任务并行和数据并行、并行和串行执行。


技术实现思路

1、为了克服现有技术的不足,本发明提供一种基于异构众核处理器的并行编程模型及其构建方法,用于解决现有基于异构众核处理器的并行编程模型,无法解决综合电子系统应用中存在的静态与动态之间的矛盾、并行运行与次序依赖之间的矛盾、数据并行与任务并行之间的矛盾以及独立研发与统一集成之间的矛盾,从而达到为综合电子系统提供良好的并行编程模型和运行期支持,提高异构众核系统可用性和易用性的目的。

2、为解决上述问题,本发明所采用的技术方案如下:

3、一种基于异构众核处理器的并行编程模型的构建方法,包括以下步骤:

4、提供一包含多个容器的单核处理器和若干包含多个容器的多核处理器,并基于非对称的容器方案进行构建,得到一初始主处理器和若干初始从处理器;

5、在所述初始主处理器和所述若干初始从处理器上,基于非对称的对象操作系统方案进行构建,得到一主处理器和若干从处理器,以使所述并行编程模型既考虑了综合电子系统应用中所述主处理器与所述从处理器的工作负载,又考虑了所述主处理器与所述从处理器的使用方式;既能支持任务并行,又能支持处理器静态分配与流水线并行;

6、其中,在基于非对称的容器方案进行构建时,包括:

7、让所述单核处理器中的多个容器分时共用所述单核处理器,让所述多核处理器中的单个容器同时共用多个核心;

8、在基于非对称的对象操作系统方案进行构建时,包括:

9、在所述初始主处理器上采用基于对象模型的单处理器单操作系统,在所述若干初始从处理器上采用基于对象模型的对称多处理操作系统,并让所述初始主处理器和所述若干初始从处理器的对象模型保持一致,以使非对称的对象操作系统支持任务并行。

10、作为本发明优选的实施方式,所述构建方法,还包括:

11、通过配置容器流水线属性,使所述容器按照时间窗静态调度,遵循固定、循环的准则实现容器间流水线并行。

12、作为本发明优选的实施方式,在非对称的对象操作系统支持任务并行时,包括:

13、通过编译器根据软件的属性完成编译期的任务规划;

14、其中,所述软件的属性包括:软件的应用类型、物理需求;所述编译期的任务规划包括:所需从处理器的数量、每一个从处理器的执行代码。

15、作为本发明优选的实施方式,在完成编译期的任务规划后,包括:

16、将每次编译的软件功能抽象为一个函数,并将支撑所述函数运行的所述若干从处理器抽象为协处理器;

17、当所述主处理器在对所述若干从处理器有预设的并行计算需求时,通过直接启用相应的协处理器来完成配套函数的运行,并最终获得函数结果。

18、作为本发明优选的实施方式,所述构建方法,还包括:

19、通过所述主处理器运行基于容器/对象的操作系统,为所述操作系统提供空间集成、时间隔离的机制,并将不同安全关键等级的软件集成在一套物理环境中;

20、其中,所述单处理器单操作系统为所述基于容器/对象的操作系统。

21、作为本发明优选的实施方式,所述构建方法,还包括:

22、将所述若干从处理器分为静态分配部分以及动态调度部分;

23、获取信号处理类,并通过所述静态分配部分为所述信号处理类的应用分配固定的从核处理器集合,以长期稳定的处理信号数据,并在软件层面封装成一个容器,通过所述对称多处理操作系统提供的通信机制与其他容器内的对象进行实时的数据交互;

24、在所述对称多处理操作系统的统一管理下,通过所述动态调度部分为由并行任务编译而成的函数提供动态服务;

25、其中,所述信号处理类包括:雷达信号处理类、摄像信号处理类以及传感器信号处理类。

26、作为本发明优选的实施方式,所述构建方法,还包括:

27、当某一对象需要使用众核提供的高性能并行计算服务时,通过调用事先已经预编译成函数的并行任务,并通过所述单处理器单操作系统进行资源分配、计算,最后获得计算结果。

28、作为本发明优选的实施方式,所述构建方法,还包括:

29、通过为所述若干从处理器的静态分配容器内设置唯一对象抽象,用于与其他对象进行数据交互;

30、通过所述单处理器单操作系统的容器静态调度进行所述主处理器内容器的运行调度,提供对象间通信机制用于支持各容器内各个对象间的数据交互,并同时支持各对象与所述若干从处理器静态分配容器之间的数据交互。

31、一种基于异构众核处理器的并行编程模型,包括:

32、一主处理器,其通过在一包含多个容器的单核处理器上基于非对称的容器方案进行构建,得到一初始主处理器后,再通过在所述初始主处理器上基于非对称的对象操作系统方案进行构建得到;

33、若干从处理器,其通过在若干包含多个容器的多核处理器上基于所述非对称的容器方案进行构建,得到若干初始从处理器后,再通过在所述若干初始从处理器上基于非对称的对象操作系统方案进行构建得到;

34、其中,在基于非对称的容器方案进行构建时,包括:

35、让所述单核处理器中的多个容器分时共用所述单核处理器,让所述多核处理器中的单个容器同时共用多个核心;

36、在基于非对称的对象操作系统方案进行构建时,包括:

37、在所述初始主处理器上采用基于对象模型的单处理器单操作系统,在所述若干初始从处理器上采用基于对象模型的对称多处理操作系统,并让所述初始主处理器和所述若干初始从处理器的对象模型保持一致,以使所述并行编程模型既考虑了综合电子系统应用中所述主处理器与所述从处理器的工作负载,又考虑了所述主处理器与所述从处理器的使用方式;既能支持任务并行,又能支持处理器静态分配与流水线并行;

38、所述并行编程模型由编译器负责核内向量并行,由操作系统负责核间任务并行和流水线并行,所述任务并行包括:操作系统内的多任务并行、基于函数和协处理器的任务并行,所述流水线并行包括:非对称容器按照时间窗静态调度的容器间流水线并行。

39、作为本发明优选的实施方式,所述并行编程模型通过配置容器流水线属性,使所述容器按照时间窗静态调度,遵循固定、循环的准则实现容器间流水线任务并行。

40、相比现有技术,本发明的有益效果在于:

41、(1)本发明针对异构众核处理器构建操作系统与编译器的并行编程模型,总体模型是由编译器负责核内向量并行,由操作系统负责核间任务并行与流水线并行,并且在本发明所提供的并行编程模型中,由于编译器具备核内simd并行能力,故只需构建操作系统负责核间任务并行和流水线并行;

42、(2)本发明所提供的并行编程模型能够协调统一地表达粗粒度并行和细粒度并行、任务并行和数据并行、并行和串行执行,并且统筹考虑编程语言(编译器)和操作系统,在编程语言中增加细粒度和数据并行支持,在操作系统中对粗粒度和任务并行提供支持,而且两者协调一致。

43、下面结合附图和具体实施方式对本发明作进一步详细说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1