Iro*_*fly 2 c parallel-processing bit-manipulation
我有一个非常大的数组(例如1000万个元素),它只包含1和0.我也有一堆并行线程(例如10),我想将这个大型数组块分成不同的线程,并使每个线程对它们负责的部分求和.
我使用"+"运算符编写了C&pthreads中的问题.但是,由于数组只包含1和0,我想知道有没有更快的方法来实现这个求和?(通过按位运算符,移位等?)由于我处理的是非常大的数组,因此天真的求和会破坏性能.
你在现代的CPU上添加了2个1000万个元素的数组......每秒可以执行大约3亿个指令(3GHz).
即使必须单独添加每个元素,也可以在0.003秒内添加两个完整的数组.(这确实是最糟糕的情况.在64位机器上,你应该能够一次添加64个元素)
除非在内循环中发生这种情况,否则这不应该会破坏性能.
考虑更全面地描述您的问题,并显示您当前的实现.
| 归档时间: |
|
| 查看次数: |
237 次 |
| 最近记录: |