CN113448706A - 批量任务处理方法、装置及系统 - Google Patents

批量任务处理方法、装置及系统 Download PDF

Info

Publication number
CN113448706A
CN113448706A CN202110725861.6A CN202110725861A CN113448706A CN 113448706 A CN113448706 A CN 113448706A CN 202110725861 A CN202110725861 A CN 202110725861A CN 113448706 A CN113448706 A CN 113448706A
Authority
CN
China
Prior art keywords
task
data
processing
local
thread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110725861.6A
Other languages
English (en)
Inventor
孔永锋
廖俊宇
侯繁昌
林芝峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110725861.6A priority Critical patent/CN113448706A/zh
Publication of CN113448706A publication Critical patent/CN113448706A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种批量任务处理方法、装置及系统,可用于金融领域或其他技术领域,该方法包括:在批量任务启动时,调用本地CPU的多个任务调度线程,其中,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理,所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程;调用本地CPU将处理结果数据存储到本地业务数据库中。本发明有助于提高批量任务处理的效率。

Description

批量任务处理方法、装置及系统
技术领域
本发明涉及批量数据处理技术领域,具体而言,涉及一种批量任务处理方法、装置及系统。
背景技术
随着“去IOE”进程的推动,目前各大银行开始搭建自己的分布式系统,因此基于当下的技术条件,银行主要从两个方面入手完成批量任务的计算。一是在技术方面使用分布式集群中的计算节点并行处理批量任务,其基本思想是根据客户编号等关键参数将客户的交易数据路由到指定的计算节点中存储。当批量任务启动时,存储在各节点的数据就在其所在节点中完成交易的后续处理。二是通过分批次、分场次的处理方案,从时间上入手,以多次小批量的方式来切割一天的批量处理时间,避开联机交易高峰的同时提高机器的利用率。但随着线上业务的快速发展,交易量的增多,以及上下游批量任务的联动等复杂场景。使得生产上仍然存在小部分批量任务无法在网点营业前顺利结束的情况,给网点营业时的联机交易带来压力和风险的同时,也要求批量程序的开发人员对程序的性能把控的足够到位。
自1999年NVIDIA发布Geforce 256图形加速器并接替CPU完成图像渲染的计算任务,到2006年11月发布了用于其自家图形处理器的并行编程框架CUDA以来,图形处理器GPU的高度并行计算的能力得以广泛的应用和推广。而银行的批量任务中的每一笔交易实际上都是完成一次完全独立的业务响应,因此具有很好的并行性。但银行为保障交易安全而携带了众多的校验参数,这对GPU紧缺的内存资源来说是一个不小的压力,并且业务数据库要求满足ACID特性,因此无法随意的并行操作数据库。现需要一种合理的方式来解决批量任务在异构并行系统中的调度,以最大化的利用计算资源。
发明内容
本发明为了解决上述背景技术中的技术问题,提出了一种批量任务处理方法、装置及系统。
为了实现上述目的,根据本发明的一个方面,提供了一种批量任务处理方法,该方法包括:
在批量任务启动时,调用本地CPU的多个任务调度线程,其中,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理,所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程;
调用本地CPU将处理结果数据存储到本地业务数据库中。
为了实现上述目的,根据本发明的另一方面,提供了一种批量任务处理装置,该装置包括:
任务调度模块,用于在批量任务启动时,调用本地CPU的多个任务调度线程,其中,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理,所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程;
处理结果存储模块,用于调用本地CPU将处理结果数据存储到本地业务数据库中。
为了实现上述目的,根据本发明的另一方面,提供了一种批量任务处理系统,该系统包括:分布式批量任务处理集群;所述分布式批量任务处理集群包括多个处理节点;每个所述处理节点包括:业务数据库、CPU以及GPU;
每个所述处理节点,用于在批量任务启动时,调用本地CPU的多个任务调度线程,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理;所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程,进而调用本地CPU将处理结果数据存储到本地业务数据库中。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述批量任务处理方法中的步骤。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述批量任务处理方法中的步骤。
本发明的有益效果为:本发明在启动批量任务处理时,由CPU的任务调度线程调度GPU的线程对待处理任务数据进行处理,GPU线程在完成数据处理之后,将处理结果数据返回给任务调度线程,进而由CPU将处理结果数据存储到本地业务数据库中,本发明的该异构并行调度的方案结合批量数据的特点,在确保业务数据库ACID特性的同时,充分发挥GPU芯片的并行能力,挖掘GPU芯片的计算资源,提高批量任务处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例批量任务处理方法的流程图;
图2是本发明实施例将处理结果数据存储到本地业务数据库的流程图;
图3是本发明实施例批量任务处理系统示意图;
图4是本发明实施例批量任务的生命周期示意图;
图5是本发明实施例批量任务异构并行调度方案的流程图;
图6是本发明实施例批量任务处理装置的结构框图;
图7是本发明实施例处理结果存储模块的结构框图;
图8是本发明实施例计算机设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
需要说明的是,本发明的批量任务处理方法、装置及系统可用于金融领域,也可以应用于其他技术领域。
本发明的一个方面提供了一种批量任务处理系统。图3是本发明实施例批量任务处理系统示意图,如图3所示,本发明的批量任务处理系统包括:终端交易系统和分布式批量任务处理集群(即图3中的分布式集群)。所述分布式批量任务处理集群包括多个处理节点(即图3中的集群节点)。每个所述处理节点包括:业务数据库、CPU以及GPU。
下面对本发明批量任务处理系统中各组成部分进行详细的介绍:
1.终端交易系统
终端交易系统可以包括智能终端、手机银行、柜面交易系统等,可以提供各类银行业务交易,客户或柜员在系统中发起的交易经系统判断后需批量处理的,则将交易的请求数据(即待处理任务数据)记录在预设的登记簿中,待批量任务启动时,系统加载提前记录的数据,完成交易的业务处理流程。
2.分布式批量任务处理集群:
分布式集群所在的网络包含了用于管理集群计算节点的注册中心、配置中心、控制器节点、以及用于处理批量任务的执行器节点(一般一个节点包含多个执行器,并共享同一个业务数据库)。另外,分布式集群系统会根据客户编号以约定的路由规则将客户的数据和请求推送到具体的计算节点,并存储到该节点的业务数据库中。
3.处理节点:
这类节点受控制器的调度,启动批量任务处理本节点业务数据范围内需要处理的交易。具体是通过其装载的计算芯片(CPU+GPU)来完成计算。
4.业务数据库:
用于存储和客户相关的业务数据,集群会根据客户编号以一定的路由规则将数据存储在具体的数据库中。
5.处理中的CPU:
CPU芯片是直接处理和运行批量任务的计算芯片。在本方案中需要使用MPI并行编程框框架来调度CPU的多线程。
6.处理中的GPU:
GPU芯片依赖于CPU控制和调度,并且需要结合英伟达的CUDA编程框架才能编写和装载并行程序。CUDA编程框架目前已经支持JAVA、C++、Python编程语言,可以很好的与当下的分布式系统开发环境相结合。
在本发明实施例中,每个所述处理节点,用于在批量任务启动时,调用本地CPU的多个任务调度线程,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理;所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程,进而调用本地CPU将处理结果数据存储到本地业务数据库中。
在本发明实施例中,CPU包含多个线程,具体包括一个CPU主线程和多个CPU子线程,CPU子线程即为上述任务调度线程。
在本发明一个实施例中,调用本地CPU将处理结果数据存储到本地业务数据库中,具体包括:
每个接收到所述处理结果数据的任务调度线程将所述处理结果数据存储到本地业务数据库中,其中,所述处理结果数据包含主键或索引。
在本发明另一个实施例中,调用本地CPU将处理结果数据存储到本地业务数据库中,具体包括:
本地CPU中的CPU主线程实时检测每个所述任务调度线程的临时文件中是否存在确认文件,若存在,则先将所述临时文件中的处理结果数据存储到本地业务数据库中,再删除所述临时文件,其中,任务调度线程在接收到GPU线程发送的处理结果数据时,将处理结果数据存储到临时文件中,并在临时文件中生成确认文件。
在本发明一个实施例中,如果需要实时的将GPU返回的数据持久化到本地业务数据库中,可以使用CPU主线程实时扫描从线程(即任务调度线程)产生的临时文件,处理完后删除。具体的,从线程每次生成临时的数据文件之后,加设一个确认文件。主线程检测到确认文件后,才可以处理从线程的数据文件。
在本发明另一个实施例中,每个所述处理节点,还用于在批量任务启动时获取本处理节点对应的待处理任务数据并存储到本地业务数据库中。
在本发明一个实施例中,终端交易系统产生的待处理任务数据汇总存储在预设的登记簿/文件中。在批量任务启动时,每个处理节点从该登记簿/文件获取本处理节点对应的待处理任务数据并存储到各自的本地业务数据库中。
所述每个所述任务调度线程先获取待处理任务数据,具体包括:
每个所述任务调度线程从所述本地业务数据库中获取待处理任务数据。
在本发明另一个实施例中,每个所述处理节点,还用于在批量任务处理结束时,清空本地GPU的全局内存,并终止本地CPU的任务调度线程。
图4是本发明实施例批量任务的生命周期示意图,如图4所示,在本发明一个实施例中,本发明批量任务的生命周期包含如下阶段:
1.批量任务的产生:
批量任务一般来自存量业务的定期计划,比如每月15号发工资的企业员工下挂的工资卡,会关联代发工资的批量任务。
批量任务也有来自增量业务的设定计划,比如每天由各渠道发起的批量开卡交易,设定在每日凌晨统一处理。
待处理的批量任务数据存储在分布式集群中的业务数据库中,根据批量任务的需要进行下传、上送和处理。
2.批量任务的触发:
批量任务一般由设定的时间触发,或者由其依赖的上游批量任务触发。
3.批量任务的执行:
3.1集群中的控制器触发批量任务后,调动执行器加载业务数据完成批量任务。
3.2执行器调度异构芯片处理批量任务:
3.2.1执行器使用MPI框架启用多个CPU线程。
3.2.2CPU线程预先从业务数据库中获取登记簿中记录的待处理数据。
3.2.3CPU线程基于CUDA编程框架传输数据给GPU,并且唤起GPU线程。
3.2.4GPU完成计算和处理后,将数据返回给CPU。
3.2.5CPU将处理后的数据重新持久化到业务数据库中。
图5是本发明实施例批量任务异构并行调度方案的流程图,如图5所示,在本发明一个具体实施例中,利用本发明的批量任务处理系统进行批量任务处理的具体流程包含以下步骤:
假设CPU有10个计算核心(线程),GPU有1000个计算核心(线程),而批量任务需要处理登记簿中的100万条待处理任务数据。
1.在CPU的主线程中调用MPI框架的内置函数唤起剩余9个子线程(即任务调度线程)。
2.每个CPU子线程分别从登记簿中读取100条数据。
3.每个CPU线程调用内置的CUDA核函数将数据传入GPU全局内存中。
4.每个CPU线程调用自定义的CUDA核函数,分配100个GPU线程,处理对应的100条数据。
5.每个CPU线程继续查询登记簿的待处理数据,并等待GPU核函数的结束。
6.自定义的GPU核函数完成计算后,将100条处理结果数据传回CPU。
7.CPU线程接收到从GPU返回的数据后,写入临时文件中,并将下一批待处理的数据传入GPU全局内存继续处理。
8.登记簿中的所有数据处理完毕之后,释放GPU的内存空间,并终止9个CPU子线程只保留主线程。
9.CPU主线程读取临时文件中记录的返回结果,逐个插入/更新到数据库中。
10.特殊的,如果需要实时的将GPU返回的数据持久化到本地业务数据库中,可以使用CPU主线程实时扫描从线程(即任务调度线程)产生的临时文件,处理完后删除。具体的,从线程每次生成临时的数据文件之后,加设一个确认文件。主线程检测到确认文件后,才可以处理从线程的数据文件。
11.特殊的,如果从GPU返回的数据带有主键或索引,那么子线程(即任务调度线程)可以直接将返回的数据持久化到业务数据库中,且不会造成锁表。
12.特殊的,如果GPU有足够的存储空间来记录交易数据,那么可以借助MPI和CUDA开启超过芯片(CPU/GPU)计算核心数量的线程,这些线程以轮询的方式调度执行。利用轮询调度能够有效隐藏访存延迟,提高计算吞吐量。
另外,本发明批量任务异构并行方案的程序实现,包含如下细节:
1.CPU并行编程时,调用MPI框架启动多线程前需要设置开启的线程数量,并且获取内置函数返回的线程id(thread_id)。并行代码块中,根据thread_id确认每个线程需要执行的程序分支。
比如,thread_id==0的主线程负责扫描从线程生成的数据文件并载入数据库。而thread_id!=0的所有从线程,则负责调度GPU完成批量任务的计算。
2.CPU并行编程时,需要约定从线程的数据文件和确认文件的名称,以便主线程根据确认文件定位数据文件。
比如,数据文件命名为data_[从线程id]_[文件序号],那么确认文件可以约定为check_[从线程id]_[文件序号]。
3.GPU并行编程时,CUDA并不会返回线程id,而CUDA内置了三元变量(threadIdx、blockDim、blockIdx、gridDim)来描述线程的组织结构(Thread、Block、Grid),因此GPU的线程id需要在程序中手动计算。
4.GPU并行编程时,CUDA根据各种型号的GPU设置了相应的使用限制,包括线程的结构分二维和三维,每一维度的线程数据有最大限制。因此调度GPU之前,需要使用CUDA的内核函数获取GPU的硬件参数,从而合理设置并行线程的数量和结构。
基于同一发明构思,本发明实施例还提供了一种批量任务处理方法,如下面的实施例所述。由于批量任务处理方法解决问题的原理与批量任务处理系统相似,因此批量任务处理方法的实施例可以参见批量任务处理系统的实施例,重复之处不再赘述。本发明的批量任务处理方法应用于分布式批量任务处理集群中的任意一个处理节点,即本发明的实施主体为分布式批量任务处理集群中的任意一个处理节点。
图1是本发明实施例批量任务处理方法的流程图,实施主体为分布式批量任务处理集群中的任意一个处理节点,如图1所示,本实施例的批量任务处理方法包括步骤S101至步骤S102。
步骤S101,在批量任务启动时,调用本地CPU的多个任务调度线程,其中,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理,所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程。
步骤S102,调用本地CPU将处理结果数据存储到本地业务数据库中。
在本发明一个实施例中,上述步骤S102的调用本地CPU将处理结果数据存储到本地业务数据库中,具体包括:
调用每个接收到所述处理结果数据的任务调度线程将所述处理结果数据存储到本地业务数据库中,其中,所述处理结果数据包含主键或索引。
图2是本发明实施例将处理结果数据存储到本地业务数据库的流程图,如图2所示,在本发明一个实施例中,上述步骤S102的调用本地CPU将处理结果数据存储到本地业务数据库中,具体包括步骤S201和步骤S202。
步骤S201,调用本地CPU中的CPU主线程实时检测每个所述任务调度线程的临时文件中是否存在确认文件。
步骤S202,若存在,则先将所述临时文件中的处理结果数据存储到本地业务数据库中,再删除所述临时文件,其中,任务调度线程在接收到GPU线程发送的处理结果数据时,将处理结果数据存储到临时文件中,并在临时文件中生成确认文件。
在本发明一个实施例中,上述步骤S101中的将所述待处理任务数据传入本地GPU的全局内存中,具体包括:
调用内置的CUDA核函数将所述待处理任务数据传入本地GPU的全局内存中。
在本发明一个实施例中,上述步骤S101中的调用本地GPU中的GPU线程对所述待处理任务数据进行处理,具体包括:
调用自定义的CUDA核函数,分配本地GPU中的GPU线程对所述待处理任务数据进行处理。
在本发明一个实施例中,本发明的批量任务处理方法,还包括:
在批量任务启动时获取本处理节点对应的待处理任务数据并存储到本地业务数据库中。
在本发明一个实施例中,上述步骤S101中的每个所述任务调度线程先获取待处理任务数据,具体包括:每个所述任务调度线程从所述本地业务数据库中获取待处理任务数据。
在本发明一个实施例中,本发明的批量任务处理方法,还包括:
在批量任务处理结束时,清空本地GPU的全局内存,并终止本地CPU的任务调度线程。
由以上实施例可以看出,本发明提供了一种批量任务的异构并行调度方案。对于分布式集群中同一处理节点的批量任务,首先从CPU的主线程中启动多个从线程,每个CPU线程从业务数据库/上游下传的文件中获取待处理的批量数据,然后将批量数据加载到GPU内存中,并启动相应数量的GPU线程,每一个GPU线程完成一笔数据对应的交易。GPU将处理完的数据传回CPU,并根据业务数据的特点,可以直接将数据持久化到数据库,或先导出到临时文件,待所有交易处理完成后,再由CPU主线程将文件中的数据持久化到数据库中。该异构并行调度的方案结合批量数据的特点,在确保业务数据库ACID特性的同时,充分发挥异构芯片的并行能力,挖掘芯片的计算资源,提高银行批量任务处理的效率。
本发明的效果与优点如下:
本发明解决了银行批量任务在分布式集群中单个处理节点上的异构并行实现,具体而言,本发明根据批量数据的特点,动态的调整并行线程的数量以及数据持久化的方式,从而在满足业务数据库的ACID特性的同时实现高效的并行处理方案。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于同一发明构思,本发明实施例还提供了一种批量任务处理装置,可以用于实现上述实施例所描述的批量任务处理方法,如下面的实施例所述。由于批量任务处理装置解决问题的原理与批量任务处理方法相似,因此批量任务处理装置的实施例可以参见批量任务处理方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本发明实施例批量任务处理装置的结构框图,如图6所示,本发明实施例批量任务处理装置包括:
任务调度模块1,用于在批量任务启动时,调用本地CPU的多个任务调度线程,其中,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理,所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程;
处理结果存储模块2,用于调用本地CPU将处理结果数据存储到本地业务数据库中。
在本发明一个实施例中,所述处理结果存储模块,具体用于调用每个接收到所述处理结果数据的任务调度线程将所述处理结果数据存储到本地业务数据库中,其中,所述处理结果数据包含主键或索引。
图7是本发明实施例处理结果存储模块的结构框图,如图7所示,在本发明一个实施例中,所述处理结果存储模块,具体包括:
确认文件检测单元201,用于调用本地CPU中的CPU主线程实时检测每个所述任务调度线程的临时文件中是否存在确认文件;
存储处理单元202,用于在存在确认文件时,先将所述临时文件中的处理结果数据存储到本地业务数据库中,再删除所述临时文件,其中,任务调度线程在接收到GPU线程发送的处理结果数据时,将处理结果数据存储到临时文件中,并在临时文件中生成确认文件。
在本发明一个实施例中,所述任务调度模块1具体调用内置的CUDA核函数将所述待处理任务数据传入本地GPU的全局内存中。
在本发明一个实施例中,所述任务调度模块1具体调用自定义的CUDA核函数,分配本地GPU中的GPU线程对所述待处理任务数据进行处理。
在本发明一个实施例中,本发明批量任务处理装置,还包括:
待处理任务数据获取模块,用于在批量任务启动时获取本处理节点对应的待处理任务数据并存储到本地业务数据库中。
在本发明一个实施例中,所述每个所述任务调度线程先获取待处理任务数据,具体包括:每个所述任务调度线程从所述本地业务数据库中获取待处理任务数据。
在本发明一个实施例中,本发明批量任务处理装置,还包括:
结束处理模块,用于在批量任务处理结束时,清空本地GPU的全局内存,并终止本地CPU的任务调度线程。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图8所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述批量任务处理方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种批量任务处理方法,其特征在于,包括:
在批量任务启动时,调用本地CPU的多个任务调度线程,其中,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理,所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程;
调用本地CPU将处理结果数据存储到本地业务数据库中。
2.根据权利要求1所述的批量任务处理方法,其特征在于,调用本地CPU将处理结果数据存储到本地业务数据库中,具体包括:
调用每个接收到所述处理结果数据的任务调度线程将所述处理结果数据存储到本地业务数据库中,其中,所述处理结果数据包含主键或索引。
3.根据权利要求1所述的批量任务处理方法,其特征在于,调用本地CPU将处理结果数据存储到本地业务数据库中,具体包括:
调用本地CPU中的CPU主线程实时检测每个所述任务调度线程的临时文件中是否存在确认文件;
若存在,则先将所述临时文件中的处理结果数据存储到本地业务数据库中,再删除所述临时文件,其中,任务调度线程在接收到GPU线程发送的处理结果数据时,将处理结果数据存储到临时文件中,并在临时文件中生成确认文件。
4.根据权利要求1所述的批量任务处理方法,其特征在于,所述将所述待处理任务数据传入本地GPU的全局内存中,具体包括:
调用内置的CUDA核函数将所述待处理任务数据传入本地GPU的全局内存中。
5.根据权利要求1所述的批量任务处理方法,其特征在于,所述调用本地GPU中的GPU线程对所述待处理任务数据进行处理,具体包括:
调用自定义的CUDA核函数,分配本地GPU中的GPU线程对所述待处理任务数据进行处理。
6.根据权利要求1所述的批量任务处理方法,其特征在于,还包括:
在批量任务启动时获取本处理节点对应的待处理任务数据并存储到本地业务数据库中;
所述每个所述任务调度线程先获取待处理任务数据,具体包括:
每个所述任务调度线程从所述本地业务数据库中获取待处理任务数据。
7.根据权利要求1所述的批量任务处理方法,其特征在于,还包括:
在批量任务处理结束时,清空本地GPU的全局内存,并终止本地CPU的任务调度线程。
8.一种批量任务处理装置,其特征在于,包括:
任务调度模块,用于在批量任务启动时,调用本地CPU的多个任务调度线程,其中,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理,所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程;
处理结果存储模块,用于调用本地CPU将处理结果数据存储到本地业务数据库中。
9.根据权利要求8所述的批量任务处理装置,其特征在于,
所述处理结果存储模块,具体用于调用每个接收到所述处理结果数据的任务调度线程将所述处理结果数据存储到本地业务数据库中,其中,所述处理结果数据包含主键或索引。
10.根据权利要求8所述的批量任务处理装置,其特征在于,所述处理结果存储模块,具体包括:
确认文件检测单元,用于调用本地CPU中的CPU主线程实时检测每个所述任务调度线程的临时文件中是否存在确认文件;
存储处理单元,用于在存在确认文件时,先将所述临时文件中的处理结果数据存储到本地业务数据库中,再删除所述临时文件,其中,任务调度线程在接收到GPU线程发送的处理结果数据时,将处理结果数据存储到临时文件中,并在临时文件中生成确认文件。
11.一种批量任务处理系统,其特征在于,包括:分布式批量任务处理集群;所述分布式批量任务处理集群包括多个处理节点;每个所述处理节点包括:业务数据库、CPU以及GPU;
每个所述处理节点,用于在批量任务启动时,调用本地CPU的多个任务调度线程,每个所述任务调度线程先获取待处理任务数据,然后将所述待处理任务数据传入本地GPU的全局内存中,进而调用本地GPU中的GPU线程对所述待处理任务数据进行处理;所述GPU线程在完成数据处理之后,将处理结果数据发送到任务调度线程,进而调用本地CPU将处理结果数据存储到本地业务数据库中。
12.根据权利要求11所述的批量任务处理系统,其特征在于,所述调用本地CPU将处理结果数据存储到本地业务数据库中,具体包括:
每个接收到所述处理结果数据的任务调度线程将所述处理结果数据存储到本地业务数据库中,其中,所述处理结果数据包含主键或索引。
13.根据权利要求11所述的批量任务处理系统,其特征在于,所述调用本地CPU将处理结果数据存储到本地业务数据库中,具体包括:
本地CPU中的CPU主线程实时检测每个所述任务调度线程的临时文件中是否存在确认文件,若存在,则先将所述临时文件中的处理结果数据存储到本地业务数据库中,再删除所述临时文件,其中,任务调度线程在接收到GPU线程发送的处理结果数据时,将处理结果数据存储到临时文件中,并在临时文件中生成确认文件。
14.根据权利要求11所述的批量任务处理系统,其特征在于,每个所述处理节点,用于在批量任务启动时获取本处理节点对应的待处理任务数据并存储到本地业务数据库中;
所述每个所述任务调度线程先获取待处理任务数据,具体包括:
每个所述任务调度线程从所述本地业务数据库中获取待处理任务数据。
15.根据权利要求11所述的批量任务处理系统,其特征在于,
每个所述处理节点,还用于在批量任务处理结束时,清空本地GPU的全局内存,并终止本地CPU的任务调度线程。
16.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法。
17.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至7任意一项所述的方法。
CN202110725861.6A 2021-06-29 2021-06-29 批量任务处理方法、装置及系统 Pending CN113448706A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110725861.6A CN113448706A (zh) 2021-06-29 2021-06-29 批量任务处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110725861.6A CN113448706A (zh) 2021-06-29 2021-06-29 批量任务处理方法、装置及系统

