首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++17 STL并行算法中处理调度?

如何在C++17 STL并行算法中处理调度?
EN

Stack Overflow用户
提问于 2018-10-19 16:00:00
回答 2查看 223关注 0票数 2

是否有C++17 STL并行算法的标准调度程序规范,还是完全依赖于实现?串行算法具有复杂性保证,但调度器的实现对于非均匀任务负载的性能至关重要,规范是否解决了这一问题?如果没有标准化的调度程序,似乎很难保证跨平台的性能。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-19 16:05:00

据我从用词中可以看出,这些细节完全在实现规范的范围内,正如人们所期望的那样。标准通常不努力保证任何类型的绝对性能,只有复杂性需求,正如您在本例中所看到的那样。

最终,尽管您的源代码现在可以利用并行性而完全被标准定义,但是运行程序的实际结果取决于您的实现,我认为这仍然是有意义的。标准化特性的目标不是跨平台性能,而是可在真空中被证明是正确的可移植代码。

我希望您的工具链能够提供更多关于这类东西是如何工作的信息,这甚至可能会影响您对工具链的选择!但对他们来说,在这方面享有自由是有意义的,正如他们在其他领域所做的那样。毕竟,有很多目标平台(理论上是无限的),它们都有自己的潜力和怪癖。

未来的标准可能会对调度设置更多的限制,以便将实现者踢到后面一点,但就我个人而言,我不会指望它。

票数 6
EN

Stack Overflow用户

发布于 2018-12-23 18:23:29

C++17 STL算法的调度是由实现定义的.而且,C++17不能保证并行执行。它只允许并行。

类execution::parallel_policy是一种执行策略类型,用作消除并行算法重载歧义的唯一类型,并指示并行算法的执行可能是并行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52896047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档