gpt4 book ai didi

c++ - 如何组织并行程序的正确输出?

转载 作者:行者123 更新时间:2023-11-28 03:35:30 25 4
gpt4 key购买 nike

我有一个使用 openMP 的类似 C++ 程序

#pragma omp parallel for private(i)
for (j=0;j<NUM_STEPS_J) {

for (i=0;i<NUM_STEPS_I;i++) {

std::cout << "Print some information about step i" << std::endl;


}

std::cout << "Check of item " << j << " finished" << std::endl;
}

在我的案例中提供正确输出的最佳方法是什么?

我知道,使用“printf”而不是“cout”可以解决这个问题。

但是当我将“cout”更改为“printf”时,我的程序执行时间从大约 80 秒增加到大约 120 秒。我认为,这足以影响程序的生产力。

不用“printf”解决这个问题的最佳方法是什么?

是否可以通过某种方式在输出期间锁定“cout”函数?

最佳答案

我会惊讶地看到 printf比 iostreams 慢...(考虑到您正在使用强制刷新缓冲区的 std::endl 更慢)但无论如何,您可以使用 stringstream立即构建输出,然后调用 printfstd::cout <<一次与已经建成的生产线。

关于c++ - 如何组织并行程序的正确输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11002971/

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