Publications (1)

Publication Number Publication Date
CN113448706A true CN113448706A (zh) 2021-09-28

Family

ID=77813785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110725861.6A Pending CN113448706A (zh) 2021-06-29 2021-06-29 批量任务处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN113448706A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992684A (zh) * 2021-10-26 2022-01-28 中电金信软件有限公司 发送数据的方法、装置、处理节点、存储介质及系统
CN114327872A (zh) * 2021-12-14 2022-04-12 特赞(上海)信息科技有限公司 多媒体异步处理方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609978A (zh) * 2012-01-13 2012-07-25 中国人民解放军信息工程大学 基于cuda架构的gpu加速锥束ct图像重建的方法
CN103049241A (zh) * 2013-01-24 2013-04-17 重庆邮电大学 一种提高cpu+gpu异构装置计算性能的方法
US20160321777A1 (en) * 2014-06-20 2016-11-03 Tencent Technology (Shenzhen) Company Limited Data parallel processing method and apparatus based on multiple graphic processing units
CN106991011A (zh) * 2017-03-30 2017-07-28 武汉大学 一种针对大数据任务处理的基于cpu多线程与gpu多粒度并行及协同优化的方法
CN107168795A (zh) * 2017-05-12 2017-09-15 西南大学 基于cpu‑gpu异构复合式并行计算框架的密码子偏差系数模型方法
CN109902059A (zh) * 2019-02-28 2019-06-18 苏州浪潮智能科技有限公司 一种cpu与gpu之间的数据传输方法
CN111352727A (zh) * 2018-12-20 2020-06-30 中国科学院计算机网络信息中心 一种应用于图像混合集群处理系统的图像处理方法
CN112162854A (zh) * 2020-09-21 2021-01-01 南开大学 一种cpu-gpu间计算任务调度方法、系统及介质
CN112241289A (zh) * 2019-07-18 2021-01-19 中移(苏州)软件技术有限公司 一种文本数据的处理方法和电子设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609978A (zh) * 2012-01-13 2012-07-25 中国人民解放军信息工程大学 基于cuda架构的gpu加速锥束ct图像重建的方法
CN103049241A (zh) * 2013-01-24 2013-04-17 重庆邮电大学 一种提高cpu+gpu异构装置计算性能的方法
US20160321777A1 (en) * 2014-06-20 2016-11-03 Tencent Technology (Shenzhen) Company Limited Data parallel processing method and apparatus based on multiple graphic processing units
CN106991011A (zh) * 2017-03-30 2017-07-28 武汉大学 一种针对大数据任务处理的基于cpu多线程与gpu多粒度并行及协同优化的方法
CN107168795A (zh) * 2017-05-12 2017-09-15 西南大学 基于cpu‑gpu异构复合式并行计算框架的密码子偏差系数模型方法
CN111352727A (zh) * 2018-12-20 2020-06-30 中国科学院计算机网络信息中心 一种应用于图像混合集群处理系统的图像处理方法
CN109902059A (zh) * 2019-02-28 2019-06-18 苏州浪潮智能科技有限公司 一种cpu与gpu之间的数据传输方法
CN112241289A (zh) * 2019-07-18 2021-01-19 中移(苏州)软件技术有限公司 一种文本数据的处理方法和电子设备
CN112162854A (zh) * 2020-09-21 2021-01-01 南开大学 一种cpu-gpu间计算任务调度方法、系统及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘芳;邓笋根;聂宁明;王彦棡;王珏: "克希霍夫时间偏移在GPU集群上的MPI/CUDA混合编程实现", 科研信息化技术与应用(中英文), vol. 3, no. 005 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992684A (zh) * 2021-10-26 2022-01-28 中电金信软件有限公司 发送数据的方法、装置、处理节点、存储介质及系统
CN113992684B (zh) * 2021-10-26 2022-10-28 中电金信软件有限公司 发送数据的方法、装置、处理节点、存储介质及系统
CN114327872A (zh) * 2021-12-14 2022-04-12 特赞(上海)信息科技有限公司 多媒体异步处理方法及装置
CN114327872B (zh) * 2021-12-14 2024-05-31 特赞(上海)信息科技有限公司 多媒体异步处理方法及装置

