The invention relates to a method based on CPU multi thread and GPU multi granularity parallel and cooperative optimization for large data task processing. First, a main thread is created, and a CPU_GPU optimum task division is calculated according to the known parameters. Start n threads, 1 of which are responsible for scheduling GPU, and the others responsible for executing CPU computing tasks. Then the memory pool technology to reduce the communication overhead of data from disk into memory; using the hash table and the multi thread access information to solve problems in resource competition; using pipelining technique to hide data from the communication time memory to read CPU. At the host side, CPU uses multi-core and multi-threaded methods to perform assigned tasks; at the device side, the GPU uses CUDA parallel mode to perform assigned tasks. When all tasks are completed, the main thread takes control until it exits. The invention can achieve obvious acceleration effect in large data task processing, reduce the total processing time of tasks and improve the processing efficiency.
【技术实现步骤摘要】
一种针对大数据任务处理的基于CPU多线程与GPU多粒度并行及协同优化的方法
本专利技术涉及计算机学科中的CPU_GPU多粒度并行、负载均衡、存储与通信优化、CPU多线程和大数据处理等,尤其是一种大数据任务处理的基于CPU多线程与GPU多粒度并行及协同优化的方法。
技术介绍
在进行大数据任务处理时,由于大规模的密集型数据、处理时间长,有必要对大数据任务处理进行加速优化。近年来,随着硬件的发展,在计算机架构中,多核/众核处理器已成为提高计算速度的主要方式。自NVIDIA公司在1999年发布GeForce256图形处理芯片提出GPU的概念以来,GPU因其强大的计算能力、灵活的编程能力和低功耗的特点,成为当前高性能计算系统中加速部件的主要选择之一,被广泛应用于计算密集型程序。在众多高性能计算平台中,多核CPU与众核GPU组合形成的异构计算系统具有很大的发展潜力。现有的CPU_GPU异构平台主要采用主-从方式运行,即CPU作为主机端,负责执行控制逻辑和事务处理等串行计算;而GPU作为协处理器或设备端,负责执行计算密度高、逻辑分支简单的大规模数据并行计算。由于CPU和GPU执行特性的差异,某些任务可能在CPU上执行得快但在GPU上执行得慢,而另外一些任务可能在GPU上执行得快但在CPU上执行得慢,所以合理的任务划分策略和实现负载均衡显得尤为重要。CPU与GPU之间通过PCI-E总线连接,GPU仍然作为计算节点的外部设备,CPU和GPU之间的数据传输必须在CPU的控制下显式地进行。CPU和GPU之间的数据传输以及计算模块与存储模块的通信开销是制约性能的瓶颈,所以有必要对 ...
【技术保护点】
一种针对大数据任务处理的基于CPU多线程与GPU多粒度并行及协同优化的方法,其特征在于,包括步骤1:程序创建主线程,计算CPU和GPU的单位任务计算时间,记为tcpu、tgpu,并计算GPU加速比rgpu=tcpu/tgpu;然后根据CPU核数p,GPU数q,CPU开辟的线程数k,多线程修正参数α(α>1),总任务量s,计算最佳任务划分{CPU任务数,GPU任务数,CPU线程数}为
【技术特征摘要】
1.一种针对大数据任务处理的基于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从内存中读入数据时,采用哈希表和...
【专利技术属性】
技术研发人员:刘金硕,李扬眉,江庄毅,章岚昕,邓娟,陈煜森,杨广益,李晨曦,
申请(专利权)人:武汉大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。