gpt4 book ai didi

c++ - libstdc++ 并行模式快速排序的加速不佳

转载 作者:行者123 更新时间:2023-11-30 03:54:04 25 4
gpt4 key购买 nike

我无法通过 libstdc++(并行模式)的并行实现使用就地排序算法(快速排序和平衡快速排序;QS/BQS)获得高于 2 的加速比。我曾尝试在包含 16 到 24 个内核的许多不同系统上运行代码。我也尝试过 GNU 和 Intel C++ 编译器,即使在不同的版本中,也总是有相同的结果。对于介于 2 和最大值之间的任意数量的内核,大约 2 的加速是相同的。

相反,多路归并排序 (MWMS) 扩展性很好(在 16 核机器上使用 16 个线程,加速大约 10)。根据 J. Singler 的演讲“GNU libstdc++ 并行模式:受益于使用 STL 的多核”,他们测得的 BQS 加速与 MWMS 几乎相同(参见第 18 页,http://ls11-www.cs.uni-dortmund.de/people/gutweng/AD08/VO11_parallel_mode_overview.pdf );他们观察到使用 32 个线程的 BQS 加速超过 20。

知道为什么会这样或者我做错了什么吗?

最佳答案

我似乎只是通过调用就解决了这个问题:

omp_set_nested(1);

文档对这个要求有点不清楚。此外,我希望图书馆能够自行执行调用。希望这也会对其他人有所帮助。

关于c++ - libstdc++ 并行模式快速排序的加速不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29772041/

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