gpt4 book ai didi

macos - OS X 中的并行 STL 算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:38:05 24 4
gpt4 key购买 nike

我致力于转换现有程序以利用 STL 的某些并行功能。

具体来说,我重新编写了一个大循环来处理 std::accumulate。它运行良好。

现在,我想让这个累加操作并行运行。

我看到的 GCC 文档概述了两个具体步骤。

  1. 包括编译器标志 -D_GLIBCXX_PARALLEL
  2. 可能添加标题 <parallel/algorithm>

添加编译器标志似乎并没有改变任何东西。执行时间是一样的,我在监控系统时没有看到任何多核使用的迹象。

添加并行/算法 header 时出现错误。我认为它会包含在最新版本的 gcc (4.7) 中。

那么,有几个问题:

  1. 是否有某种方法可以明确确定代码是否真正并行运行?
  2. 是否有在 OS X 上执行此操作的“最佳实践”方法? (理想的编译器标志、 header 等?)

欢迎提出任何建议。

谢谢!

最佳答案

参见 http://threadingbuildingblocks.org/

如果您只对 STL 算法进行并行化,您通常会对结果感到失望。这些算法通常只有在处理非常大的数据集(例如 N > 1000 万)时才开始显示出可扩展性优势。

TBB(和其他类似的)在更高层次上工作,专注于整体算法设计,而不仅仅是叶函数(如 std::accumulate())。

关于macos - OS X 中的并行 STL 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8172958/

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