CN106844022A - 一种数据处理的方法及系统 - Google Patents
一种数据处理的方法及系统 Download PDFInfo
- Publication number
- CN106844022A CN106844022A CN201611202952.7A CN201611202952A CN106844022A CN 106844022 A CN106844022 A CN 106844022A CN 201611202952 A CN201611202952 A CN 201611202952A CN 106844022 A CN106844022 A CN 106844022A
- Authority
- CN
- China
- Prior art keywords
- data
- thread block
- dimension
- binary crelation
- memory
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理的方法及系统。所述方法包括:获取所述设备计算节点的硬件配置信息,以及所述设备计算节点中二元关系数据的维数;所述设备计算节点包括:设备处理器和设备存储器;根据设备计算节点的硬件配置信息确定设备处理器中线程块的目标线程数,以及根据二元关系数据的维数确定线程块的目标个数;根据二元关系数据的维数、设备处理器中线程块的目标线程数和线程块的目标个数,计算设备存储器中二元关系数据的传递闭包。可以提高计算二元关系传递闭包的效率。
Description
技术领域
本申请涉及科学计算和计算机高性能计算领域,特别涉及一种数据处理的方法及系统。
背景技术
科学计算是指利用计算机处理科学研究和工程技术中所遇到的数学计算。科学计算是计算机发展中的一个重要领域。其中,传递闭包问题在科学计算中广泛存在。例如,在执行进程同步时,如果某一资源变为有效,则必须追溯一些牵连性挂起的进程,从而找到下次可以运行的进程。这种追溯进程的过程就是一种传递闭包问题。传递闭包的计算是一种重要的关系运算,其中二元关系传递闭包的计算在数据结构、编译理论和关系数据库中都有广泛的应用。
现有技术中常用的计算二元关系传递闭包的方法是利用沃肖尔(Warshall)算法对二元关系传递闭包进行串行计算。Warshall算法是1962年Stephen Warshall提出的一种计算二元关系传递闭包的方法。针对具有n个元素的有限集上的二元关系R的关系矩阵MR,其与包含n个顶点的有向图相对应,计算该关系矩阵的传递闭包等价于确定所有顶点之间的可达情况。例如,当二元关系矩阵MR中rij=1时,表示第i顶点可以直接到达第j个顶点。Warshall算法的计算过程为:针对任意两个顶点,例如第i个顶点和第j个顶点,从第i个顶点开始的路径,以第k个顶点作为中间顶点,如果可以间接到达第j个顶点,置rij=1,否则置rij=0;其中,i、j和k均取值为1、2、3、…、n;按上述步骤进行循环计算,可以得到二元关系矩阵MR的传递闭包。
发明人发现现有技术中至少存在如下问题:针对具有n个元素的有限集上的二元关系R的关系矩阵MR,采用现有技术中计算二元关系传递闭包的方法计算其传递闭包时,该方法计算时间与的n的三次方成正比,当n较大时,该方法的计算效率可能较低。
发明内容
本申请实施例的目的是提供一种数据处理的方法及系统,以提高计算二元关系传递闭包的效率。
为解决上述技术问题,本申请实施例提供一种数据处理的方法及系统是这样实现的:
一种数据处理的方法,包括:
获取所述设备计算节点的硬件配置信息,以及所述设备计算节点中二元关系数据的维数;所述设备计算节点包括:设备处理器和设备存储器;
根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数;
根据所述二元关系数据的维数、所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备存储器中二元关系数据的传递闭包。
优选方案中,所述根据设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,包括:获取所述设备存储器的存储状态信息,根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,确定所述设备处理器中线程块的线程数。
优选方案中,所述获取设备存储器的存储状态信息,根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,确定所述设备处理器中线程块的线程数,包括:
所述设备计算节点中统一计算设备架构编译器对所述设备存储器执行监控操作,获取所述设备存储器的存储状态信息;
根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,利用所述设备计算节点上的统一计算设备架构处理器使用率计算器,确定所述设备处理器中线程块的第一线程数;所述第一线程数表示当所述设备处理器使用率达到预设峰值时所述线程块的线程数;
将所述第一线程数作为所述目标线程数。
优选方案中,所述预设峰值为100%。
优选方案中,所述设备计算节点的硬件配置信息包括下述中至少一种:图形处理器计算能力、图形处理器核心数、图形处理器时钟频率。
优选方案中,所述根据二元关系数据的维数确定所述线程块的目标个数,包括:根据所述设备处理器中线程网格的预设划分维度和所述二元关系数据的维数,确定所述线程块的目标个数。
优选方案中,所述根据设备处理器中线程网格的预设划分维度和所述二元关系数据的维数,确定所述线程块的目标个数,包括:
当所述预设划分维度为一维时,所述线程网格被划分为M个线程块,所述M采用下述公式确定:
M=(N+T-1)/T
公式中,N表示所述二元关系数据的维数,T表示所述目标线程数的个数;或者,
当所述预设划分维度为二维时,所述线程网络被划分为M×M个线程块。
优选方案中,所述根据二元关系数据的维数、所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备存储器中二元关系数据的传递闭包,包括:
对所述设备存储器中共享存储器中所述线程块的存储区域进行初始化处理;
当所述预设划分维度为一维时,所述设备处理器对所述设备存储器中的全局存储器或所述初始化后的共享存储器执行访问操作,所述设备处理器中每个线程块计算所述二元关系数据中N×T的传递闭包值,得到所述二元关系数据的传递闭包;或者,当所述预设划分维度为二维时,所述设备处理器对所述设备存储器中的全局存储器或所述初始化后的共享存储器执行访问操作,所述设备处理器中每个线程块计算所述二元关系数据中T×T个元素的传递闭包值,得到所述二元关系数据的传递闭包;N表示所述二元关系数据的维数,T表示所述目标线程数个元素。
优选方案中,所述对设备存储器中共享存储器中所述线程块的存储区域进行初始化处理,包括:
将所述二元关系数据中的第K行或第K列元素按照所述预设划分维度分为M段;
将所述第K行元素中第一列号的元素存储于所述共享存储器中第一线程块的存储区域;或者,将第K列元素中第一行号的元素存储于所述共享存储器中第一线程块的存储区域;第一列号表示所述设备处理器中第一线程块在所述二元关系数据中的列号;第一行号表示所述设备处理器中第一线程块在所述二元关系数据中的行号;所述第K行和第K列分别表示所述二元关系数据中的任意一行和任意一列;M表示所述线程块的目标个数。
一种数据处理的系统,所述系统,包括:主机控制节点和多个设备计算节点;其中,
所述主机控制节点,用于生成二元关系数据,将所述二元关系数据从所述主机控制节点传输至所述设备计算节点;
所述设备计算节点,用于接收所述主机控制节点传输的所述二元关系数据,获取所述设备计算节点的硬件配置信息,以及所述设备节点中二元关系数据的维数,根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数,根据所述二元关系数据的维数以及所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备计算节点中二元关系数据的传递闭包。
优选方案中,所述主机控制节点包括:主机处理器和主机存储器;其中,
所述主机处理器,用于生成二元关系数据,将所述二元关系数据从所述主机存储器传输至设备计算节点;还用于访问和读取所述主机存储器中的二元关系数据;
所述主机存储器,用于存储所述主机处理器生成的二元关系数据。
优选方案中,所述设备计算节点包括:设备处理器和设备存储器;其中,
所述设备处理器,用于接收所述主机控制节点传输的所述二元关系数据,获取所述设备计算节点的硬件配置信息,以及所述设备节点中二元关系数据的维数,根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数,根据所述二元关系数据的维数以及所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备存储器中二元关系数据的传递闭包;还用于访问和读取所述设备存储器中的二元关系数据;
所述设备存储器,用于存储所述设备处理器处理的二元关系数据。
本申请实施例提供了一种数据处理的方法及系统,根据设备计算节点的硬件配置信息和二元关系数据的维数,对设备处理器中线程块和线程数进行合理划分。从而,每个线程块中所有线程同时访问存储器,可以对二元关系数据的传递闭包进行并行计算,可以提高计算二元关系传递闭包的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一种数据处理的方法实施例的流程图;
图2是本申请实施例中三种类型的二元关系矩阵和与其相关联的二元关系构造示意图;
图3是本申请实施例中预设划分维度为一维时设备计算节点接收的计算任务的划分示意图;
图4是本申请实施例中预设划分维度为二维时设备计算节点接收的计算任务的划分示意图;
图5是本申请实施例中本申请的方法与现有技术的方法计算二元关系矩阵的传递闭包的速度比随二元关系矩阵维数的变化示意图;
图6是本申请数据处理的系统实施例的组成结构图;
图7是本申请数据处理的系统实施例中主机控制节点的结构示意图;
图8是本申请数据处理的系统实施例中设备计算节点的结构示意图。
具体实施方式
本申请实施例提供一种数据处理的方法及系统。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1是本申请一种数据处理的方法实施例的流程图。如图1所示,所述数据处理的方法,包括以下步骤。
步骤S101:获取所述设备计算节点的硬件配置信息,以及所述设备计算节点中二元关系数据的维数。
所述二元关系数据可以是具有N个元素的有限集上的二元关系的关系矩阵,即二元关系矩阵。
所述设备计算节点可以是台式计算机、平板电脑或手机。所述设备计算节点可以包括:设备处理器和设备存储器。所述设备存储器可以包括:共享存储器和全局存储器。所述设备处理器可以为图形处理器(Graphic Processing Unit,GPU)。所述GPU型号可以为Quadro K2000。
统一计算设备架构(Compute Unified Device Architecture,CUDA)是用于GPU计算的开发环境,可以用于解决商业、工业以及科学方面的复杂计算问题。
通过装载于所述设备计算节点中的CUDA设备查询示例程序对所述设备计算节点进行查询操作,可以获取所述设备计算节点的硬件配置信息。通过读取所述二元关系矩阵,可以获取所述二元关系矩阵的维数信息。所述设备计算节点的硬件配置信息可以包括下述中至少一种:GPU计算能力、GPU核心数、GPU时钟频率。
在一种实施方式中,可以在主机控制节点中生成所述二元关系矩阵。可以将所述二元关系矩阵从所述主机控制节点传输至所述设备控制节点中的设备存储器。所述生成的二元关系矩阵保存于所述主机控制节点的存储器中。所述二元关系矩阵的维数可以为N。
所述主机控制节点可以是台式计算机、平板电脑或手机。所述主机控制节点可以包括:主机处理器和主机存储器。
例如,图2是本申请实施例中三种类型的二元关系矩阵和与其相关联的二元关系构造示意图。图2中(a)、(b)和(c)分别为第一种、第二种和第三种二元关系矩阵及其相关联的二元关系构造示意图。如图2所示,第一种和第二种二元关系矩阵分别为具体一定特征的两种类型的二元关系矩阵。第三种二元关系矩阵是以系统时间为随机种子,按照非零元个数来随机生成的。非零元个数反映了关系矩阵的稀疏程度。这三种二元关系矩阵的维数都为5。
步骤S102:根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数。
具体地,可以获取所述设备存储器的存储状态信息。根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,可以确定所述设备处理器中线程块的线程数。根据所述二元关系数据的维数,可以确定所述线程块的目标个数。
进一步地,所述获取设备存储器的存储状态信息,根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,确定所述设备处理器中线程块的线程数,可以包括:所述设备计算节点中统一计算设备架构编译器对所述设备存储器执行监控操作,可以获取所述设备存储器的存储状态信息;根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,利用所述设备计算节点上的统一计算设备架构处理器使用率计算器,可以确定所述设备处理器中线程块的第一线程数。可以将所述第一线程数作为所述目标线程数。其中,所述第一线程数可以表示当所述设备处理器使用率达到预设峰值时所述线程块的线程数。所述预设峰值可以为100%。所述目标线程数的个数可以用T来表示。
进一步地,所述根据二元关系数据的维数确定所述线程块的目标个数,可以包括:根据所述设备处理器中线程网格的预设划分维度和所述二元关系数据的维数,可以确定所述线程块的目标个数。进一步地,所述线程网格的预设划分维度可以为一维或二维。
进一步地,所述根据设备处理器中线程网格的预设划分维度和所述二元关系数据的维数,确定所述线程块的目标个数,可以包括:当所述预设划分维度为一维时,所述线程网格被划分为M个线程块,所述M可以采用下述公式确定:
M=(N+T-1)/T (1)
公式(1)中,N表示所述二元关系数据的维数,T表示所述目标线程数的个数;或者,当所述预设划分维度为二维时,所述线程网络被划分为M×M个线程块。
例如,图3是本申请实施例中预设划分维度为一维时设备计算节点接收的计算任务的划分示意图。图4是本申请实施例中预设划分维度为二维时设备计算节点接收的计算任务的划分示意图。如图3所示,当预设划分维度为一维时,每个线程块负责二元关系数据中T列元素的计算任务,每个线程块中每个线程负责一列计算任务,即二元关系数据中N个元素的计算任务。在这种情况下,由于设备计算节点中共享存储器的存储容量的大小有限,当N大于预设维数时,设备处理器可能无法访问和读写共享存储器,仅能访问和读写设备计算节点中的全局存储器。所述预设维数可以为12288。如图4所示,当预设划分维度为二维时,每个线程块可以负责二元关系数据中T×T个元素的计算任务,每个线程块中每个线程可以负责二元关系数据中T个元素的计算任务。在这种情况下,设备处理器中线程块的计算区域不依赖于N的大小,可以访问和读写共享存储器。
步骤S103:根据所述二元关系数据的维数、所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备存储器中二元关系数据的传递闭包。
具体地,可以对所述设备存储器中共享存储器中所述线程块的存储区域进行初始化处理。当所述预设划分维度为一维时,所述设备处理器对所述设备存储器中的全局存储器或所述初始化后的共享存储器执行访问操作,所述设备处理器中每个线程块可以计算所述二元关系数据中N×T的传递闭包值,得到所述二元关系数据的传递闭包。或者,当所述预设划分维度为二维时,所述设备处理器对所述设备存储器中的全局存储器或所述初始化后的共享存储器执行访问操作,所述设备处理器中每个线程块可以计算所述二元关系数据中T×T个元素的传递闭包值,得到所述二元关系数据的传递闭包。其中,N表示所述二元关系数据的维数,T表示所述目标线程数个元素。
进一步地,所述对设备存储器中的共享存储器中所述线程块的存储区域进行初始化处理,可以包括:可以将所述二元关系数据中的第K行或第K列元素按照所述预设划分维度划分为M段;可以将所述第K行元素中第一列号的元素存储于所述共享存储器中第一线程块的存储区域;或者,可以将第K列元素中第一行号的元素存储于所述共享存储器中第一线程块的存储区域。第一列号可以表示所述设备处理器中第一线程块在所述二元关系数据中的列号。第一行号可以表示所述设备处理器中第一线程块在所述二元关系数据中的行号。所述第K行和第K列可以分别表示所述二元关系数据中的任意一行和任意一列。M可以表示所述线程块的目标个数。由此,可以保证每一个线程块中所有线程同时访问共享存储器,并可以读取正确的数据。
例如,表1是分别采用现有技术和本申请方法计算二元关系矩阵的传递闭包的计算性能对比。Warshall表示现有技术中的计算方法,Ker1表示本申请中预设划分维度为一维时的计算方法,Ker2表示本申请中预设划分维度为二维时的计算方法。从表1中可以看出,本申请中Ker1的计算效率比现有技术中Warshall的计算效率有显著的提升,可以体现基于GPU较强的并行计算能力。本申请中Ker2的计算效率也比现有技术中Warshall的计算效率有显著的提升。同时,相比本申请中Ker1,本申请中Ker2的计算效率更高,这是因为共享存储器的访问速度比全局存储器的访问速度快,在计算过程中,Ker2可以使用共享存储器,而Ker1仅能使用全局存储器。因此,通过对线程网格进行合理划分,可以有效减少设备处理器对全局存储器的访问次数,从而提高计算效率。
表1分别采用现有技术和本申请方法计算二元关系矩阵的传递闭包的计算时间对比
图5是本申请实施例中本申请的方法与现有技术的方法计算二元关系矩阵的传递闭包的速度比随二元关系矩阵维数的变化示意图。图5中Ker1表示本申请中预设划分维度为一维时的计算方法,Ker2表示本申请中预设划分维度为二维时的计算方法。如图5所示,本申请中Ker1的计算速度可以是现有技术中Warshall的计算速度的20~30倍。本申请中Ker2的计算速度可以是现有技术中Warshall的计算速度的40~50倍。
所述数据处理的方法实施例,根据GPU的硬件配置信息、线程网格的预设划分维度和二元关系矩阵的维数,对GPU中线程块和线程数进行合理划分。从而,每个线程块中所有线程同时访问存储器,可以对二元关系矩阵的传递闭包进行并行计算,可以提高计算二元关系传递闭包的效率。
图6是本申请数据处理的系统实施例的组成结构图。如图6所示,所述数据处理的系统,可以包括:主机控制节点100和多个设备计算节点200。
所述主机控制节点100可以是一个独立的服务器。所述主机控制节点100具体可以是台式计算机、平板电脑或手机。
所述主机控制节点100,可以用于生成二元关系数据,将所述二元关系数据从所述主机控制节点传输至所述设备计算节点。
所述设备计算节点200可以是一台计算机,也可以是多台计算机组成的子集群。
所述设备计算节点200,可以用于接收所述主机控制节点传输的所述二元关系数据,获取所述设备计算节点的硬件配置信息,以及所述设备节点中二元关系数据的维数,根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数,根据所述二元关系数据的维数以及所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备计算节点中二元关系数据的传递闭包。
图7是本申请数据处理的系统实施例中主机控制节点的结构示意图。如图7所示,图6中主机控制节点100可以包括:主机处理器110和主机存储器120。
所述主机处理器110,可以用于生成二元关系数据,将所述二元关系数据从所述主机存储器传输至设备计算节点;还可以用于访问和读取所述主机存储器中的二元关系数据。
在一种实施方式中,所述主机处理器110可以按任何适当的方式实现。例如,所述主机处理器110可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本申请并不作限定。
所述主机存储器120,可以用于存储所述主机处理器生成的二元关系数据。
图8是本申请数据处理的系统实施例中设备计算节点的结构示意图。如图8所示,图6中设备计算节点200可以包括:设备处理器210和设备存储器220。
所述设备处理器210,可以用于接收所述主机控制节点传输的所述二元关系数据,获取所述设备计算节点的硬件配置信息,以及所述设备节点中二元关系数据的维数,根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数,根据所述二元关系数据的维数以及所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备存储器中二元关系数据的传递闭包;还可以用于访问和读取所述设备存储器中的二元关系数据。
在一种实施方式中,所述设备处理器210可以按任何适当的方式实现。例如,所述设备处理器210可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本申请并不作限定。
所述设备存储器220,可以用于存储所述设备处理器处理的二元关系数据。
所述数据处理的系统实施例与所述数据处理的方法实施例相对应,可以实现每个线程块中所有线程同时访问存储器,可以对二元关系矩阵的传递闭包进行并行计算,可以提高计算二元关系传递闭包的效率。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。该计算机软件产品可以包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。该计算机软件产品可以存储在内存中,内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括短暂电脑可读媒体(transitory media),如调制的数据信号和载波。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。
Claims (12)
1.一种数据处理的方法,其特征在于,包括:
获取所述设备计算节点的硬件配置信息,以及所述设备计算节点中二元关系数据的维数;所述设备计算节点包括:设备处理器和设备存储器;
根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数;
根据所述二元关系数据的维数、所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备存储器中二元关系数据的传递闭包。
2.根据权利要求1所述的一种数据处理的方法,其特征在于,所述根据设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,包括:获取所述设备存储器的存储状态信息,根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,确定所述设备处理器中线程块的线程数。
3.根据权利要求2所述的一种数据处理的方法,其特征在于,所述获取设备存储器的存储状态信息,根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,确定所述设备处理器中线程块的线程数,包括:
所述设备计算节点中统一计算设备架构编译器对所述设备存储器执行监控操作,获取所述设备存储器的存储状态信息;
根据所述设备计算节点的硬件配置信息和所述设备存储器的存储状态信息,利用所述设备计算节点上的统一计算设备架构处理器使用率计算器,确定所述设备处理器中线程块的第一线程数;所述第一线程数表示当所述设备处理器使用率达到预设峰值时所述线程块的线程数;
将所述第一线程数作为所述目标线程数。
4.根据权利要求3所述的一种数据处理的方法,其特征在于,所述预设峰值为100%。
5.根据权利要求2所述的一种数据处理的方法,其特征在于,所述设备计算节点的硬件配置信息包括下述中至少一种:图形处理器计算能力、图形处理器核心数、图形处理器时钟频率。
6.根据权利要求1所述的一种数据处理的方法,其特征在于,所述根据二元关系数据的维数确定所述线程块的目标个数,包括:根据所述设备处理器中线程网格的预设划分维度和所述二元关系数据的维数,确定所述线程块的目标个数。
7.根据权利要求6所述的一种数据处理的方法,其特征在于,所述根据设备处理器中线程网格的预设划分维度和所述二元关系数据的维数,确定所述线程块的目标个数,包括:
当所述预设划分维度为一维时,所述线程网格被划分为M个线程块,所述M采用下述公式确定:
M=(N+T-1)/T
公式中,N表示所述二元关系数据的维数,T表示所述目标线程数的个数;或者,
当所述预设划分维度为二维时,所述线程网络被划分为M×M个线程块。
8.根据权利要求1所述的一种数据处理的方法,其特征在于,所述根据二元关系数据的维数、所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备存储器中二元关系数据的传递闭包,包括:
对所述设备存储器中共享存储器中所述线程块的存储区域进行初始化处理;
当所述预设划分维度为一维时,所述设备处理器对所述设备存储器中的全局存储器或所述初始化后的共享存储器执行访问操作,所述设备处理器中每个线程块计算所述二元关系数据中N×T的传递闭包值,得到所述二元关系数据的传递闭包;或者,当所述预设划分维度为二维时,所述设备处理器对所述设备存储器中的全局存储器或所述初始化后的共享存储器执行访问操作,所述设备处理器中每个线程块计算所述二元关系数据中T×T个元素的传递闭包值,得到所述二元关系数据的传递闭包;N表示所述二元关系数据的维数,T表示所述目标线程数个元素。
9.根据权利要求8所述的一种数据处理的方法,其特征在于,所述对设备存储器中共享存储器中所述线程块的存储区域进行初始化处理,包括:
将所述二元关系数据中的第K行或第K列元素按照所述预设划分维度分为M段;
将所述第K行元素中第一列号的元素存储于所述共享存储器中第一线程块的存储区域;或者,将第K列元素中第一行号的元素存储于所述共享存储器中第一线程块的存储区域;第一列号表示所述设备处理器中第一线程块在所述二元关系数据中的列号;第一行号表示所述设备处理器中第一线程块在所述二元关系数据中的行号;所述第K行和第K列分别表示所述二元关系数据中的任意一行和任意一列;M表示所述线程块的目标个数。
10.一种数据处理的系统,其特征在于,所述系统,包括:主机控制节点和多个设备计算节点;其中,
所述主机控制节点,用于生成二元关系数据,将所述二元关系数据从所述主机控制节点传输至所述设备计算节点;
所述设备计算节点,用于接收所述主机控制节点传输的所述二元关系数据,获取所述设备计算节点的硬件配置信息,以及所述设备节点中二元关系数据的维数,根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数,根据所述二元关系数据的维数以及所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备计算节点中二元关系数据的传递闭包。
11.根据权利要求10所述的一种数据处理的系统,其特征在于,所述主机控制节点包括:主机处理器和主机存储器;其中,
所述主机处理器,用于生成二元关系数据,将所述二元关系数据从所述主机存储器传输至设备计算节点;还用于访问和读取所述主机存储器中的二元关系数据;
所述主机存储器,用于存储所述主机处理器生成的二元关系数据。
12.根据权利要10所述的一种数据处理的系统,其特征在于,所述设备计算节点包括:设备处理器和设备存储器;其中,
所述设备处理器,用于接收所述主机控制节点传输的所述二元关系数据,获取所述设备计算节点的硬件配置信息,以及所述设备节点中二元关系数据的维数,根据所述设备计算节点的硬件配置信息确定所述设备处理器中线程块的目标线程数,以及根据所述二元关系数据的维数确定所述线程块的目标个数,根据所述二元关系数据的维数以及所述设备处理器中线程块的目标线程数和所述线程块的目标个数,计算所述设备存储器中二元关系数据的传递闭包;还用于访问和读取所述设备存储器中的二元关系数据;
所述设备存储器,用于存储所述设备处理器处理的二元关系数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611202952.7A CN106844022A (zh) | 2016-12-23 | 2016-12-23 | 一种数据处理的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611202952.7A CN106844022A (zh) | 2016-12-23 | 2016-12-23 | 一种数据处理的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106844022A true CN106844022A (zh) | 2017-06-13 |
Family
ID=59135148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611202952.7A Pending CN106844022A (zh) | 2016-12-23 | 2016-12-23 | 一种数据处理的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844022A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554923A (zh) * | 2019-09-09 | 2019-12-10 | 吕春燕 | 一种用于云计算的分布链式计算资源的优化方法及系统 |
CN114020333A (zh) * | 2021-10-18 | 2022-02-08 | 珠海市芯动力科技有限公司 | Cuda多线程处理方法、系统及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937425A (zh) * | 2009-07-02 | 2011-01-05 | 北京理工大学 | 基于gpu众核平台的矩阵并行转置方法 |
CN102662641A (zh) * | 2012-04-16 | 2012-09-12 | 浙江工业大学 | 一种基于cuda的种子分布数据并行获取方法 |
-
2016
- 2016-12-23 CN CN201611202952.7A patent/CN106844022A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937425A (zh) * | 2009-07-02 | 2011-01-05 | 北京理工大学 | 基于gpu众核平台的矩阵并行转置方法 |
CN102662641A (zh) * | 2012-04-16 | 2012-09-12 | 浙江工业大学 | 一种基于cuda的种子分布数据并行获取方法 |
Non-Patent Citations (1)
Title |
---|
欧阳艾嘉: ""基于GPU的并行智能算法"", 《中国学位论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554923A (zh) * | 2019-09-09 | 2019-12-10 | 吕春燕 | 一种用于云计算的分布链式计算资源的优化方法及系统 |
CN114020333A (zh) * | 2021-10-18 | 2022-02-08 | 珠海市芯动力科技有限公司 | Cuda多线程处理方法、系统及相关设备 |
CN114020333B (zh) * | 2021-10-18 | 2022-05-31 | 珠海市芯动力科技有限公司 | Cuda多线程处理方法、系统及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210374610A1 (en) | Efficient duplicate detection for machine learning data sets | |
US10452992B2 (en) | Interactive interfaces for machine learning model evaluations | |
US10546021B2 (en) | Adjacency structures for executing graph algorithms in a relational database | |
US10242061B2 (en) | Distributed execution of expressions in a query | |
CN107395665A (zh) | 一种区块链业务受理及业务共识方法及装置 | |
US10169412B2 (en) | Selectivity estimation for query execution planning in a database | |
CN107016604A (zh) | 缓冲记账的方法、装置及设备 | |
CN108959510B (zh) | 一种分布式数据库的分区级连接方法和装置 | |
Whitby et al. | Geowave: Utilizing distributed key-value stores for multidimensional data | |
CN107644286A (zh) | 工作流处理方法及装置 | |
US11163743B2 (en) | Enhancements for optimizing query executions | |
US20160378754A1 (en) | Fast query processing in columnar databases with gpus | |
CN108170656A (zh) | 模板创建方法、文档创建方法、渲染方法和装置 | |
CN107391537A (zh) | 数据关系模型的生成方法、装置及设备 | |
CN107016039A (zh) | 数据库写入的方法和数据库系统 | |
CN106844022A (zh) | 一种数据处理的方法及系统 | |
WO2019147441A1 (en) | Wide key hash table for a graphics processing unit | |
US11693858B2 (en) | Access path optimization | |
TWI758223B (zh) | 具有動態最小批次尺寸之運算方法,以及用於執行該方法之運算系統及電腦可讀儲存媒體 | |
WO2023029155A1 (zh) | 一种Spark GraphX参数调优方法、装置、电子设备及存储介质 | |
CN107580053A (zh) | 数据展示方法、装置、客户端及系统 | |
WO2013159272A1 (en) | Statistical analysis using graphics processing unit | |
CN107463572A (zh) | 一种数据处理系统、方法及装置 | |
US10176607B2 (en) | Interactive pattern detection in data sets | |
CN106990944A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |