使用-O3时,openMP for循环中的延迟输出

时间:2017-06-15 18:40:59

标签: c openmp

我编写了这段代码,它在for循环中执行一些计算要求很高的任务,我使用openMP进行并行化。所以我可以跟踪程序的位置,我将它输出到文件中它在循环中的当前位置。当我在没有标志的情况下编译它时,这种方法很有效,但是当我使用-O3时,整个输出都被延迟,直到循环完成。有没有办法防止这种情况发生,并确保程序遵循我给它的任务的顺序?这是一个示例代码:

FILE *out;    
int progress = 0, i;
out = fopen("output.txt","w");

#pragma omp parallel for
    for(i=0; i<132; i++){
        progress++
        fprintf(out,"%d/132\n",progress);
        ...
    }

0 个答案:

没有答案