c++ - cpp中std::vector的并行排序
问题描述
概述
我正在编写用于std::vector<std::string>
在多线程中进行排序的代码。所以我使用了 mergeSort 的概念,我将向量分成块,对块进行排序,然后合并它。所有的排序和合并都是在基向量上完成的。在此过程中未完成任何任务
我并行排序,一旦排序完成,我并行合并向量。std::sort
与单线程相比,如果我的向量大小大于 10,000,这给了我运行时的巨大改进
现在,当我在tbb::parallel_sort
大小 > 10000 的同一向量上运行时,我能够实现相同的运行时间。但是当我运行时__gnu_parallel::sort
,它快了 2 倍。
问题
__gnu_parallel::sort
与以前的方法相比,有什么额外的?
解决方案
推荐阅读
- node.js - 尝试使用 Discord.js 使用不和谐机器人将消息发送到特定频道
- javascript - 如何使用 async GM_xmlhttpRequest 以原始顺序返回值?
- vba - 在 Word 中将超链接插入到内容控件中 - 尝试了几种方法但没有成功
- exchangewebservices - 尽管被 API 成功接受,通过 EWS API 写入的事件是否不能发送到邮箱?
- python - 如何将文本文件转换为要在 Python 中使用的字典?
- spring - 在 @PreAuthorize 中使用请求标头值
- architecture - 如何找出地址总线宽度有多宽?
- javascript - 如果单击提交按钮时字段未填写信息,则前端输入字段警告消息
- php - 管理面板页面阻止
- html - 为什么我的引导卡长度不一致?