关于std::reduce(std::execution::par)疑似未生效且性能不及自定义多线程std::accumulate的问题咨询
std::reduce(std::execution::par)疑似未生效且性能不及自定义多线程std::accumulate的问题咨询
各位好,我最近碰到个挺费解的事儿:我自己写的多线程累加代码(核心用了std::accumulate),跑起来居然比开启了std::execution::par的std::reduce还快。我可不敢信自己的代码能比标准库的实现更优化,毕竟我本质上还是在多线程里用std::accumulate做累加操作。所以我大概率是在std::reduce的使用上出了什么问题?
对了,我测试用的向量长度非常大,理论上std::reduce的线程调度开销应该不会成为影响性能的主要因素才对,这就让我更困惑了。有没有大佬能帮忙分析下可能的原因呀?
内容来源于stack exchange
相关产品推荐
相关产品推荐

