CN104793922A - 一种大整数乘法Comba算法基于OpenMP的并行实现方法 - Google Patents
一种大整数乘法Comba算法基于OpenMP的并行实现方法 Download PDFInfo
- Publication number
- CN104793922A CN104793922A CN201510220528.4A CN201510220528A CN104793922A CN 104793922 A CN104793922 A CN 104793922A CN 201510220528 A CN201510220528 A CN 201510220528A CN 104793922 A CN104793922 A CN 104793922A
- Authority
- CN
- China
- Prior art keywords
- hpl
- lpl
- algorithm
- intermediate result
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000004364 calculation method Methods 0.000 claims abstract description 27
- 238000003491 array Methods 0.000 claims description 9
- 238000002474 experimental method Methods 0.000 claims description 9
- 230000011218 segmentation Effects 0.000 claims description 3
- 239000000654 additive Substances 0.000 abstract 5
- 230000000996 additive effect Effects 0.000 abstract 5
- 238000012360 testing method Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000001027 hydrothermal synthesis Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Abstract
本发明公开了一种大整数乘法Comba算法基于OpenMP的并行实现方法,基于64位无符号长整型整数操作,通过添加三个临时数组存储加乘操作计算得到的中间结果,从而解决加乘运算与进位运算的数据相关性,将加乘操作与进位操作分开执行。在加乘操作阶段,基于中间结果每个数位求取时的计算独立性,通过OpenMP多线程编程采用动态调度策略实现加乘操作阶段的并行化,而进位阶段仍然串行执行来并行化Comba算法,提高算法效率。
Description
技术领域
本发明涉及一种大整数乘法Comba算法基于OpenMP)Open Multi-Processing,一种开源多核并行技术)的并行实现方法,该方法通过开启多个线程并行计算,提高计算机多核利用率,从而提高算法效率。
背景技术
大整数乘法是大整数运算的核心运算之一,大多数公钥加密系统算法包括像RSA、ECC、Diffie-Hellman等中,都要用到大整数乘法,Comba算法则是当大整数数位较小时调用的重要底层算法。其算法复杂性在于大量的加乘运算以及进位运算,当数据达到一定规模时,将消耗大量的内存空间和计算时间。Comba算法作为重要的大整数底层乘法运算如果能够提高运行速度,整个计算的运行效率将会大大改善,在实际应用中有着十分重要的作用。
伴随着多核处理器和加速部件的普及,通过充分挖掘算法本身的并行度将算法并行化,高效地提升算法性能,已经成为一种行之有效的方法。目前Comba算法优化方面,VladislavKovtun和Andrew Okhrimenko曾通过采用三个64位整型数据存储中间结果以实现延迟进位(Vladislav Kovtun,Andrew Okhrimenko.Approaches for the performance increasing of softwareimplementation of integer multiplication in prime fields.[S.l.].2009.)从而改进Comba算法,其中该实现算法中基为232;并基于该改进的算法实现采用OpenMP中section任务分担策略双线程并行,与OpenMP中for任务分担及静态数据分配策略进行多线程并行两种并行方案)Vladislav Kovtun,Andrew Okhrimenko.Approaches for the parallelization of SoftwareImplementation of Integer Multipication.[S.l.].2012.),与单线程程序相比,可分别达到1.5倍及2倍的加速。其实现主要基于32位单精度整数运算,并行化方法主要基于采用延迟进位技巧的串行Comba算法,将乘积的计算分成前后两部分数位计算,其section任务分担策略双线程并行依据乘积的前半部分数位以及后半部分数位计算的独立性,将乘积数位的计算相应地分成两部分分配给两个线程并行计算,此种方式可实现双线程并行;而其采用for任务分担策略实现的基于计算资源的多线程并行,首先开启相应数目的线程,采用静态数据分配策略将前半部分数位计算分配给线程并行计算,计算完任务的线程接着计算乘积的后半部分数位,但静态数据分配策略容易引起负载不均衡,造成资源的浪费,影响算法性能的提升。
Comba算法基于传统手算乘法,传统的手算乘法在进行运算时将乘数与被乘数的每一位进行相乘,每相乘一次,便实施进位操作,而Comba算法可首先通过多次加乘操作得到中间结果的一个数位,即中间结果的每个数位是乘数与被乘数的多对对应位相乘后相加的结果,获取中间结果的数位后,再向高位进位,然后计算下个数位,从而可顺序求得最终结果。采用大整数运算领域著名开源库GMP中的大整数数据结构,其定义如下:
其中_mpz_struct即为定义的大整数数据结构,_mp_alloc为大整数动态数组的长度,_mp_size为大整数动态数组已用的长度和符号,_mp_d为指向大整数动态数组首地址的指针,且大整数每个数位的数据类型为64位无符号长整型整数。
基于上述大整数数据结构,设存储乘数u、被乘数v数组分别为up、vp指向,且乘数与被乘数位数分别为un和vn位,计算乘积r时先根据如下公式(1)计算其中间结果的第ir数位rir:
算法根据公式(1)循环获得中间结果的每一个数位rir(0≤ir<(un+vn)),在求取rir(0≤ir<(un+vn))时,其中乘数下标iv和被乘数下标iu的初始值可按照如下公式设置。
iv←MIN(ir,vn-1) (2)
iu←ir-iv (3)
Vladislav Kovtun和Andrew Okhrimenko所提供的并行化方法虽然达到了很好的效果,但是由于其将数位的计算或划分为两个section进行并行,或分为前后两个部分进行for任务分担并行,且均采用静态调度策略,使得算法并行度低,容易造成负载不均衡而影响算法效率,而此缺点和不足正是下面技术需要克服的,本发明将提供一种并发度高且负载更为均衡的并行算法。
发明内容
本发明的解决的问题是:克服现有技术并发度低和负载不均衡的问题,提供一种大整数乘法Comba算法基于OpenMP的并行实现方法,通过OpenMP多线程编程采用动态调度策略实现加乘操作阶段的并行化,而进位阶段仍然串行执行来并行化Comba算法,提高算法效率。
Comba算法的核心操作为加乘运算与进位运算,而进位运算有较强的顺序性,加乘操作每个数位的计算则具有较强的独立性。为了充分挖掘Comba算法的并行性,本发明基于64位单精度整数操作,通过解决加乘运算与进位运算的数据相关性,将加乘操作与进位操作分开,并在加乘操作阶段进行并行优化,进位操作阶段串行执行。
算法的核心操作为64位无符号长整型数的乘加运算,当两个64位无符号整数相乘时,结果为127或者128位,而目前大部分计算机平台整型数据长度最大为64位,因此需要两个64位无符号长整型变量分别存储乘积的低64位和高64位。乘积r中间结果的每一个数位是一对或多对64位无符号长整型数相乘后相加的结果,最终结果会大于或等于127位,所以中间结果需采用3个64位无符号长整型临时变量存储。如果采用高级语言实现,每进行一次加乘操作,便需要进行两次进位判断,因此采用内嵌汇编语言的方法实现此核心操作以消除每次求中间结果的数位时的多次进位判断操作;为了在加乘操作阶段进行并行化,需要解决加乘操作与进位操作阶段的数据相关性问题,添加三个unsigned long int类型的临时数组用于存储通过加乘操作求得的中间结果,而在求中间结果的过程中不进行进位操作,待中间结果求取完毕后再统一进行进位操作;在加乘操作阶段,基于中间结果每个数位求取时的计算独立性,可通过OpenMP多线程编程采用动态调度策略实现加乘操作阶段的并行化,而进位阶段仍然串行执行。
本发明的并行方案包括以下方面:
1)参与运算的大整数基为264,申请三个长度为rn的64位无符号长整型数组,分别由指针lpl,hpl,cl指向,即数组lpl[rn],cl[rn]以及hpl[rn],其中rn=un+vn,un和vn可能不等,un和vn分别为乘数和被乘数的位数;
2)循环计算乘积的中间结果,缓存在步骤1)申请的三个临时数组中,其中中间结果的每一位根据公式 计算,lpl[ir],cl[ir]和hpl[ir]分别存储中间结果ir位的低64位,中间64位以及高64位,且依据如下方式循环计算:(rax,rdx)=upiu*vpiv,(lpl[ir],c1)=rax+lpl[ir],(cl[ir],c2)=cl[ir]+hpl[ir]+c1,hpl[ir]=hpl[ir]+c2,此循环体采用内嵌汇编的方式实现,rax和rdx分别存储upiu*vpiv的低64位和高64位,其中upiu和vpiv分别表示乘数u的第iu位和被乘数v第iv位,c1和c2表示进位;
3)由步骤2)所述 的循环计算过程采用OpenMP的for任务分担策略进行并行化,开启多个计算线程并行计算,每个线程每次计算由步骤2)所述的中间结果一个数位的计算流程,线程数可根据当前计算平台可用计算资源决定,且给每个线程分配计算任务即中间结果数位的计算时采用动态调度策略,其中任务分割粒度根据开启的线程数目以及计算机资源通过实验获得。本实验中将中间结果的数位分配给8线程并行求取,数据分割粒度为rn/64,即将数位计算任务共分为组,8个线程并行执行,每个线程每次领取rn/64个数位计算任务,率先执行完任务的线程接着领取下组任务,无需等待;
4)对步骤2)和步骤3)所得的lpl[rn],cl[rn]以及hpl[rn]三个数组中存储的中间结果通过进位操作将最终结果存入rp[rn]数组中,设rlpl,rcl和rhpl存储进位数,则rp[ir](0≤ir<rn)以及进位依据如下方式计算:(rlpl,c1)=rlpl+lpl[ir],(rcl,c2)=rcl+cl[ir]+c1,rhpl=rhpl+hpl[ir]+c2,rp[ir]=rlpl,rlpl=rcl,rcl=rhpl,rhpl=0,其中(rlpl,c1)=rlpl+lpl[ir],(rcl,c2)=rcl+cl[ir]+c1,rhpl=rhpl+hpl[ir]+c2,此三个计算步骤采用内嵌汇编的方式实现,c1和c2表示进位。
本发明的有益效果:
本发明基于64位单精度整数运算,通过添加三个临时数组存储乘积的中间结果,将加乘操作与进位操作分开执行,从而降低了数据依赖性,通过多线程并行计算,显著提高算法执行效率。
与上述Vladislav Kovtun和Andrew Okhrimenko实现的并行化方法相比,本发明通过添加临时数组存储中间结果的方式实现了每个数位计算的独立性,数位的计算并不需要分成前后两个阶段进行,进而可以实现基于计算资源的多线程并行;并行化时采用动态数据分配策略,每次分配给线程一定粒度的数据计算任务,其中粒度采用实验的方式确定,更有利于负载均衡,提升效率,可以达到更优的效果。
附图说明
图1是Comba算法并行策略的程序流程图;
图2是取rn=36时采用静态数据分配策略的线程任务分配图;
图3是取rn=36时采用动态数据分配策略一种可能的线程任务分配图;
图4是串行Comba算法与并行Comba算法运行结果对比柱状图。
具体实施方式
下面结合附图及实施例对本发明进行详细说明。
如图1所示,本发明具体实现如下:
1)输入基为264乘数u和被乘数v,其位数分别为un和vn,un和vn可不等;
2)为乘积r申请内存空间,长度为rn,并由指针rp指向,其中rn=un+vn;
3)申请三个长度为rn的64位无符号长整型数组,分别由指针lpl,hpl,cl指向;
4)循环计算乘积的中间结果,缓存在步骤3)申请的三个临时数组中,其中中间结果的每一位根据公式 计算,lpl[ir],cl[ir]和hpl[ir]分别存储中间结果第ir位的低64位,中间64位以及高64位,且依据如下方式循环计算:(rax,rdx)=upiu*vpiv,(lpl[ir],c1)=rax+lpl[ir],(cl[ir],c2)=cl[ir]+hpl[ir]+c1,hpl[ir]=hpl[ir]+c2,此循环体采用内嵌汇编的方式实现,rax和rdx分别存储upiu*vpiv的低64位和高64位,其中upiu和vpiv分别表示乘数u的第iu位和被乘数v第iv位,c1和c2表示进位;
5)由步骤4)所述 的循环计算过程采用OpenMP的for任务分担策略进行并行化,开启多个计算线程并行计算,每个线程每次计算由步骤4)所述的中间结果一个数位的计算流程,线程数可根据当前计算平台可用计算资源决定,且给每个线程分配计算任务即中间结果数位的计算时采用动态调度策略,其中任务分割粒度根据开启的线程数目以及计算机资源通过实验获得。如图2、3所示,本实验中将中间结果的数位分配给8线程并行求取,数据分割粒度为rn/64,即将数位计算任务共分为组,8个线程并行执行,每个线程每次领取rn/64个数位计算任务,率先执行完任务的线程接着领取下组任务,无需等待;
6)对步骤4)和步骤5)所得的lpl[rn],cl[rn]以及hpl[rn]三个数组中存储的中间结果通过进位操作将最终结果存入rp[rn]数组中,设rlpl,rcl和rhpl存储进位数,则rp[rn]的第ir位元素rp[ir](0≤ir<rn)以及进位依据如下方式计算:(rlpl,c1)=rlpl+lpl[ir],(rcl,c2)=rcl+cl[ir]+c1,rhpl=rhpl+hpl[ir]+c2,rp[ir]=rlpl,rlpl=rcl,rcl=rhpl,rhpl=0,其中(rlpl,c1)=rlpl+lpl[ir],(rcl,c2)=rcl+cl[ir]+c1,rhpl=rhpl+hpl[ir]+c2此三个计算步骤采用内嵌汇编的方式实现,c1和c2表示进位;
7)计算乘积r的数位长度,如果rpun+vn-1!=0,则其长度为un+vn;否则,其长度为un+vn-1。
测试结果如说明书附图中图4所示,测试平台为8核Intel Xeon 55系列处理器,CPU主频为2.67GHz,以C语言为开发语言,Intel C++Compiler 11.1为编译器,并基于大整数运算开源库GMP5.1.3版本进行算法的正确性验证和效率测试,测试时并行Comba算法为8线程,其中数据规模为64位长整型双字为单位,程序运行时间单位为微秒。
本发明测试选取了10组大整数进行实验,每组数据为几百到上万数据单位的两个整数,为了使得实验具有一般性,所有数据均是由程序随机产生。
实验中使用本发明中提出的并行执行程序与串行Comba算法在Intel的X86平台上进行实验和性能对比。
从图4中可以看出,本发明选取的10组大整数进行实验得到的加速性能图,不同数据规模下并行Comba算法与串行Comba算法的性能加速有所不同,其并行Comba算法与串行Comba算法的加速比平均可达到4.30,性能提升了很多。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (4)
1.一种大整数乘法Comba算法基于OpenMP的并行实现方法,其特征在于包括如下步骤:
(1)申请三个长度为rn的64位无符号长整型数组,分别由指针lpl,hpl,cl指向,即数组lpl[rn],cl[rn]以及hpl[rn],其中rn=un+vn,un和vn可能不等,un和vn分别为乘数和被乘数的位数;
(2)循环计算乘积的中间结果,缓存在步骤(1)申请的三个数组中,其中中间结果的每一位根据公式 计算,lpl[ir],cl[ir]和hpl[ir]分别存储中间结果第ir位的低64位,中间64位以及高64位,其中upiu和vpiv分别表示乘数u的第iu位和被乘数v第iv位;
(3)获取程序运行系统目前可用线程数;
(4)由步骤(2)所述 的循环计算过程采用OpenMP的for任务分担策略进行并行化,将中间结果的数位计算任务采用动态调度策略分配给可用线程数个计算线程并行计算,并将线程计算所得中间结果对应存储在步骤(1)所申请的数组lpl[rn],cl[rn]以及hpl[rn]中;
(5)对步骤(4)所得lpl[rn],cl[rn]以及hpl[rn]三个数组中存储的中间结果通过串行进位将最终结果存入rp[rn]数组中,其中rp[rn]为存储最终乘积的数组。
2.根据权利要求1所述的一种大整数乘法Comba算法基于OpenMP的并行实现方法,其特征在于:所述步骤(2)中依据如下方式循环计算:(rax,rdx)=upiu*vpiv,(lpl[ir],c1)=rax+lpl[ir],(cl[ir],c2)=cl[ir]+hpl[ir]+c1,hpl[ir]=hpl[ir]+c2,更新iu和iv的值,此循环体采用内嵌汇编的方式实现,rax和rdx分别存储upiu*vpiv的低64位和高64位,c1和c2表示进位。
3.根据权利要求1所述的一种大整数乘法Comba算法基于OpenMP的并行实现方法,其特征在于:所述步骤(4)中每个线程每次执行由步骤(2)所述的中间结果一个数位的计算流程,且给每个线程分配计算任务即中间结果数位的计算时采用动态调度策略,其中任务分割粒度根据开启的线程数目以及计算机资源通过实验获得;实验中将中间结果的数位分配给8线程并行求取,数据分割粒度为rn/64,即将数位计算任务共分为组,8个线程并行执行,每个线程每次领取rn/64个数位计算任务,率先执行完任务的线程接着领取下组任务,无需等待。
4.根据权利要求1所述的一种大整数乘法Comba算法基于OpenMP的并行实现方法,其特征在于:所述步骤(5)中,数组rp[rn]的元素rp[ir](0≤ir<rn)以及进位依据如下方式计算:设rlpl,rcl和rhpl存储进位数,(rlpl,c1)=rlpl+lpl[ir],(rcl,c2)=rcl+cl[ir]+c1,rhpl=rhpl+hpl[ir]+c2,rp[ir]=rlpl,rlpl=rcl,rcl=rhpl,rhpl=0,其中(rlpl,c1)=rlpl+lpl[ir],(rcl,c2)=rcl+cl[ir]+c1,rhpl=rhpl+hpl[ir]+c2,此三个计算步骤采用内嵌汇编的方式实现,c1和c2表示进位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510220528.4A CN104793922B (zh) | 2015-05-04 | 2015-05-04 | 一种大整数乘法Comba算法基于OpenMP的并行实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510220528.4A CN104793922B (zh) | 2015-05-04 | 2015-05-04 | 一种大整数乘法Comba算法基于OpenMP的并行实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104793922A true CN104793922A (zh) | 2015-07-22 |
CN104793922B CN104793922B (zh) | 2017-08-25 |
Family
ID=53558739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510220528.4A Expired - Fee Related CN104793922B (zh) | 2015-05-04 | 2015-05-04 | 一种大整数乘法Comba算法基于OpenMP的并行实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104793922B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653239A (zh) * | 2015-12-25 | 2016-06-08 | 中国科学院软件研究所 | 一种大整数乘法Karatsuba算法的并行实现方法 |
CN107977444A (zh) * | 2017-12-11 | 2018-05-01 | 成都博睿德科技有限公司 | 基于大数据的海量数据并行处理方法 |
CN110764780A (zh) * | 2019-10-25 | 2020-02-07 | 中国人民解放军战略支援部队信息工程大学 | 一种缺省的OpenMP调度策略 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084083A1 (en) * | 2001-07-31 | 2003-05-01 | Hull James M. | Method and apparatus for performing integer multiply operations using primitive multi-media operations that operate on smaller operands |
CN101470598A (zh) * | 2007-12-28 | 2009-07-01 | 航天信息股份有限公司 | 提高大整数Montgomery模乘运算速度的方法 |
CN103942028A (zh) * | 2014-04-15 | 2014-07-23 | 中国科学院数据与通信保护研究教育中心 | 应用在密码技术中的大整数乘法运算方法及装置 |
CN104461449A (zh) * | 2014-11-14 | 2015-03-25 | 中国科学院数据与通信保护研究教育中心 | 基于向量指令的大整数乘法实现方法及装置 |
-
2015
- 2015-05-04 CN CN201510220528.4A patent/CN104793922B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084083A1 (en) * | 2001-07-31 | 2003-05-01 | Hull James M. | Method and apparatus for performing integer multiply operations using primitive multi-media operations that operate on smaller operands |
CN101470598A (zh) * | 2007-12-28 | 2009-07-01 | 航天信息股份有限公司 | 提高大整数Montgomery模乘运算速度的方法 |
CN103942028A (zh) * | 2014-04-15 | 2014-07-23 | 中国科学院数据与通信保护研究教育中心 | 应用在密码技术中的大整数乘法运算方法及装置 |
CN104461449A (zh) * | 2014-11-14 | 2015-03-25 | 中国科学院数据与通信保护研究教育中心 | 基于向量指令的大整数乘法实现方法及装置 |
Non-Patent Citations (1)
Title |
---|
KOVTUN V等: "Approaches for the Parallelization of Software Implementation of Integer Multiplication", 《IACR CRYTOLOGY EPRINT ARCHIVE》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653239A (zh) * | 2015-12-25 | 2016-06-08 | 中国科学院软件研究所 | 一种大整数乘法Karatsuba算法的并行实现方法 |
CN105653239B (zh) * | 2015-12-25 | 2018-06-22 | 中国科学院软件研究所 | 一种大整数乘法Karatsuba算法的并行实现方法 |
CN107977444A (zh) * | 2017-12-11 | 2018-05-01 | 成都博睿德科技有限公司 | 基于大数据的海量数据并行处理方法 |
CN110764780A (zh) * | 2019-10-25 | 2020-02-07 | 中国人民解放军战略支援部队信息工程大学 | 一种缺省的OpenMP调度策略 |
Also Published As
Publication number | Publication date |
---|---|
CN104793922B (zh) | 2017-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Fast tridiagonal solvers on the GPU | |
Tomov et al. | Towards dense linear algebra for hybrid GPU accelerated manycore systems | |
Hadri et al. | Tile QR factorization with parallel panel processing for multicore architectures | |
Chen et al. | CMSA: a heterogeneous CPU/GPU computing system for multiple similar RNA/DNA sequence alignment | |
CN103246541A (zh) | 自动并行化多级并行代价评估方法 | |
Gao et al. | A multi-GPU parallel optimization model for the preconditioned conjugate gradient algorithm | |
CN104793922A (zh) | 一种大整数乘法Comba算法基于OpenMP的并行实现方法 | |
CN103617085A (zh) | 一种cpu+gpu协同计算并行框架 | |
Bakunas-Milanowski et al. | Efficient algorithms for stream compaction on GPUs | |
Sharma et al. | Performance analysis of parallel algorithms on multi-core system using openmp | |
Wan et al. | Efficient CPU‐GPU cooperative computing for solving the subset‐sum problem | |
CN104699449B (zh) | 一种基于gmp的大整数加法和减法多核并行化实现方法 | |
Zhong et al. | Model-based parallelization for simulink models on multicore cpus and gpus | |
Du et al. | Feature-aware task scheduling on CPU-FPGA heterogeneous platforms | |
Talnikar et al. | A two-level computational graph method for the adjoint of a finite volume based compressible unsteady flow solver | |
Kljucaric et al. | Deep-learning inferencing with high-performance hardware accelerators | |
Shan et al. | Performance tuning of Fock matrix and two-electron integral calculations for NWChem on leading HPC platforms | |
Wu et al. | Two-stage column block parallel LU factorization algorithm | |
Hadri et al. | Enhancing parallelism of tile QR factorization for multicore architectures | |
Rego et al. | A fast hybrid approach for stream compaction on GPUs | |
Tomiyama et al. | Automatic parameter optimization for edit distance algorithm on GPU | |
Liu et al. | An efficient SAT solving algorithm using pseudo-conflict learning and heterogeneous computing | |
Lastovetsky et al. | How pre-multicore methods and algorithms perform in multicore era | |
Yang et al. | A batched GEMM optimization framework for deep learning | |
CN105653239A (zh) | 一种大整数乘法Karatsuba算法的并行实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170825 |