一种cpu/gpu的混合并行计算方法及装置的制造方法

文档序号:9249089阅读:374来源:国知局
一种cpu/gpu的混合并行计算方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别涉及一种CPU/GPU的混合并行计算方法及装置。
【背景技术】
[0002]随着计算机技术的迅速发展,数据的处理级别也越来越大。为了解决日渐紧迫的大数据处理问题,目前已经提出了 MapReduce编程模型,MapReduce是一种分布式编程模型,可以方便地把海量数据集分发到计算集群的各节点上,以使多个节点共同处理,从而实现大数据的快速处理。
[0003]为了进一步提高MapReduce的计算性能,学术界和工业界对此都做出了许多相关的研宄。单核GPU (Graphics Processing Unit,图形处理器)的出现给系统的性能提升带来了巨大的效果,其中,GPU中包含上百个流处理核心,其计算性能超过了每秒万亿次级别,相当于一个高性能计算集群,从而可以实现海量数据的快速计算。
[0004]然而,利用单核GPU来实现的MapReduce编程模型,导致计算效率较低。

【发明内容】

[0005]有鉴于此,本发明提供一种CPU/GPU的混合并行计算方法及装置,以已解决现有技术中计算效率较低的问题。
[0006]本发明实施例提供了一种CPU/GPU的混合并行计算方法,利用一个以上的计算节点建立计算集群,每一个计算节点中包括CPU和GPU,确定调度策略;还包括:
[0007]获取一个以上的待处理任务;
[0008]将获取的所述一个以上的待处理任务缓存到任务队列中;
[0009]根据所述调度策略,将所述任务队列中的所述一个以上的待处理任务调度给一个以上的计算节点;
[0010]在被调度有待处理任务的计算节点中,CPU对调度的待处理任务逐个进行预处理,并在每预处理完一个任务则将预处理之后的任务映射到GPU的显存中;
[0011]GPU对映射到显存中的任务进行计算,并返回计算结果。
[0012]优选地,在所述将所述任务队列中的所述一个以上的待处理任务调度给一个以上的计算节点之前,进一步包括:
[0013]遍历所述任务队列中所述一个以上的待处理任务;在每遍历一个待处理任务时获取当前遍历的待处理任务的操作属性并记录;在将所述任务队列遍历结束后,将具有相同操作属性的待处理任务合并为同一个任务;并对合并后的任务进行分组,并根据分组后的任务建立哈希索引区,以将分组后的任务保存在所述哈希索引区中。
[0014]优选地,所述GPU对映射到显存中的任务进行计算,包括:
[0015]将映射到显存中的任务分割为一个以上的任务块,并针对每一个任务块分配相应的Map任务,并将每一个任务块对应的Map任务分配到GPU的各个SM处理器上,以利用各个SM处理器针对每一个任务块执行Map操作;
[0016]通过Shuffle操作将中间任务反向定位到GPU显存中,并在Reduce阶段汇总Map阶段的运算结果。
[0017]优选地,
[0018]进一步包括:预先设置访问控制列表,所述访问控制列表中包括任务及具有操作该任务权限的用户的对应关系;
[0019]在所述获取一个以上的待处理任务之前,进一步包括:根据所述访问控制列表确定提交待处理任务的用户是否具有对该待处理任务的操作权限,在具有时,执行获取该待处理任务的操作。
[0020]本发明实施例还提供了一种CPU/GPU的混合并行计算装置,利用一个以上的计算节点建立计算集群,每一个计算节点中包括CPU和GPU,确定调度策略,包括:
[0021]任务缓存模块,用于获取一个以上的待处理任务,并将获取的所述一个以上的待处理任务缓存到任务队列中;
[0022]任务调度模块,用于根据所述调度策略,将所述任务队列中的所述一个以上的待处理任务调度给一个以上的计算节点;
[0023]计算节点,用于在被调度有待处理任务时利用CPU对调度的待处理任务逐个进行预处理,并在每预处理完一个任务则将预处理之后的任务映射到GPU的显存中;利用GPU对映射到显存中的任务进行计算,并返回计算结果。
[0024]优选地,
[0025]所述任务缓存模块,用于遍历所述任务队列中所述一个以上的待处理任务;在每遍历一个待处理任务时获取当前遍历的待处理任务的操作属性并记录;在将所述任务队列遍历结束后,将具有相同操作属性的待处理任务合并为同一个任务;并对合并后的任务进行分组,并根据分组后的任务建立哈希索引区,以将分组后的任务保存在所述哈希索引区中。
[0026]优选地,所述计算节点,用于将映射到显存中的任务分割为一个以上的任务块,并针对每一个任务块分配相应的Map任务,并将每一个任务块对应的Map任务分配到GPU的各个SM处理器上,以利用各个SM处理器针对每一个任务块执行Map操作;通过Shuffle操作将中间任务反向定位到GPU显存中,并在Reduce阶段汇总Map阶段的运算结果。
[0027]优选地,进一步包括:
[0028]安全模块,用于根据预先设置的访问控制列表确定提交待处理任务的用户是否具有对该待处理任务的操作权限,在具有时,执行获取该待处理任务的操作,所述访问控制列表中包括任务及具有操作该任务权限的用户的对应关系。
[0029]本发明实施例提供了一种CPU/GPU的混合并行计算方法及装置,通过利用CPU和GPU相结合,由CPU对待处理任务进行预处理,由GPU对预处理后的任务进行计算,在GPU进行计算的过程中,CPU能够继续获取待处理任务进行预处理,从而实现了 CPU和GPU的并行计算,不仅对GPU的计算能力实现了扩容,还提高了计算节点的计算效率。
【附图说明】
[0030]图1是本发明实施例提供的方法流程图;
[0031]图2是本发明另一实施例提供的方法流程图;
[0032]图3是本发明实施例提供的装置结构示意图。
【具体实施方式】
[0033]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034]本发明实施例提供了一种CPU/GPU的混合并行计算方法,请参见图1,利用一个以上的计算节点建立集群,每一个计算节点中包括CPU和GPU,确定调度策略;该方法可以包括以下步骤:
[0035]步骤101:获取一个以上的待处理任务。
[0036]步骤102:将获取的一个以上的待处理任务缓存到任务队列中。
[0037]步骤103:根据调度策略,将任务队列中的一个以上的待处理任务调度给一个以上的计算节点。
[0038]步骤104:在被调度有待处理任务的计算节点中,CPU对调度的待处理任务逐个进行预处理,并在每预处理完一个任务则将预处理之后的任务映射到GPU的显存中。
[0039]步骤105:GPU对映射到显存中的任务进行计算,并返回计算结果。
[0040]根据本方案,通过利用CPU和GPU相结合,由CPU对待处理任务进行预处理,由GPU对预处理后的任务进行计算,在GPU进行计算的过程中,CPU能够继续获取待处理任务进行预处理,从而实现了 CPU和GPU的并行计算,不仅对GPU的计算能力实现了扩容,还提高了计算节点的计算效率。
[0041]为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
[0042]本发明实施例提供了一种CPU/GPU的混合并行计算方法,请参见图2,该方法可以包括以下步骤:
[0043]201:利用一个以上的计算节点建立计算集群,每一个计算节点中包括CPU和GPU。
[0044]在本实施例中,由于单核GPU或单核CPU在进行海量数据的计算时效率较低,因此,可以考虑在计算节点中利用CPU和GPU的混合并行计算,以提高海量数据的计算效率。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1