CN103699356A - 并行除法算法及并行除法计算器 - Google Patents
并行除法算法及并行除法计算器 Download PDFInfo
- Publication number
- CN103699356A CN103699356A CN201210365716.2A CN201210365716A CN103699356A CN 103699356 A CN103699356 A CN 103699356A CN 201210365716 A CN201210365716 A CN 201210365716A CN 103699356 A CN103699356 A CN 103699356A
- Authority
- CN
- China
- Prior art keywords
- division
- algorithm
- parallel
- remainder
- calculation
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
- Complex Calculations (AREA)
Abstract
本发明是涉及一种利用多个处理器实现并行除法的算法与装置,是把传统只能一人计算的除法,变成可以任意多人同时并行计算的算法与装置。独创点是,发明出了可以并行计算出任何一步余数的新方法:计算A除以B第K步的余数,用A乘10的K次幂模B的方法来并行计算出余数。用该方法,可以把计算A/B的N位商,巧妙的变化成同时计算A/B,A1/B,A2/B,...A(m-1)/B,的N/m+1位商,m为该计算机核的个数。这样m个核就能同时用任何一种除法的计算方法来并行计算Ai/B的N/m+1位商,最后把各核计算结果合并,就得到A/B的N位商。需要特别说明的是,由于该算法的这个m可以任意大,因此该算法也能用于可以同时做数百万次并行计算的量子计算机。
Description
所属领域
本发明是涉及一种利用多个处理器实现并行除法的算法与装置,具体地说是涉及一种把传统只能一人计算的除法,变成可以任意多人同时并行计算的算法与装置。
背景技术
上世纪八九十年代以来,随着半导体工艺技术的飞速进步和体系结构的不断发展,桌面处理器的主频在2000年达到了1GHz,2001年达到2GHz,2002年达到了3GHz。但在将近5年之后我们仍然没有看到4GHz处理器的出现。原因就在于如果继续通过提高主频来提高处理器的性能,就会使处理器的功耗以指数(三次方)而非线性(一次方)的速度急剧上升,很快就会触及所谓的“频率的墙”(frequency wall)。因此无法再通过简单提升时钟频率就可设计出下一代的新CPU。主频之路已经走到了拐点,采用同样的微架构的情况下,为了达到提高处理器性能的目的,我们可以采用多核的方法,同时有效地控制功耗的急剧上升。由此可见,将来处理器发展的趋势是:为了达到更高的性能,在采用相同微架构的情况下,可以增加处理器的内核数量同时维持较低的主频。这样设计的效果是,更多的并行提高处理器性能,较低的主频有效地控制了功耗的上升。开创于2005年春季的多核时代到来了,其标志是Intel的Pentium D2=800双核芯片,现在四核cpu已经成了pc电脑主流配置,8核也不少见,连手机也已经开始使用双核芯片。
现在计算机硬件已经进入了多核时代,计算机软件计算方式也要“改朝换代”了,串行计算将步入历史,而并行计算则逐渐走向主流.目前能够充分发挥多核威力的软件还很少,为了与高速发展的硬件相适应,许多公司投入大量资金来研究多核并行计算技术。由英特尔和无锡市滨湖区政府共同资助建设全球首个并行计算中心:“英特尔中国并行计算中心”,已于2010年年初正式投入运行。并行计算已经在数据中心和超级计算机有了很多应用,随着更高性能和更低能耗的多核时代的不断 演进,并行计算在个人电脑上也会有更多更广应用,必将渗透到人们工作和生活的方方面面。为最大程度地发挥多核的优势,需要有针对多核并行计算开发和优化应用程序。正是在此大背景下,我从四大基本运算中最复杂的除法着手,发明了除法并行计算算法,为多核计算机除法计算并行提供了新的重要工具。
发明内容
1.发明目的
本发明的目的是把人类使用了几千年只能串行计算的传统除法,变成可以并行计算,使多核计算机进一步提高除法的计算速度,为众多多核并行计算应用程序,超级计算机并行计算以及未来的量子计算机提供了重要工具。
2.算法原理
普通除法的基本计算过程是这样的,第一步用除数来分被除数计算出商数,再把余数看做新的被除数,继续用除数来分,如此循环做下去。从这个计算过程可以看出,后面的每一步必须在前一步完成后,计算出新的余数,才可以做下一步的计算。因此这种方法是典型的串行计算方法,无法进行并行计算。
我发明的并行计算算法的核心点是发明出了可以并行计算出任何一步余数的新方法:计算A除以B的第K步的余数,可以用A乘10的K次幂模B的方法来计算出余数。由于10的K次幂模B是可以并行计算,所以这一步也能发挥多核的优势。
不失一般性,在下面的说明中总是设定A<B,若A>B,只要先做一步普通除法,以后的除法就变成A<B的情形了。
利用这个原理就可以把计算A/B的N位商,巧妙的变化成同时计算A/B,A1/B,A2/B,A3/B,...A(m-1)/B,的N/m+1位商,m为该计算机核的个数(计算机算机实际可以并行计算的进程数)。首先计算A1,A2,A3,...,Am-1,m-1个新被除数的值,加上原来的被除数A,共有m个被除数,这样m个核就能同时开始用任何一种除法的计算方法来并行计算Ai/B的N/m+1位商,最后把每个核计算结果合并,就得到A/B的 N位商。
为了使原理说明简单明了,把并行计算的进程数m取为计算机的核数,(计算机实际可以并行计算的进程数),实际应用时m可以根据B/m的大小而改变,m可以取计算机的核数的任何一个因子数,以使B/m的余数最大为最好,因为这个余数较小时最后这一进程需要做的多余计算会多一些。需要特别说明的是,由于该算法的这个m可以任意大,因此该算法也能用于未来十几年后就会面世的量子计算机。由于量子计算机可以同时做数百万次的并行计算,因此,今天因为除法计算量太大而不能解决的问题,届时都会迎刃而解了。
应用这个原理就可以除法实现并行计算,另一个重要突破就是该原理可以用在除法计算的许多方面,例如除法结果可以从小数点后1000位开始计算而并不要知道前1000位是什么数。
3.算法特点:
该方法的串行计算部分的计算量很小,两大部分主要计算工作量都可以并行计算,因此加速比很高。理论上有几个核就提高到几倍。各个并行计算进程部分完全同时独立完成本部分的计算,不需要和别的进程通信,所以适用各种类型超级计算机或多核计算机的并行除法计算。该方法也适用于任何进制数的除法运算,在G进制下计算A除以B第K位的余数,可以用A乘G的K次幂模B的方法来并行计算出第K位的余数。
4.算法逻辑如下:
△代表该行为注释说明
△多核计算机除法并行计算算法逻辑
△输入:M被除数,N除数,M<N,core_num计算机核数
△D[1...core_num-1]保存core_num-1个新的被除数
△G[1...b]保存b位普通除法结果
△输出:H[1...N]保存M/N全部N位商
Program:
△Procedure Ptcf(A,B,c,E[c])任何一种普通除法过程,A<B,计算 A/B的c位商,保存在E[c]
△begin
b←floor(N/core_num)
R←fmod(N,core_num)
If(R!=0)
b=b+1
D[0]←M
△并行计算计算core_num-1个新被除数
For k←1 to core_num-1
Do
x←k*b
y←M*pow(10,x)
D[k]←fmod(y,N)
△新被除数并行计算结束
△并行除计算开始
For k←0 To core_num-1
Do
G.clear() 清空G
Call Ptcf(D[k],N,b,G[b])
For j←1 To b
Do H[j+k*b]←G[j]
△并行除计算结束
△输出计算结果:H[N]
△End
发明有益效果
本发明把人类使用了几千年只能串行计算的传统除法,变成可以并行计算,从而大大提高了除法的计算速度。今天多核CPU已经成为计算机普遍使用的基本配置,因此每个多核计算机都可以从本发明获益。特 别是对于那些具有十几万核数的超级计算机更是受益匪浅,过去因除法计算量太大而不能解决的有些问题,现在使用本发明后有可能解决了。根据我几年来在多核计算机大量实际计算测试,不管用什么方法计算除法,用我发明的这个多核并行计算算法,都比传统的除法要快。理论上有几个核,除法计算速度提高到几倍。由于现在多核计算机的核还只有几个或十几个,超级计算机也只有十几万个,而量子计算机的并行计算能力相当于数百万个核的能力,那时该算法才能真正发挥出它的并行计算威力。
发明实施方案
算法实际计算实例:
△以四核计算机算13/47为例
Core_num=4
M=13
N=47
b=47/4=11
R=47mod 4
b=11+1=12
D[0]=13
△并行计算出三个新被除数
D[1]=(13*10^12 mod 47)=40
D[2]=(13*10^24 mod 47)=11
D[3]=(13*10^36 mod 47)=23
△并行除计算:四个核同时做12位普通除法计算,
Ptcf(13,47,12,G[12])
H[1...12]=G[1...12]=0.276595744680
Ptc(40,47,12,G[12])
G[13...24]=G[1...12]=851063829787
Ptcf(11,47,12,G[12])
H[25...36]=G[1...12]=234042553191
Ptcf(23,47,12,G[12])
H[37...48]=G[1...12]=489361702127
△最后一个会多算几位(本例多计算一位)
△合并输出各核计算结果
H[1...47]=0.276595744680 851063829787 2340425519148936170212。
Claims (5)
1.一种实现并行除法的算法与装置,其特征是:提出了一种可以并行计算出任何一步余数的新方法:计算A除以B第K步的余数,可以用A乘10的K次幂模B的方法来并行计算出余数。
2.根据权利要求1所述的方法,其特征是:把计算A/B的N位商,变化成同时计算A/B,A1/B,A2/B,A3/B,...A(m-1)/B,的N/m+1位商,m为该计算机核的个数(计算机算机实际可以并行计算的进程数)。首先并行计算A1,A2,A3,...,Am-1,m-1个新被除数的值,加上原来的被除数A,共有m个被除数,这样m个核就能同时开始用任何一种除法的计算方法来并行计算Ai/B的N/m+1位商,最后把每个核计算结果合并,就得到A/B的N位商。
3.根据权利要求2所述的方法,其特征是:同时并行计算的进程数m可以任意大,因此该算法也可以用于同时做数百万次并行计算的量子计算机。
4.根据权利要求1所述的一种实现并行除法的算法与装置,其特征是:除法计算可以从小数点后任何一位开始计算而并不要知道前面的计算结果。
5.根据权利要求1所述的一种实现并行除法的算法与装置,其特征是:说明书仅以10进制为例来说明原理,事实上该方法也适用于任何进制数的除法运算,在G进制下计算A除以B第K步的余数,可以用A乘G的K次幂除以B的方法来并行计算出第K位的余数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210365716.2A CN103699356B (zh) | 2012-09-27 | 2012-09-27 | 一种并行除法计算器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210365716.2A CN103699356B (zh) | 2012-09-27 | 2012-09-27 | 一种并行除法计算器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103699356A true CN103699356A (zh) | 2014-04-02 |
CN103699356B CN103699356B (zh) | 2016-09-21 |
Family
ID=50360897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210365716.2A Active CN103699356B (zh) | 2012-09-27 | 2012-09-27 | 一种并行除法计算器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103699356B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108241591A (zh) * | 2016-12-26 | 2018-07-03 | 卡西欧计算机株式会社 | 计算装置、计算装置的显示方法及计算装置用的记录介质 |
CN112162724A (zh) * | 2020-09-30 | 2021-01-01 | 合肥本源量子计算科技有限责任公司 | 一种带精度的量子除法运算方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5007009A (en) * | 1987-11-30 | 1991-04-09 | Indata Systems Kabushiki Kaisha | Non-recovery parallel divider circuit |
JPH07160479A (ja) * | 1993-12-10 | 1995-06-23 | Kawasaki Steel Corp | 除算演算装置 |
JPH0816366A (ja) * | 1994-06-30 | 1996-01-19 | Canon Inc | 除算器およびその除算方法 |
CN1255998A (zh) * | 1998-01-27 | 2000-06-07 | 三菱电机株式会社 | 运算装置、运算方法及记录了该运算方法的记录媒体 |
CN1539102A (zh) * | 2001-08-07 | 2004-10-20 | ��˹��ŵ�� | 执行除法的方法和装置 |
CN1719400A (zh) * | 2005-08-19 | 2006-01-11 | 罗静远 | 自编程并行线性反馈移位寄存器-ap2lfsr |
CN101295237A (zh) * | 2007-04-25 | 2008-10-29 | 四川虹微技术有限公司 | 求商和余数的高速除法器 |
-
2012
- 2012-09-27 CN CN201210365716.2A patent/CN103699356B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5007009A (en) * | 1987-11-30 | 1991-04-09 | Indata Systems Kabushiki Kaisha | Non-recovery parallel divider circuit |
JPH07160479A (ja) * | 1993-12-10 | 1995-06-23 | Kawasaki Steel Corp | 除算演算装置 |
JPH0816366A (ja) * | 1994-06-30 | 1996-01-19 | Canon Inc | 除算器およびその除算方法 |
CN1255998A (zh) * | 1998-01-27 | 2000-06-07 | 三菱电机株式会社 | 运算装置、运算方法及记录了该运算方法的记录媒体 |
CN1539102A (zh) * | 2001-08-07 | 2004-10-20 | ��˹��ŵ�� | 执行除法的方法和装置 |
CN1719400A (zh) * | 2005-08-19 | 2006-01-11 | 罗静远 | 自编程并行线性反馈移位寄存器-ap2lfsr |
CN101295237A (zh) * | 2007-04-25 | 2008-10-29 | 四川虹微技术有限公司 | 求商和余数的高速除法器 |
Non-Patent Citations (4)
Title |
---|
张雄伟: "《DSP芯片的原理与开发应用》", 30 September 1997, 电子工业出版社 * |
科斯托普洛斯: "《数字工程》", 28 February 1981, 人民邮电出版社 * |
程良炎等: "一种实现多位数除法的算法", 《黄石高等专科学校学报》 * |
莫莎编: "提高二进制并行计算机除法速度的方法", 《电子计算机动态》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108241591A (zh) * | 2016-12-26 | 2018-07-03 | 卡西欧计算机株式会社 | 计算装置、计算装置的显示方法及计算装置用的记录介质 |
CN108241591B (zh) * | 2016-12-26 | 2021-08-03 | 卡西欧计算机株式会社 | 计算装置、计算装置的显示方法及计算装置用的记录介质 |
CN112162724A (zh) * | 2020-09-30 | 2021-01-01 | 合肥本源量子计算科技有限责任公司 | 一种带精度的量子除法运算方法及装置 |
CN112162724B (zh) * | 2020-09-30 | 2024-02-09 | 本源量子计算科技(合肥)股份有限公司 | 一种带精度的量子除法运算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103699356B (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | DLAU: A scalable deep learning accelerator unit on FPGA | |
Zhang et al. | Fast tridiagonal solvers on the GPU | |
CN103176767A (zh) | 一种低功耗高吞吐的浮点数乘累加单元的实现方法 | |
CN102629189A (zh) | 基于fpga的流水浮点乘累加方法 | |
CN108647779A (zh) | 一种低位宽卷积神经网络可重构计算单元 | |
Xiao et al. | A data-driven asynchronous neural network accelerator | |
Cho et al. | FARNN: FPGA-GPU hybrid acceleration platform for recurrent neural networks | |
CN103699356A (zh) | 并行除法算法及并行除法计算器 | |
Wang et al. | A noise-driven heterogeneous stochastic computing multiplier for heuristic precision improvement in energy-efficient dnns | |
Zolfagharinejad et al. | Posit process element for using in energy-efficient DNN accelerators | |
Wu et al. | High-performance architecture for the conjugate gradient solver on FPGAs | |
Imani et al. | Processing acceleration with resistive memory-based computation | |
Mehta et al. | High speed SRT divider for intelligent embedded system | |
Angizi et al. | Processing-in-memory acceleration of mac-based applications using residue number system: A comparative study | |
CN102109973A (zh) | 包含超越函数计算的处理器实现装置 | |
CN204143432U (zh) | 一种乘除法器 | |
Li et al. | CPSAA: Accelerating sparse attention using crossbar-based processing-in-memory architecture | |
Daisaka et al. | GRAPE-mp: An simd accelerator board for multi-precision arithmetic | |
Qu et al. | A grain-adaptive computing structure for FPGA CNN acceleration | |
Rousseaux et al. | A high performance FPGA-based accelerator for BLAS library implementation | |
CN104572013A (zh) | 一种双向并行除法计算器 | |
Murali et al. | An optimized implementation of vedic multiplier using barrel shifter in FPGA technology | |
CN202075727U (zh) | 包含超越函数计算的处理器实现装置 | |
Zhao et al. | A Dynamically Reconfigurable Accelerator Design Using a Sparse-Winograd Decomposition Algorithm for CNNs | |
Zhang et al. | A comprehensive analysis of DAC-SDC FPGA low power object detection challenge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20140402 Assignee: Shenzhen new Weier Electronics Co., Ltd. Assignor: Ren Guangqian Contract record no.: 2019440020011 Denomination of invention: Parallel division calculator Granted publication date: 20160921 License type: Common License Record date: 20190315 |
|
EE01 | Entry into force of recordation of patent licensing contract |