CN105700913B - 一种轻量级裸片代码的并行运行方法 - Google Patents
一种轻量级裸片代码的并行运行方法 Download PDFInfo
- Publication number
- CN105700913B CN105700913B CN201511032025.0A CN201511032025A CN105700913B CN 105700913 B CN105700913 B CN 105700913B CN 201511032025 A CN201511032025 A CN 201511032025A CN 105700913 B CN105700913 B CN 105700913B
- Authority
- CN
- China
- Prior art keywords
- thread
- sub
- code
- parallel running
- parallel
- 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.)
- Active
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种轻量级裸片代码的创建及并行运行方法,包括:父线程执行至需并行运行的代码处,获取用户要求并发的线程数以及用户是否需要线程同步的信息,并对公用计数器进行初始化;计算并行运行代码块的起始位置和结束位置;获取所需的环境信息;根据用户要求并发的线程数和用户是否需要线程同步的信息创建子线程;子线程获取由父线程传入的所需的环境信息,然后配置子线程的环境;根据用户是否需要线程同步的信息,决定由子线程采用公用计数器单独执行并行运行的代码或者由子线程和父线程采用公用计数器共同执行并行运行的代码。本发明具有程序编写的成本低且并行程序的运行效率高的优点,可广泛用于计算机程序领域。
Description
技术领域
本发明涉及计算机程序领域,尤其是一种轻量级裸片代码的并行运行方法。
背景技术
当今多核处理器已经普及,在硬件发展迅猛的时代,CPU通过增加核数,而非仅增加频率来提高其运算效率,这对程序的并行运行度提出了更高的要求。传统的轻量级裸片代码的并行运行方法通过函数形式的多线程来实现,但多线程的编程过程较为繁琐,程序员在程序编写时,必须将轻量级裸片代码的并行部分封闭到独立函数,且还要进行繁琐的参数传递、任务分配、线程创建、调用和同步等过程,程序编写的成本高且并行程序的运行效率低。
如何做到既提高并行程序的运行效率,又降低多线程程序的编写成本是并行程序设计领域的重要课题,该课题对于那些需要实时、高效运行程序的环境尤为重要。
发明内容
为解决上述技术问题,本发明的目的在于:提供一种程序编写的成本低且并行程序的运行效率高的,轻量级裸片代码的并行运行方法。
本发明解决其技术问题所采取的技术方案是:
一种轻量级裸片代码的并行运行方法,包括:
S1、父线程执行至需并行运行的代码处,获取用户要求并发的线程数以及用户是否需要线程同步的信息,并对公用计数器进行初始化;
S2、计算并行运行代码块的起始位置和结束位置;
S3、获取所需的环境信息;
S4、根据用户要求并发的线程数和用户是否需要线程同步的信息创建子线程;
S5、子线程获取由父线程传入的所需的环境信息,然后配置子线程的环境;
S6、根据用户是否需要线程同步的信息,决定由子线程采用公用计数器单独执行并行运行的代码或者由子线程和父线程采用公用计数器共同执行并行运行的代码。
其中,子线程采用公用计数器单独执行并行运行的代码时,各个子线程都需执行完一次并行运行代码块的代码,此时,并行运行代码块将需要重复执行多次的代码分配给各个子线程来并行执行。
子线程和父线程采用公用计数器共同执行并行运行的代码,父线程和各个子线程都需执行完一次并行运行代码块的代码,此时,并行运行代码块将需要重复执行多次的代码分配给父线程和各个子线程来并行执行。
进一步,所述所需的环境信息包括但不限于父线程当前函数的所有变量、并行运行代码块的起始位置和结束位置。
进一步,所述步骤S1,其包括:
S11、父线程按照单线程的方式执行到需要并行运行的代码处;
S12、获取用户要求并发的线程数以及用户是否需要线程同步的信息,并对公用计数器进行初始化;
进一步,在所述步骤S12,其包括:
父线程获取用户要求并发的线程数以及用户是否需要线程同步的信息;
父线程设定公用计数器的类型、变量名和初始值,并修改公用计数器所采用的函数;
父线程设定线程任务继续执行的条件;
父线程设定线程执行并行运行代码块的代码前需执行的额外代码;
父线程设定所需的参数或用逗号分隔的参数组。
进一步,所述步骤S4,其具体为:
若用户需要线程同步,则创建n-1个子线程;反之,则创建n个子线程,其中,n为用户要求并发的线程数。
进一步,所述步骤S5,其包括:
S51、子线程获取由父线程传入的所需的环境信息;
S52、子线程根据获得的环境信息配置本子线程的变量信息,以使本子线程获得父线程的变量快照;
S53、子线程跳转至并行运行代码块的起始位置。
进一步,所述步骤S6,其具体为:
若用户需要线程同步,则父线程与创建的n-1个子线程等价,父线程执行完一次并行运行代码块的代码至并行运行代码块的结束位置后,等待n-1个子线程分别采用公用计数器执行完一次并行运行代码块的代码;反之,则父线程与创建的n个子线程异步,父线程直接跳转至并行运行代码块的结束位置,等待n个子线程分别采用公用计数器执行完一次并行运行代码块的代码。
进一步,所述n-1个子线程分别采用公用计数器执行完一次并行运行代码块的代码或n个子线程分别采用公用计数器执行完一次并行运行代码块的代码这一步骤,其包括:
S61、以n-1个子线程或n个子线程中的任一子线程作为当前子线程,判断公用计数器是否被其他子线程或父线程锁定,若是,则当前子线程进入阻塞等待状态,直至公用计数器被解锁后执行步骤S62,反之,则当前子线程直接执行步骤S62;
S62、当前子线程锁定公用计数器;
S63、判断公用计数器是否符合设定的退出规则,若是,则当前子线程解锁公用计数器并跳转至并行运行代码块的结束位置,反之,则当前子线程执行步骤S64;
S64、当前子线程获得公用计数器的副本,并以获得的副本的值作为当前子线程本轮的计数器值;
S65、当前子线程采用计数器修改函数修改公用计数器,然后解除公用计数器的锁定;
S66、当前子线程以当前子线程本轮的计数器值作为计数器的值,执行完一次并行运行代码块的代码,然后以下一个子线程作为当前子线程返回步骤S61。
进一步,在所述步骤S5之后还设有步骤S6,所述步骤S6,其具体为:父线程执行并行运行代码块后的其它代码,并在执行完毕后释放所占的资源。
进一步,当用户需要线程同步时,所述父线程与子线程的堆内存空间是共享的而栈空间是独立的。
本发明的有益效果是:根据用户是否需要线程同步的信息,决定由子线程采用公用计数器单独执行并行运行的代码或者由子线程和父线程采用公用计数器共同执行并行运行的代码,采用了非函数形式的多线程并行运行方法,在不需为集成开发环境安装任何辅助插件的前提下,令编程人员可以并行化执行运行代码块的代码片段,不再需要传统的将代码封装至函数的繁琐执行方式,有效地提高了多线程程序的编写效率和成本;采用公用计数器来控制多线程并行运行的执行流程,可以把并行运行代码块中一个循环的不同执行遍数均衡分派到多个线程中执行,提高了并行程序的运行效率。进一步,父线程与子线程的堆内存空间是共享的而栈空间是独立的,对每个并行的线程来说,堆是共享的而栈是独立的,既保证了数据的共享性,又维护了线程的独立性。
附图说明
图1为本发明一种轻量级裸片代码的并行运行方法的整体流程图;
图2为本发明实施例一中父线程与子线程的步骤流程图;
图3为本发明实施例一内存空间的结构图;
图4为本发明实施例一正在运行的线程示意图;
图5为本发明实施例一多条相似线程的示意图;
图6为本发明实施例一同步单级发射的运行过程示意图;
图7为本发明实施例一异步单级发射的运行过程示意图;
图8为本发明实施例一同步多级发射的运行过程示意图;
图9为本发明实施例一异步多级发射的运行过程示意图;
图10为本发明实施例二的单线程与4线程耗时对比图;
图11是本发明实施例二的相对加速对比图。
具体实施方式
参照图1,一种轻量级裸片代码的并行运行方法,包括:
S1、父线程执行至需并行运行的代码处,获取用户要求并发的线程数以及用户是否需要线程同步的信息,并对公用计数器进行初始化;
S2、计算并行运行代码块的起始位置和结束位置;
S3、获取所需的环境信息;
S4、根据用户要求并发的线程数和用户是否需要线程同步的信息创建子线程;
S5、子线程获取由父线程传入的所需的环境信息,然后配置子线程的环境;
S6、根据用户是否需要线程同步的信息,决定由子线程采用公用计数器单独执行并行运行的代码或者由子线程和父线程采用公用计数器共同执行并行运行的代码。
进一步作为优选的实施方式,所述所需的环境信息包括但不限于父线程当前函数的所有变量、并行运行代码块的起始位置和结束位置。
进一步作为优选的实施方式,所述步骤S1,其包括:
S11、父线程按照单线程的方式执行到需要并行运行的代码处;
S12、获取用户要求并发的线程数以及用户是否需要线程同步的信息,并对公用计数器进行初始化;
进一步作为优选的实施方式,在所述步骤S12,其包括:
父线程获取用户要求并发的线程数以及用户是否需要线程同步的信息;
父线程设定公用计数器的类型、变量名和初始值,并修改公用计数器所采用的函数;
父线程设定线程任务继续执行的条件;
父线程设定线程执行并行运行代码块的代码前需执行的额外代码;
父线程设定所需的参数或用逗号分隔的参数组。
进一步作为优选的实施方式,所述步骤S4,其具体为:
若用户需要线程同步,则创建n-1个子线程;反之,则创建n个子线程,其中,n为用户要求并发的线程数。
进一步作为优选的实施方式,所述步骤S5,其包括:
S51、子线程获取由父线程传入的所需的环境信息;
S52、子线程根据获得的环境信息配置本子线程的变量信息,以使本子线程获得父线程的变量快照;
S53、子线程跳转至并行运行代码块的起始位置。
进一步作为优选的实施方式,所述步骤S6,其具体为:
若用户需要线程同步,则父线程与创建的n-1个子线程等价,父线程执行完一次并行运行代码块的代码至并行运行代码块的结束位置后,等待n-1个子线程分别采用公用计数器执行完一次并行运行代码块的代码;反之,则父线程与创建的n个子线程异步,父线程直接跳转至并行运行代码块的结束位置,等待n个子线程分别采用公用计数器执行完一次并行运行代码块的代码。
进一步作为优选的实施方式,所述n-1个子线程分别采用公用计数器执行完一次并行运行代码块的代码或n个子线程分别采用公用计数器执行完一次并行运行代码块的代码这一步骤,其包括:
S61、以n-1个子线程或n个子线程中的任一子线程作为当前子线程,判断公用计数器是否被其他子线程或父线程锁定,若是,则当前子线程进入阻塞等待状态,直至公用计数器被解锁后执行步骤S62,反之,则当前子线程直接执行步骤S62;
S62、当前子线程锁定公用计数器;
S63、判断公用计数器是否符合设定的退出规则,若是,则当前子线程解锁公用计数器并跳转至并行运行代码块的结束位置,反之,则当前子线程执行步骤S64;
S64、当前子线程获得公用计数器的副本,并以获得的副本的值作为当前子线程本轮的计数器值;
S65、当前子线程采用计数器修改函数修改公用计数器,然后解除公用计数器的锁定;
S66、当前子线程以当前子线程本轮的计数器值作为计数器的值,执行完一次并行运行代码块的代码,然后以下一个子线程作为当前子线程返回步骤S61。
进一步作为优选的实施方式,在所述步骤S5之后还设有步骤S6,所述步骤S6,其具体为:父线程执行并行运行代码块后的其它代码,并在执行完毕后释放所占的资源。
进一步作为优选的实施方式,当用户需要线程同步时,所述父线程与子线程的堆内存空间是共享的而栈空间是独立的。
下面结合说明书附图和具体实施例对本发明作进一步详细说明。
实施例一
参照图2-9,本发明的第一实施例:
本发明提出了一个非函数形式的多线程并行运行方法,在不用为集成开发环境安装任何辅助插件的前提下,令编程人员可以像普通的for或while语句一样,并行化执行代码片段,而不再需要使用传统将代码封装至函数的繁琐执行方式,有效地提高了多线程程序的编写效率,运行效率与代码易读性。本发明的方法与for语句较为类似,使用公用计数器来控制多线程并行运行的执行流程,通过把一个循环的不同执行遍数均衡分派到多个线程来提高并行程序的运行效率。普通单线程代码中的for或while语句只需要经过简单的替换处理也可使用本发明来进行并行化,本发明具有良好的兼容性和可迁移性。本发明对每个并行的线程来说,堆是共享的而栈是独立的,既保证了数据的共享性,又维护了线程的独立性。此外,本发明还类似于编程的多重循环结构(此处将一个子线程束看做一重循环),既可创建单级并发线程束;而且在cpu核数允许的前提下,也可创建多个嵌套的子线程束。其中,子线程束是由同一父线程创建的所有子线程的集合,用于分流计算负载,以提高程序的并行度。这也极大地增强了并行编程开发的灵活性。
本发明的调用结构如图6、7、8和9所示,而内存管理结构图则如图3所示。由图3可知,对每个并行的线程来说,堆是共享的而栈是独立的。
如图2所示,本发明一种轻量级裸片代码的并行运行方法主要包括父线程处理和子线程处理这两个主要处理过程。下面分别对这两个过程进行详细说明。
(一)父线程处理过程
本实施例的父线程处理过程,主要包括以下步骤:
(1)父线程按照单线程的方式执行至需并行运行的代码处,然后设定如下要素:
1)用户要求并发的线程数n。其中,n为正整数,实际创建的最大线程数量受限于CPU核数和计算机存储及运算资源。故该线程数n依照CPU核数来进行设定,若其数量少于CPU核数则不能充分利用CPU的性能;若其数量多于CPU核数,则将产生CPU线程分时间片执行的状况,随之产生额外运算开销。为保持该方法对用户透明,默认情况下,此参数n设置为CPU核数。
2)公用计数器的数据类型。其中,公用计数器为全局变量,可被父线程与所有子线程访问。
3)公用计数器的变量名。公用计数器,用于对并行运行代码块的执行次数进行控制。
4)公用计数器的初始值。该初始值的类型为公用计数器的数据类型的变量或该类型的常量。
5)任务继续执行的条件。该继续执行的条件的结果值为布尔表达式的值。
6)修改公用计数器的函数,可带参数。
7)线程是否需要同步。线程是否需要同步采用布尔值来表示,默认其为true。
8)每条线程执行并行运行代码块的代码前需执行的额外代码。该要素为可选的要素,默认为空。
9)所需的参数或用逗号分隔的参数组。该要素也为可选的要素。
(2)设定并行运行代码块的起始位置和并行运行代码块的结束位置。
(3)获取必要的环境信息,包括父线程(即当前线程)、当前函数的所有变量以及并行运行代码块的起始位置和结束位置。
(4)若用户需要线程同步,则创建n-1个子线程;若用户需要线程异步,则创建n个子线程。
(5)父线程向子线程传递步骤(3)中获取的环境信息。
(6)若用户需要线程同步,则父线程与步骤(4)创建的子线程等价,此时n-1个子线程分别采用公用计数器执行完一次并行运行代码块的代码,父线程执行完一次并行运行代码块的代码至并行运行代码块的结束位置后,等待直至所有子线程执行完毕;父线程直接跳转至并行运行代码块的结束位置,等待n个子线程分别采用公用计数器执行完一次并行运行代码块的代码。
(7)父线程执行并行运行代码块后的其它代码,并在执行完毕后释放所占的资源。
(二)子线程处理过程
子线程被父线程创建后,将执行以下步骤:
(1)获得由父线程传入的环境信息,包括父线程(即当前线程)当前函数的所有变量、并行运行代码块的起始位置和结束位置。
(2)配置环境,用上一步获得的信息配置本子线程的变量信息,使本子线程获得父线程的变量快照。
(3)跳转至并行运行代码块的起始位置。
(4)如果公用计数器被其他线程锁定,本子线程将会进入阻塞等待状态,直至公用计数器被解锁后再执行步骤(5)。
(5)锁定公用计数器。此后其他线程不可读写该计数器的值。
(6)若公用计数器符合退出规则,则解锁公用计数器并跳转至解锁公用计数器并跳转至并行运行代码块的结束位置,继续执行步骤(12)。
(7)获得公用计数器的副本,并将此副本作为本子线程本轮的计数器值。
(8)使用计数器修改函数修改公用计数器。
(9)解除公用计数器的锁定。
(10)以计数器副本的值作为计数器的值,执行完一次并行运行代码块的代码。
(11)以下一个子线程作为当前子线程跳转至(4)。
(12)执行最后的额外操作(此步骤为可选的步骤)。
(13)结束当前子线程。
实施例二
本实例选取的计算机CPU为2450M的I5处理器,CPU的主频为3.1GHz进行测试。本实施例测试时让并行运行代码块作500*500的矩阵乘法运算,首先测试采用单线程方式运行与并行运行代码块相同的矩阵乘法运算结果,然后采用本发明的并行运行方法(以同步方式启用4线程运行)来进行测试并行运行代码块作500*500的矩阵乘法运算,最后将二者的测试结果进行对比。之后,本实施例又采取同样的方式测试并行运行代码块作1000*1000、1500*1500、2000*2000、2500*2500、3000*3000的矩阵乘法运算对比结果,其中,单线程方式和本发明的方法程序运行时间如图9所示,而相对加速比则如图10所示。从图9和图10可以看出,本发明的方法与单线程方式相比,运行所需的时间更短,运行效率更高。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种轻量级裸片代码的并行运行方法,其特征在于:包括:
S1、父线程执行至需并行运行的代码处,获取用户要求并发的线程数以及用户是否需要线程同步的信息,并对公用计数器进行初始化;
S2、计算并行运行代码块的起始位置和结束位置;
S3、获取所需的环境信息;
S4、根据用户要求并发的线程数和用户是否需要线程同步的信息创建子线程;
S5、子线程获取由父线程传入的所需的环境信息,然后配置子线程的环境;
S6、根据用户是否需要线程同步的信息,决定由子线程采用公用计数器单独执行并行运行的代码或者由子线程和父线程采用公用计数器共同执行并行运行的代码。
2.根据权利要求1所述的一种轻量级裸片代码的并行运行方法,其特征在于:所述所需的环境信息包括但不限于父线程当前函数的所有变量、并行运行代码块的起始位置和结束位置。
3.根据权利要求2所述的一种轻量级裸片代码的并行运行方法,其特征在于:所述步骤S1,其包括:
S11、父线程按照单线程的方式执行到需要并行运行的代码处;
S12、获取用户要求并发的线程数以及用户是否需要线程同步的信息,并对公用计数器进行初始化。
4.根据权利要求3所述的一种轻量级裸片代码的并行运行方法,其特征在于:在所述步骤S12,其包括:
父线程获取用户要求并发的线程数以及用户是否需要线程同步的信息;
父线程设定公用计数器的类型、变量名和初始值,并修改公用计数器所采用的函数;
父线程设定线程任务继续执行的条件;
父线程设定线程执行并行运行代码块的代码前需执行的额外代码;
父线程设定所需的参数或用逗号分隔的参数组。
5.根据权利要求1所述的一种轻量级裸片代码的并行运行方法,其特征在于:所述步骤S4,其具体为:
若用户需要线程同步,则创建n-1个子线程;反之,则创建n个子线程,其中,n为用户要求并发的线程数。
6.根据权利要求5所述的一种轻量级裸片代码的并行运行方法,其特征在于:所述步骤S5,其包括:
S51、子线程获取由父线程传入的所需的环境信息;
S52、子线程根据获得的环境信息配置本子线程的变量信息,以使本子线程获得父线程的变量快照;
S53、子线程跳转至并行运行代码块的起始位置。
7.根据权利要求6所述的一种轻量级裸片代码的并行运行方法,其特征在于:所述步骤S6,其具体为:
若用户需要线程同步,则父线程与创建的n-1个子线程等价,父线程执行完一次并行运行代码块的代码至并行运行代码块的结束位置后,等待n-1个子线程分别采用公用计数器执行完一次并行运行代码块的代码;反之,则父线程与创建的n个子线程异步,父线程直接跳转至并行运行代码块的结束位置,等待n个子线程分别采用公用计数器执行完一次并行运行代码块的代码。
8.根据权利要求7所述的一种轻量级裸片代码的并行运行方法,其特征在于:所述n-1个子线程分别采用公用计数器执行完一次并行运行代码块的代码或n个子线程分别采用公用计数器执行完一次并行运行代码块的代码这一步骤,其包括:
S61、以n-1个子线程或n个子线程中的任一子线程作为当前子线程,判断公用计数器是否被其他子线程或父线程锁定,若是,则当前子线程进入阻塞等待状态,直至公用计数器被解锁后执行步骤S62,反之,则当前子线程直接执行步骤S62;
S62、当前子线程锁定公用计数器;
S63、判断公用计数器是否符合设定的退出规则,若是,则当前子线程解锁公用计数器并跳转至并行运行代码块的结束位置,反之,则当前子线程执行步骤S64;
S64、当前子线程获得公用计数器的副本,并以获得的副本的值作为当前子线程本轮的计数器值;
S65、当前子线程采用计数器修改函数修改公用计数器,然后解除公用计数器的锁定;
S66、当前子线程以当前子线程本轮的计数器值作为计数器的值,执行完一次并行运行代码块的代码,然后以下一个子线程作为当前子线程返回步骤S61。
9.根据权利要求1-8任一项所述的一种轻量级裸片代码的并行运行方法,其特征在于:在所述步骤S5之后还设有步骤S6,所述步骤S6,其具体为:父线程执行并行运行代码块后的其它代码,并在执行完毕后释放所占的资源。
10.根据权利要求1-8任一项所述的一种轻量级裸片代码的并行运行方法,其特征在于:当用户需要线程同步时,所述父线程与子线程的堆内存空间是共享的而栈空间是独立的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032025.0A CN105700913B (zh) | 2015-12-30 | 2015-12-30 | 一种轻量级裸片代码的并行运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032025.0A CN105700913B (zh) | 2015-12-30 | 2015-12-30 | 一种轻量级裸片代码的并行运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105700913A CN105700913A (zh) | 2016-06-22 |
CN105700913B true CN105700913B (zh) | 2018-10-12 |
Family
ID=56226766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511032025.0A Active CN105700913B (zh) | 2015-12-30 | 2015-12-30 | 一种轻量级裸片代码的并行运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105700913B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579306B (zh) * | 2019-09-29 | 2024-02-27 | 北京君正集成电路股份有限公司 | 一种线程设置和线程调度的方法 |
CN118916007A (zh) * | 2023-08-15 | 2024-11-08 | 台州市艾赛康电子有限公司 | 单线程程序并行处理装置 |
CN116821893B (zh) * | 2023-08-31 | 2023-11-28 | 北京华云安信息技术有限公司 | 代码执行方法、装置、电子设备和存储介质 |
CN117076010B (zh) * | 2023-09-15 | 2024-01-19 | 腾讯科技(深圳)有限公司 | 程序模块处理方法、装置、设备及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842769A (zh) * | 2003-08-28 | 2006-10-04 | 美普思科技有限公司 | 用于在多线程微处理器中对并行指令流进行初始化的指令 |
CN101727352A (zh) * | 2009-12-15 | 2010-06-09 | 四川长虹电器股份有限公司 | 一种定时器的实现方法 |
CN102195964A (zh) * | 2010-02-18 | 2011-09-21 | 株式会社理光 | 程序管理系统、程序管理方法、客户端及计算机程序产品 |
CN102236565A (zh) * | 2010-04-30 | 2011-11-09 | 国际商业机器公司 | 用于计算机应用的协作安装的方法和系统 |
US8683462B2 (en) * | 2010-10-22 | 2014-03-25 | Adobe Systems Incorporated | Handling calls to native code in a managed code environment |
CN104794548A (zh) * | 2015-05-11 | 2015-07-22 | 中国科学技术大学 | 一种基于arima模型负荷预测的并行化计算方法 |
-
2015
- 2015-12-30 CN CN201511032025.0A patent/CN105700913B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842769A (zh) * | 2003-08-28 | 2006-10-04 | 美普思科技有限公司 | 用于在多线程微处理器中对并行指令流进行初始化的指令 |
CN101727352A (zh) * | 2009-12-15 | 2010-06-09 | 四川长虹电器股份有限公司 | 一种定时器的实现方法 |
CN102195964A (zh) * | 2010-02-18 | 2011-09-21 | 株式会社理光 | 程序管理系统、程序管理方法、客户端及计算机程序产品 |
CN102236565A (zh) * | 2010-04-30 | 2011-11-09 | 国际商业机器公司 | 用于计算机应用的协作安装的方法和系统 |
US8683462B2 (en) * | 2010-10-22 | 2014-03-25 | Adobe Systems Incorporated | Handling calls to native code in a managed code environment |
CN104794548A (zh) * | 2015-05-11 | 2015-07-22 | 中国科学技术大学 | 一种基于arima模型负荷预测的并行化计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105700913A (zh) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | FlinkCL: An OpenCL-based in-memory computing architecture on heterogeneous CPU-GPU clusters for big data | |
CN101777007B (zh) | 片上多核处理器的并行功能仿真系统及其方法 | |
Tillenius | Superglue: A shared memory framework using data versioning for dependency-aware task-based parallelization | |
US8429394B1 (en) | Reconfigurable computing system that shares processing between a host processor and one or more reconfigurable hardware modules | |
CN105700913B (zh) | 一种轻量级裸片代码的并行运行方法 | |
Tousimojarad et al. | Comparison of three popular parallel programming models on the Intel Xeon Phi | |
Kurzak et al. | Multithreading in the PLASMA Library | |
Wenzel | Shared-memory multiprocessing for interactive theorem proving | |
US11816061B2 (en) | Dynamic allocation of arithmetic logic units for vectorized operations | |
Chiu et al. | Programming Dynamic Task Parallelism for Heterogeneous EDA Algorithms | |
Buono et al. | A lightweight run-time support for fast dense linear algebra on multi-core | |
Tsugane et al. | Multi-tasking execution in PGAS language XcalableMP and communication optimization on many-core clusters | |
US9836323B1 (en) | Scalable hypervisor scheduling of polling tasks | |
DeBuhr et al. | Dashmm: Dynamic adaptive system for hierarchical multipole methods | |
CN103049305A (zh) | 针对龙芯多核cpu模拟的动态代码转换的多线程化方法 | |
Wolf et al. | Kokkos/qthreads task-parallel approach to linear algebra based graph analytics | |
Valero et al. | Towards a more efficient use of gpus | |
Baskaran et al. | Decentralized offload-based execution on memory-centric compute cores | |
Lai et al. | ShmStreaming: A shared memory approach for improving Hadoop streaming performance | |
Szugyi et al. | Towards a multicore C++ standard template library | |
US20130166887A1 (en) | Data processing apparatus and data processing method | |
Ha et al. | D2. 3 power models, energy models and libraries for energy-efficient concurrent data structures and algorithms | |
Cardosi et al. | Specx: a C++ task-based runtime system for heterogeneous distributed architectures | |
Li et al. | XeFlow: Streamlining inter-processor pipeline execution for the discrete CPU-GPU platform | |
KR101448861B1 (ko) | 동기적 메시지 기반 대량 병렬처리 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |