[发明专利]一种基于Mapreduce的多GPU协同计算方法有效
申请号: | 201210102834.4 | 申请日: | 2012-04-10 |
公开(公告)号: | CN102662639A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 吕相文;袁家斌;曾青华 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 艾中兰 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种基于Mapreduce的多GPU协同计算方法,属计算机软件应用领域。对应于一般的GPU高性能计算和MapReduce并行计算的单层并行架构,本发明的编程模型采用双层的GPU和MapReduce并行架构,通过云计算并行计算的MapReduce编程模型,结合GPU+CPU异构体系结构的特征,而且帮助开发人员简化编程模型和复用已有的并行代码,减少编程的复杂度,并兼具一定的系统容灾能力,减少设备依赖性。本发明能在云计算平台或者一般的分布式计算系统中,使用GPU+MapReduce双重并行模型,实现多块GPU卡上的MapReduce任务并行处理。 | ||
搜索关键词: | 一种 基于 mapreduce gpu 协同 计算方法 | ||
【主权项】:
一种基于Mapreduce的多GPU协同计算方法,其特征在于包括以下几个步骤:1)首先,客户端向管理阶段传递任务请求;2)然后,管理阶段中的命名节点NameNode负责管理文件系统的命名空间、计算阶段集群配置信息、存储块的位置信息;工作追踪器JobTracker负责对计算任务进行启动和调度,并且实现跟踪任务的执行情况和计算阶段的状态;3)在计算阶段中:①数据节点DataNode接收到来自命名节点NameNode的读写请求后,调用CPU,对海量数据进行读取扫描,再水平划分,分成M个固定大小的数据子集splits片段,M为自然数,其大小根据计算系统中计算节点的个数以及数据划分结果所决定;②空闲CPU的任务追踪器TaskTracker向工作追踪器JobTracker请求任务并得到响应之后,对M个数据子集split进行格式化,进一步分解成一批键/值对;③空闲GPU的任务追踪器TaskTracke向工作追踪器JobTracker请求任务并得到响应之后,对输入的每一个数据子集split,创建一个Map任务,将对应split中的每个记录对作为输入并进行扫描,并将其针对GPU上运行特定算法进行格式化,使用GPU的CUDA库实现一个局部组合器Combiner,产生并输出中间键/值对;④利用分区函数hash(key)mod R将Map函数产生的中间键/值对分成R个不同的分区,这里的R为一个小于M的自然数,接着GPU将中间结果按照key2进行相关排序,并将key2值相同的value2数据聚合在一起形成一个新列表,形成对, list(value2)为由相同key2值的value2所组成的数组,再将这些键/值对分成R个不同的分区,将每个分区分配到指定的Reduce任务;⑤被分配了Reduce任务的工作站调用空闲的CPU,启动CPU的任务追踪器TaskTracker去读取Map函数提交的数据,在遍历排序后的中间数据后,CPU的任务追踪器TaskTracker将每一个分区传递给空闲的GPU的任务追踪器TaskTracker,由其进行格式化,使用GPU并行技术做相应处理操作,得到Reduce任务的多个输出结果,启动合并操作获得最终的输出值;⑥GPU的任务追踪器TaskTracker将最终结果交给CPU调用部分。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210102834.4/,转载请声明来源钻瓜专利网。