Similar Documents

Publication Publication Date Title
US7272820B2 (en) Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity
CN105045658B (zh) 一种利用多核嵌入式dsp实现动态任务调度分发的方法
CN109582466A (zh) 一种定时任务执行方法、分布式服务器集群及电子设备
WO2017016421A1 (zh) 一种集群中的任务执行方法及装置
CN109032796B (zh) 一种数据处理方法和装置
CN113448706A (zh) 批量任务处理方法、装置及系统
CN104040485A (zh) Paas分层调度和自动缩放
WO2019047441A1 (zh) 一种通信优化方法及系统
CN102456185A (zh) 一种分布式工作流处理方法及分布式工作流引擎系统
US9098359B2 (en) Durable execution of long running applications
CN103500119B (zh) 一种基于预调度的任务分配方法
CN111897633A (zh) 一种任务处理的方法和装置
CN105096122A (zh) 一种分片式交易匹配方法和装置
CN107562528A (zh) 支持多种计算框架的单元化按需计算方法及相关装置
CN111210340A (zh) 一种自动任务处理方法、装置、服务器及存储介质
US20200310828A1 (en) Method, function manager and arrangement for handling function calls
CN113869902A (zh) 一种区块链交易执行方法及装置
CN113312359A (zh) 一种分布式作业进度计算方法、装置和存储介质
CN112380030A (zh) 主任务处理方法、装置、服务器和存储介质
CN106598726A (zh) 一种多任务管理系统及其分布式部署方法
CN112395062A (zh) 任务处理方法、装置、设备及计算机可读存储介质
CN113505000B (zh) 区块链中的多线程处理方法、装置、系统和存储介质
CN102867018B (zh) 一种数据库系统中线程间的模拟信号通信方法
CN115220887A (zh) 调度信息的处理方法、任务处理系统、处理器和电子设备
CN115357352A (zh) 分布式异步任务调度方法、装置、计算机设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination