发明内容
本发明的目的在于提供一种基于众核集群的大数据并发调度及加速处理方法,来克服或至少减轻现有技术的至少一个上述缺陷。
本发明的一个方面,提供一种基于众核集群的大数据并发调度及加速处理方法,所述基于众核集群的大数据并发调度及加速处理方法包括:
获取海洋数据文件;
拆分所述海洋数据文件,从而获得至少两个海洋数据子文件,其中,各个海洋数据子文件具有相同的分辨率以及时间步长;
通过并行系统对每个海洋数据子文件进行并行处理,从而获得至少一个时空数据文件,所述时空数据文件具有与所述海洋数据子文件不同的分辨率以及时间步长。
可选地,所述拆分所述海洋数据文件,从而获得至少两个海洋数据子文件包括:
根据球面八分体剖分网格、变量名称、深度信息及时间信息对所述海洋数据文件进行拆分,从而获得至少两个海洋数据子文件。
可选地,所述通过并行系统对每个海洋数据子文件进行并行处理,从而获得至少一个时空数据文件包括:
并行系统通过自适应调度方式和/或固定式调度方式对每个海洋数据子文件进行并行加速处理,从而获得至少一个时空数据文件。
可选地,所述并行系统包括调度节点以及至少两个计算任务空闲节点,所述通过自适应调度方式对每个海洋数据子文件进行并行处理,从而获得至少一个时空数据文件包括:
调度节点获取各个海洋数据子文件中需要加速处理的海洋数据子文件的信息;
调度节点通过MPI点对点的方式将需要处理的海洋数据子文件的信息分发给各个计算任务空闲节点。
可选地,所述并行系统包括调度节点以及至少两个计算任务空闲节点,所述并行系统通过固定式调度方式对每个海洋数据子文件进行并行加速处理,从而获得至少一个时空数据文件包括:
调度节点获取此次任务的计算任务空闲节点的数量;
调度节点获取需要加速处理的海洋数据子文件的信息;
调度节点根据需要加速处理的海洋数据子文件的信息生成任务群,所述任务群中包括多个任务;
所述调度节点为每个计算任务空闲节点分配至少一个任务;
每个所述计算任务空闲节点根据任务对需要加速处理的海洋数据子文件进行处理。
可选地,每个所述计算任务空闲节点包括主核以及至少两个从核,每个所述计算任务空闲节点根据任务对需要加速处理的海洋数据子文件进行处理包括:
每个计算任务空闲节点的主核根据自己的ID号,自调度节点处所述获取对应的任务文件;
每个计算任务空闲节点的从核自其对应的主核处获取需要处理的数据并对所述数据进行处理。
可选地,所述每个计算任务空闲节点的主核自调度节点处所述获取对应的任务文件包括一维数据;
所述每个计算任务空闲节点的从核自其对应的主核处获取需要处理的数据并对所述数据进行处理包括:
根据所述一维数据的长度对所述一维数据进行划分,从而形成多段一维数据分段;
每个从核获取一段一维数据分段进行处理。
可选地,所述每个计算任务空闲节点的主核自调度节点处所述获取对应的任务文件包括二维数据,所述二维数据包括行数据以及列数据;
所述每个计算任务空闲节点的从核自其对应的主核处获取需要处理的数据并对所述数据进行处理包括:
根据所述一维数据的行数据对所述二维数据进行划分,从而形成多段二维数据分段;
每个从核获取一段二维数据分段进行处理。
本申请还提供了一种海洋数据文件并行处理系统,所述海洋数据文件并行处理系统包括:
海洋数据文件获取模块,所述海洋数据文件获取模块用于获取海洋数据文件;
拆分模块,所述拆分模块用于拆分所述海洋数据文件,从而获得至少两个海洋数据子文件,其中,各个海洋数据子文件具有相同的分辨率以及时间步长;
并行系统,所述并行系统用于对每个海洋数据子文件进行并行处理,从而获得至少一个时空数据文件,所述时空数据文件具有与所述海洋数据子文件不同的分辨率以及时间步长。
可选地,所述并行系统包括至少两个以上计算任务空闲节点。
有益效果
通过采用本申请的基于众核集群的大数据并发调度及加速处理方法能够根据需要更改获取到的时空数据文件的分辨率以及时间步长,并且计算速度快。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本申请的实施例进行详细说明。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请保护范围的限制。
图1为本发明第一实施例的基于众核集群的大数据并发调度及加速处理方法的流程示意图。
如图1所示的基于众核集群的大数据并发调度及加速处理方法包括:
步骤1:获取海洋数据文件;
步骤2:拆分海洋数据文件,从而获得至少两个海洋数据子文件,其中,各个海洋数据子文件具有相同的分辨率以及时间步长;
步骤3:通过并行系统对每个海洋数据子文件进行并行处理,从而获得至少一个时空数据文件,所述时空数据文件具有与所述海洋数据子文件不同的分辨率以及时间步长。
通过采用本申请的基于众核集群的大数据并发调度及加速处理方法能够根据需要更改获取到的时空数据文件的分辨率以及时间步长,并且计算速度快。
在本实施例中,拆分海洋数据文件,从而获得至少两个海洋数据子文件包括:
根据球面八分体剖分网格、变量名称、深度信息及时间信息对所述海洋数据文件进行拆分,从而获得至少两个海洋数据子文件。
具体地,通过MPI并行的方式把一系列的比较大的NC文件,根据球面八分体剖分网格、变量名称,深度信息及时间信息进行海洋数据的拆分一个个比较小的NC文件,形成按网格块的时空数据。其中每一块的数据,根据其元数据信息进行命名,命名规范格式如下:
(变量名称,维度起始,经度起始,时刻信息,深度信息)。
在本实施例中,通过并行系统对每个海洋数据子文件进行并行处理,从而获得至少一个时空数据文件包括:
并行系统通过自适应调度方式和/或固定式调度方式对每个海洋数据子文件进行并行加速处理,从而获得至少一个时空数据文件。
由于模式生成的数据通常都是固定分辨率的,而且时间步长也是固定。因而拆分成一个个比较小的NC文件所产生的数据在时间和空间上都是固定,而在上层应用进行展示时,可能会需要不同的时空分辨率的数据。
因此,需要根据已有的时空数据进行并行加速处理,插值生成高分辨率或低分辨率的时空数据。在此过程中,分别实现了固定式和动态两种调度方法。
在本实施例中,并行系统包括调度节点以及至少两个计算任务空闲节点,所述通过自适应调度方式对每个海洋数据子文件进行并行处理,从而获得至少一个时空数据文件包括:
调度节点获取各个海洋数据子文件中需要加速处理的海洋数据子文件的信息;
调度节点通过MPI点对点的方式将需要处理的海洋数据子文件的信息分发给各个计算任务空闲节点。
在本实施例中,文件信息包括:文件名称,需要差分的倍速等等,以及其他的一些算法,如:旋转算法,统计数据大小算法等等。
在本实施例中,并行系统包括调度节点以及至少两个计算任务空闲节点,并行系统通过固定式调度方式对每个海洋数据子文件进行并行加速处理,从而获得至少一个时空数据文件包括:
调度节点获取此次任务的计算任务空闲节点的数量;
调度节点获取需要加速处理的海洋数据子文件的信息;
调度节点根据需要加速处理的海洋数据子文件的信息生成任务群,任务群中包括多个任务;
调度节点为每个计算任务空闲节点分配至少一个任务;
每个计算任务空闲节点根据任务对需要加速处理的海洋数据子文件进行处理。
在本实施例中,自适应调度方式是指:
一个调度节点读取所有的需要加速处理的海洋数据文件(例如,NC文件)路径,通过MPI点对点的方式分发给各个计算任务节点。每个计算任务节点完成处理任务后,给调度节点发送完成任务信息,调度节点把该计算节点加入到调度队列中。这样调度节点从计算空闲任务节点获取可用计算节点,给其发送计算任务,直到完成所有计算。
在本实施例中,固定式调度方式是指:
在执行并行处理任务之前,首先需要确定此次任务总计算任务空闲节点点数,然后通过工具preSplitTask,把总的预处任务文件列表,根据计算任务空闲节点平均进行拆分对数量的任务列表(即文件)。
在固定式调度方式中,在本实施例中,每个计算任务空闲节点包括主核以及至少两个从核,每个计算任务空闲节点根据任务对需要加速处理的海洋数据子文件进行处理包括:
每个计算任务空闲节点的主核根据自己的ID号,自调度节点处获取对应的任务文件;
每个计算任务空闲节点的从核自其对应的主核处获取需要处理的数据并对所述数据进行处理。
在本实施例中,每个计算任务空闲节点的主核自调度节点处所述获取对应的任务文件包括一维数据;
每个计算任务空闲节点的从核自其对应的主核处获取需要处理的数据并对所述数据进行处理包括:
根据一维数据的长度对一维数据进行划分,从而形成多段一维数据分段;
每个从核获取一段一维数据分段进行处理。
举例来说,计一维数组为arr,长度为N,从核编号从0开始到(M-1),共M个从核,则每个从核需要处理数据大小为N/M,第i个从核处理数据的开始为i*N/M。
在主核中同时启动M从核阵列之后,M个从核根据从核编号i,根据公式i*N/M,获取需要处理的arr中的数据起始地址及长度,从核使用DMA操作从主核内核中加载需要处理的数据,然后进行加速算法的处理。处理完成之后,在通过DMA操作把处理完成的数据输出到主核的内存中去。
在本实施例中,每个计算任务空闲节点的主核自调度节点处获取对应的任务文件包括二维数据,二维数据包括行数据以及列数据;
每个计算任务空闲节点的从核自其对应的主核处获取需要处理的数据并对所述数据进行处理包括:
根据一维数据的行数据对所述二维数据进行划分,从而形成多段二维数据分段;
每个从核获取一段二维数据分段进行处理。
举例来说,计二维数组为arr,宽为W,高为H,从核编号从0开始到M-1,共M个从核。采用按照高度划分的思想把二维数据平均分配到M从核中进行加速处理。则每个从核需要处理数据行数为H/M,第i个从核处理数据行号起始为i*H/M。
在主核中同时启动M从核阵列之后,M个从核根据从核编号i,根据公式i*N/M,获取需要处理的arr中的数据起始地址及长度,从核使用DMA操作从主核内核中加载需要处理的数据,然后进行加速算法的处理。处理完成之后,在通过DMA操作把处理完成的数据输出到主核的内存中去。
本申请还提供了一种海洋数据文件并行处理系统,所述海洋数据文件并行处理系统包括海洋数据文件获取模块,拆分模块以及并行系统,海洋数据文件获取模块用于获取海洋数据文件;拆分模块用于拆分所述海洋数据文件,从而获得至少两个海洋数据子文件,其中,各个海洋数据子文件具有相同的分辨率以及时间步长;并行系统用于对每个海洋数据子文件进行并行处理,从而获得至少一个时空数据文件,所述时空数据文件具有与所述海洋数据子文件不同的分辨率以及时间步长。
在本实施例中,并行系统包括至少两个以上计算任务空闲节点。
本申请虽然以较佳实施例公开如上,但其实并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此,本申请的保护范围应当以本申请权利要求所界定的范围为准。
此外,显然“包括”一词不排除其他单元或步骤。装置权利要求中陈述的多个单元、模块或装置也可以由一个单元或总装置通过软件或硬件来实现。第一、第二等词语用来标识名称,而不标识任何特定的顺序。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,模块、程序段、或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地标识的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或总流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。