[发明专利]基于CPU多线程与GPU多粒度并行及协同优化的方法有效
申请号: | 201710204293.9 | 申请日: | 2017-03-30 |
公开(公告)号: | CN106991011B | 公开(公告)日: | 2020-07-24 |
发明(设计)人: | 刘金硕;李扬眉;江庄毅;章岚昕;邓娟;陈煜森;杨广益;李晨曦 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种针对大数据任务处理的基于CPU多线程与GPU多粒度并行及协同优化的方法,首先创建主线程,根据已知参数计算CPU_GPU最佳任务划分。启动n个线程,其中1个负责调度GPU,其余负责执行CPU计算任务。然后采用内存池技术降低数据从磁盘读入内存的通信开销;采用哈希表和信息摘要解决多线程访存中资源竞争的问题;采用流水线技术隐藏数据从内存读入CPU的通信时间。在主机端,CPU采用多核多线程方式执行分配到的任务;在设备端,GPU采用CUDA并行方式执行分配到的任务。全部任务完成后,主线程收回控制权直至退出。本发明可以在大数据任务处理中取得明显的加速效果,降低任务总的处理时间,提高处理效率。 | ||
搜索关键词: | 基于 cpu 多线程 gpu 粒度 并行 协同 优化 方法 | ||
【主权项】:
一种针对大数据任务处理的基于CPU多线程与GPU多粒度并行及协同优化的方法,其特征在于,包括步骤1:程序创建主线程,计算CPU和GPU的单位任务计算时间,记为tcpu、tgpu,并计算GPU加速比rgpu=tcpu/tgpu;然后根据CPU核数p,GPU数q,CPU开辟的线程数k,多线程修正参数α(α>1),总任务量s,计算最佳任务划分{CPU任务数,GPU任务数,CPU线程数}为步骤2:CPU启动n个线程,按步骤1计算的最佳任务划分方案为CPU和GPU分配相应数量的任务,其中需要设置1个线程负责调度GPU,其余n‑1个线程负责执行CPU任务;步骤3:采用内存池技术,在内存中划分特定的分区,采用一定的调度策略将数据从磁盘存入内存池当中,CPU定期从内存的数据存放区中获取数据,具体包括:步骤3.1:每个任务称为一个大块数据,在内存池中划分出n个内存区域;大块数据的总数超过n,开始阶段,每个大块数据被分为若干个大小固定的小块数据;步骤3.2:硬盘与内存池之间初始化n个通道,文件访问程序从硬盘中预读入部分数据块加入内存池,小块数据在内存池中进行缓存;步骤3.3:在内存池中,每个通道接口会设置一个标记为Pi,每个大块数据会设置一个计数器;当小块数据加入内存池时,计数器数目会加1,计数器计数达到大块数据的大小的时候,数据块会被转入数据存放区,等待处理程序获取;步骤3.4:Pi标记为可覆盖,计数器被置0,内存池中的通道接口接收新的数据块存放;步骤4:CPU从内存中读入数据时,采用哈希表和信息摘要标识每一个小块数据对象,具体包括以下定义:定义一:大块数据的信息摘要内容包括名称、类型、大小和MD5校验码;分割大块数据之后,生成每个小块数据的分块信息,并将小块数据的其他信息一同写到信息摘要当中;定义二:小块数据对象的信息包含对象大小、哈希表中的键和下一个分块主键;定义三:哈希表中保存了分块数据的主键,值为数据在内存中的地址信息,在数据块加载到内存的过程中,根据数据块名称,访问数据块信息摘要,获得数据块的主键获得数据块地址并定位到数据块;定义四:当线程读取数据块的时候,对数据块加读锁,当读取完成之后,需要更新小块数据中的摘要信息,标记为已读;当其他线程访问该数据时,如果检查到标记为1,则访问下一块数据;步骤5:采用流水线技术,使读入数据、预处理、数据处理在时间上重叠起来,附图4为流水线模式示意图;步骤6:CPU采用多核多线程方式执行任务的同时,1个线程负责调度GPU,GPU采用CUDA并行方式处理分配的任务,并将结果传回CPU;步骤7:由CPU根据从GPU传回的结果进行结果汇总。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710204293.9/,转载请声明来源钻瓜专利网。