gpt4 book ai didi

c - 是否可以更快地对 0's 1' 求和?

转载 作者:行者123 更新时间:2023-12-02 07:07:06 24 4
gpt4 key购买 nike

我有一个非常大的数组(例如 1000 万个元素),其中仅包含 1 和 0。我还有一堆并行线程(例如 10 个),我想将这个大数组分块到不同的线程中,并让每个线程对它们负责的部分求和。

我已经使用“+”运算符在 C 和 pthreads 中对问题进行了编码。但是,由于数组仅由 1 和 0 组成,我想知道是否有更快的方法来实现此求和? (通过按位运算符、移位等?)由于我处理的是非常大的数组,天真的求和会降低性能。

最佳答案

您正在添加 2 个包含 1000 万个元素的数组...在每秒可执行大约 30 亿条指令 (3GHz) 的现代 CPU 上。

即使必须单独添加每个元素,您也可以在 0.003 秒内添加两个完整的数组。 (这确实是最坏的情况。在 64 位计算机上,您应该能够一次添加 64 个元素)

除非这发生在内部循环中,否则这不应该会降低性能。

考虑更全面地描述您的问题,并展示您当前的实现情况。

关于c - 是否可以更快地对 0's 1' 求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com