gpt4 book ai didi

c++ - 哪个库用于迭代 1M*1k 次的并行 for 循环,OpenMP 或 boost::thread?

转载 作者:太空狗 更新时间:2023-10-29 21:25:19 25 4
gpt4 key购买 nike

我想逐个像素地迭代图像,并对每个像素执行 1000 次浮点运算。 你认为我应该为此使用多线程或多处理,即 boost::thread 还是 OpenMP?是否有在这 2 个之间进行选择的经验法则(以获得最快的速度)? 我了解到创建线程或在线程之间切换比创建/切换进程快数倍。另一方面,实现 OpenMP 代码要容易得多。

我现在的解决方案:

#pragma omp parallel for
for(size_t i=0; i<640; ++i) {
for(size_t j=0; j<480; ++j) {
// do 1000 float operations
}
}

最佳答案

OpenMP 对此绰绰有余,事实上 boost 甚至没有内置的并行循环结构。

Do you think I should use multi-threading or multiprocessing

虽然 OpenMP 表示 Open MultiProcessing,但它实际上是一个多线程库。

另一个值得关注的替代库是 Intel TBB。

关于c++ - 哪个库用于迭代 1M*1k 次的并行 for 循环,OpenMP 或 boost::thread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14216335/

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