我有类似的 C++ 程序和 openMP 用法
#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”功能?