用线程进行格子乘法,效率更高吗?
哪个更快:
用线程进行格子乘法(处理大数字)还是用线程进行普通乘法(处理大数字)?
你知道有什么源代码可以用来测试它们吗?
-----------------编辑------------------
这些线程应该用C语言或Java来实现,以便进行测试。
1 个回答
1
如果我理解得没错,“格子乘法”是一种手动进行十进制乘法的不同方法,听说这种方法比传统的乘法更容易让孩子们理解。我猜“普通乘法”就是指传统的乘法。
所以,我认为最好的答案是:
无论是“格子乘法”还是“普通乘法”,都不是在电脑上进行乘法运算的好(高效)方法。对于小数字(最多到2的64次方),使用内置的硬件乘法会更好。对于大数字,最好把数字分成8位或32位的小块来处理……
多线程在乘法运算中不太可能加速,除非你处理的是非常大的数字。创建(或回收)一个线程本身的开销可能会抵消对于小数字的任何理论加速。而对于大数字(以及更多的线程),你还需要考虑数据传输的带宽问题。
注意,网上有一些关于并行乘法的资料(可以去谷歌搜索),但大多数都是学术文献……这可能说明了在今天用于低端和高端计算的硬件上,这种方法的实用性到底如何。