CN104572013A - 一种双向并行除法计算器 - Google Patents
一种双向并行除法计算器 Download PDFInfo
- Publication number
- CN104572013A CN104572013A CN201410756017.XA CN201410756017A CN104572013A CN 104572013 A CN104572013 A CN 104572013A CN 201410756017 A CN201410756017 A CN 201410756017A CN 104572013 A CN104572013 A CN 104572013A
- Authority
- CN
- China
- Prior art keywords
- division
- quotient
- algorithm
- divisor
- new
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明是涉及一种利用两个处理器实现并行除法的算法与装置,是把传统只能一人计算的除法,变成可以两人同时并行计算的算法与装置。独创点是,凡是除数个位数是1,3,7,9结尾的数,发明出了两种除法新方法:一种是从前往后算,与传统除法不同的是,它是把商数移到被除数方继续除;另一种方法是从后往前倒算除法,这是一种完全不用除的除法,只用加法和乘法。这种倒算除法比传统的方法更简单更容易,完全不用试商,商数就是上一步加法计算结果,一眼就看出来了。任何一种两核以上的计算机到将来具有数百万次并行计算能力的量子计算机,都可以用该方法而使除法效率提高若干倍。
Description
所属领域
本发明是涉及一种利用两个处理器实现并行除法的算法与装置,具体地说是涉及一种把传统只能一人计算的除法,变成可以两个人同时并行计算的算法与装置。
背景技术
现在计算机CPU已经全面进入了多核时代,普通的智能手机也已经普遍使用双核,8核的手机也不少见。计算机软件计算方式也要“改朝换代”了,串行计算将步入历史,而并行计算则逐渐走向主流.目前能够充分发挥多核威力的软件还很少,为了与高速发展的硬件相适应,许多公司投入大量资金来研究多核并行计算技术。并行计算已经在数据中心和超级计算机有了很多应用,随着更高性能和更低能耗的多核时代的不断演进,并行计算在个人电脑上手机上也会有更多更广应用,必将渗透到人们工作和生活的方方面面。为了最大限度地发挥多核的优势,需要有针对多核并行计算开发和优化应用程序。正是在此大背景下,我从四大基本运算中最复杂的除法着手,发明了双核双向并行除法计算方法:一个核从前往后算,另一个核从后往前算,为双核计算机除法并行计算提供了新的重要工具。这种从前往后的除法计算方法也和传统的除法不同,它是把商数移到被除数方继续除。我国数学科普作家谈祥柏在《乐在其中的数学》一书223页说到美国著名数学家冯.诺依曼(Von Neumann 1903-1957)就曾经使用过这个方法,用0.1/2来代替传统的除法1/19。但是他当时用的这种方法只能用在除数是19,29,39,…,79,89,的这8个两位数。实际上这8个数仅仅是我的发明的这种新方法的几个特例而已。对这8个以9为个位数的两位数的除法计算方法,已经出现了几十年,没有看到新的进展,其它数能不能也这样算?这样算的一般原理是什么?日本著名数学史家平山谛博士(1904-1998)在《东西数学物语》一书第360页说道,29,299,2999,..,39,399,3999,…,也可以这样算,原理是什么?并没有找到。经过多年研究,我找到了这种方法 的原理,个位数是1,3,7,9结尾的数都可以使用,同时也发明出了从后向前除的新方法:不用除的除法,只用加法和乘法。这种除法比传统从前往后算的方法更简单更容易,完全不用试商,商数就是上一步加法计算结果,一眼就看出来了。
两个核同时使用上面这两种相互独立的不同方法,从而使双向并行除法得以实现。把人类使用了几千年只能串行计算的传统除法,变成可以双向并行计算,从而大大提高了除法的计算速度,特别方便多核计算机的除法计算。
发明内容
1.发明目的
本发明的目的是把人类使用了几千年只能串行计算的传统除法,变成可以双向并行计算,使多核计算机进一步提高除法的计算速度,为众多双核并行计算应用程序,超级计算机双向并行计算以及未来的量子计算机提供了重要工具。
2.算法原理
普通除法的基本计算过程是这样的,第一步用除数来分被除数计算出商数,再把余数看做新的被除数,继续用除数来分,如此循环做下去。从这个计算过程可以看出,后面的每一步必须在前一步完成后,计算出新的余数,才可以做下一步的计算。因此这种方法是典型的串行计算方法,无法进行并行计算。
我发明的除法双向并行计算算法的核心点是发明出了可以从前往后算,也可同时独立从后往前算的的新方法。凡是个位数是1,3,7,9结尾的数都可以使用新方法,对于个位数以0,2,5结尾的数,只要先除以2,或5就可以变成个位数是1,3,7,9结尾的数。
下面以计算3/7为例来说明这种新方法。a=3,b=7,计算a/b=?
2.1从前往后算
从前往后算法,新除数、被除数的计算规则。
新方法先要对除数、被除数进行适当的变化,计算出新的除数、被 除数。对于除数个位数是1,3,7,9,计算方法各不相同,新除数的计算规则是:(以412分别除以621,623,627,629为例)
412/621变成 412·9/(621·9+1)=3708/5590
412/623变成 412·3/(623·3+1)=1236/1870
412/627变成 412·7/(627·7+1)=2884/4390
412/629变成 412/(629+1)=412/630
本例3/7,新的被除数变成a1=3·7=21,新除数变成b1=7·7+1=50,除式变成a1/b1=21/50。
2.1.1从前往后算的计算过程
这里的?代表新的商要拷贝到被除数的位置。
商数4拷贝到被除数的个位,214减去50乘4,余数14后面的?表示下一个商数出现的位置,商数从除数先复制到被除数的个位,相减后出现在14的右面。
后面几位的计算方法和前面两位商的计算方法完全相同。
当余数再次出现21时,表示一个循环节全部计算完成,后面重复循环,不用再计算下去了。3/7=0.428571...
2.2从后往前算(以下称倒算法)
倒算法又可以分成两类:一种需要重新计算除数、被除数,另一种则不需要。
2.2.1新除数、被除数的计算规则
a1=3·7=21;b1=(7·7+1)/10=5,和从前往后算有一点不同,因为倒算第一步被除数要割舍去一位,相当于除10,所以新的除数计算也要相应除以10。在本例中,a1/b1=21/50变成a1/b1=21/5。
2.2.2倒算法的计算过程
下划线是为了表明这个数准备移到商数上去。
1移到商数位置,作为倒算第一个商数。
第二步,5乘1加2等于7,注意2.1从前往后算此处是减法,对称的这里是加法,因为7准备移到商数的位置,7的前面一位没有数了, 为了后面相加时不错位,要在7前面补一个0。
7移到上面去。
5乘7和0相加,5准备移上去,后面几位算法完全相同,直到被除数方再次出现21,回到开始,一个循环节计算完成,继续做下去就是计算第二个循环节,完全重复上面的过程。由于这是倒算,所以最后要补上“0.”。对于出现数字0,和其它数字完全一样的计算方法,0移到商数上去,因为0乘任何数等于0,所以只需后移一位继续算。
2.3不用重新计算除数被、除数的割0倒算法
从上面两种计算过程可以看出,从前往后和从后往前对称,拷贝和割去对称,加法和减法对称,充分体现了数学逻辑之严密和优美。
自然而然就会联想到,那么普通除法也会不会有一种与其相对称的算法呢?普通除法是从左往右计算,每计算完一步后,被除数要乘以10再 继续计算,也可以看成添加一个0。那么根据对称性,从后往前的算法,应该是计算每一位割去一个0,同时减法变成加法。这个猜想对吗?经过反复计算试验,果然找到了这种对称算法。数学是如此的优美,真让人兴奋不已。
2.3.1
下面以34/73为例说明割0倒算算法。它是普通除法的对称算法,不用重新计算除数、被除数。
a=34,b=73,a/b=34/73=0.46575342
上述例子中第一个商数就是这样确定的:从1,2,3,...到9,逐一试乘73的个位数3,再加34的个位数4,只有2·3+4=10,满足了和数的个位数必须等于0的要求,因此第一位商数只能取2,同理第二个商数是4,因为只有4·3+8等于20,才使和数20的个位数是0。
新算法确定商数的规则是:商数先乘以除数的个位数,然后再加上被除数的个位数,所得之和数的个位数必须等于0。
2.3.2不用重新计算除数、被除数的倒算,还有其它9种不同方法。
上面2.2倒算法的计算过程中,每一步割去的个位数数字不一定相同,而2.3的割0倒算法,每一步割去的个位数数字完全相同,都是0。除过这两种方法外,倒算还可以有其它9种不同的割舍方法:1,2,...,9,这9个数字都可以做为倒算第一步被割舍对象,第二步以后每一步计算过程割舍的数字完全一样,可以是0或9。因此一个除法的同一个结果,可以用10种不同的倒算方法算出,其中以割0最为简单容易。其它9种同这种割0的方法类似,此处从略。
2.4新算法与其它算法的效率比较及新特征
上面介绍的12种除法新方法,比较而言,2.2的倒算最快速,最容易,虽然比2.3的割0倒算法多了一步计算新除数、被除数,但是却省了每一个商数的试算,快了不少,容易了许多。因此在设计双核双向并行除法计算器时,应该首选这种方法。此外这种算法还有以下几个特点:
其一,只要算完一个循环节,就可以得到任意位长的计算精度。
其二,倒算还有一个好处就是,不用计算前面若干位的数,就可以算出后面若干位,满足有些特殊用处。
其三,对于像除数是19,29,39,....,89这类数,两位数除法变成一位数除法,很容易心算完成。其它凡是个位数以9结尾的数,在计算过程中,除数的位数也减少了一位,减少了计算量。
其四,方便双核计算机的并行计算,一个进程从前往后计算,另一个从后往前计算,相遇时结束,或各算指定的位数。
2.5新算法的理论根据。
由数论基本理论可知,任何自然数都可以唯一表示为2α·5β·d, (d,10)=1,d的个位数一定只可能是1,3,7,9,c/d(不失一般性,设c<d,否则再做一次除法,就有c<d)一定是纯循环小数,新的除法算法就是根据纯循环小数这个原理来设计的,倒算法要计算完一个循环节才算完成。
1=0.142857·7+0.000001=0.999999+0.000001
3=2.999997+0.000003=0.428571·7+0.000003
3/7=0.428571+0.000003/7
3/7=21/49
21+0.428571=21.428571=0.428571·50+0.000021
21.428571/50=0.428571+0.000021/50…
这就是为什么21/49用21/50来计算就可以把商数复制到被除数上的依据。
3.算法特点:
该方法的串行计算部分的计算量很小,两大部分主要计算工作量都可以并行计算,因此加速比很高。理论上两个核可以提高两把倍。两个并行计算进程部分完全同时独立完成本部分的计算,不需要和别的进程通信,所以适用各种类型超级计算机或多核计算机的并行除法计算。
发明有益效果
本发明把人类使用了几千年只能串行计算的传统除法,变成可以双向并行计算,从而大大提高了除法的计算速度。今天多核CPU已经成为计算机普遍使用的基本配置,因此每个多核计算机都可以从本发明获益。特别是对于那些具有十几万核数的超级计算机更是受益匪浅,过去因除法计算量太大而不能解决的有些问题,现在使用本发明后有可能解决了。根据我几年来在多核计算机大量实际计算测试,用我发明的这个双核并行计算算法,都比传统的除法要快。由于现在多核计算机的核还只有几个或十几个,超级计算机也只有十几万个,而量子计算机的并行计算能力相当于数百万个核的能力,那时该算法才能真正发挥出它的并行计算威力。特别要说明的是当除数是素数时,我进一步深入研究,发现了素数循环节有许多新特征都可以使双向并行除法计算量减少很多, 内容超出本专利范围,此处从略。
4.算法逻辑如下:
△代表该行为注释说明
△双核计算机除法并行计算算法逻辑
△输入:M被除数,N除数,M<N,计算M/N的N-1位数Program:
△begin
△如果除数N的个位数不是1,3,7,9,则除以2,或5,直到N的个位数是1,3,7,9为止。
△计算新被除数和除数:
除数N个位数是1:M=M*9,N=N*9+1
除数N个位数是3:M=M*3,N=N*3+1;
除数N个位数是7:M=M*7,N=N*7+1
除数N个位数是9:M=M*1,N=N+1。
△执行2.1.1从前往后算的计算过程
△执行2.2.1倒算法的计算过程
△结束条件:两个过程各计算完N-1的一半或相遇时并行计算结束。
△end 。
Claims (3)
1.一种实现双向并行除法的算法与装置,其特征是:凡是除数个位数是1,3,7,9结尾的数,发明出了两种除法新方法:一种是从前往后算,与传统除法不同的是,它是把商数移到被除数方继续除;另一种方法是从后往前倒算除法,这是一种完全不用除的除法,只用加法和乘法。
2.根据权利要求1所述的方法,其特征是:除法可以从前后两个方向用上面所述的两种不同的算法同时来并行计算。
3.需要特别说明的是:本专利所发明得这两种除法新方法,只要不是用在双核、多核计算装置和量子计算机做并行除法计算,任何个人或组织机构都可以随便单独使用任何一种上面所述的除法新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410756017.XA CN104572013A (zh) | 2014-12-09 | 2014-12-09 | 一种双向并行除法计算器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410756017.XA CN104572013A (zh) | 2014-12-09 | 2014-12-09 | 一种双向并行除法计算器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104572013A true CN104572013A (zh) | 2015-04-29 |
Family
ID=53088193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410756017.XA Pending CN104572013A (zh) | 2014-12-09 | 2014-12-09 | 一种双向并行除法计算器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572013A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162725A (zh) * | 2020-09-30 | 2021-01-01 | 合肥本源量子计算科技有限责任公司 | 一种量子除法运算方法、装置、电子装置及存储介质 |
-
2014
- 2014-12-09 CN CN201410756017.XA patent/CN104572013A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162725A (zh) * | 2020-09-30 | 2021-01-01 | 合肥本源量子计算科技有限责任公司 | 一种量子除法运算方法、装置、电子装置及存储介质 |
CN112162725B (zh) * | 2020-09-30 | 2024-02-09 | 本源量子计算科技(合肥)股份有限公司 | 一种量子除法运算方法、装置、电子装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103677736B (zh) | 数字信号处理器的数据路径电路 | |
CN107807819A (zh) | 一种支持离散数据表示的用于执行人工神经网络正向运算的装置及方法 | |
Lehmer | On arccotangent relations for π | |
TW200413956A (en) | Length-scalable fast Fourier transformation digital signal processing architecture | |
Moghadam et al. | Ultra-area-efficient reversible multiplier | |
CN109947474A (zh) | 用于有符号字的向量乘法、舍入和饱和的装置和方法 | |
CN104572013A (zh) | 一种双向并行除法计算器 | |
Sattar et al. | Data parallel large sparse deep neural network on gpu | |
Solomko et al. | Study of carry optimization while adding binary numbers in the rademacher number-theoretic basis | |
CN103699356B (zh) | 一种并行除法计算器 | |
Bell | Arithmetic of logic | |
Khairnar et al. | Vedic mathematics-The cosmic software for implementation of fast algorithms | |
Ganesh et al. | Review of Vedic Sutras | |
Nishiyama | Machin’s formula and Pi | |
Kucherov et al. | Towards Optimizing Cloud Computing Using Residue Number System | |
Olsen | Proposal for a high precision tensor processing unit | |
Rajasekar et al. | Design of high speed optimized vedic multiplication techniques | |
Wang et al. | On moving frames and Toda lattices of BKP and CKP types | |
Soleymani | An optimally convergent three-step class of derivative-free methods | |
Nasehpour | A brief history of algebra with a focus on the distributive law and semiring theory | |
Mia | A Fast Multiplication Approach Using a Tree-Based Structure | |
CN1776606B (zh) | 增q进制、进位行数字工程方法和增q进制、进位行计算机 | |
Yao-Yong et al. | The algorithm of extraction in Greek and Sino-Indian mathematical traditions | |
Ralston | Numbers and number systems | |
Kekre et al. | Multiplication of integers in mixed radix number system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |