gpt4 book ai didi

c - 如何在 OpenMP 中从多个线程保存文件中的 wtime 差异?

转载 作者:行者123 更新时间:2023-11-30 16:42:38 27 4
gpt4 key购买 nike

我正在尝试将 OpenMP 用于数据库内部项目以提高性能。我需要将运行时间(正在使用omp_get_wtime())保存在文件中,因为我无法从该程序将任何内容打印到控制台。请建议是否有更好的方法。我尝试从所有线程写入单个文件(参见下面的代码),但是当线程数超过一个时,就会崩溃。请帮忙。提前致谢。

  FILE *fp = NULL;
fp = fopen("/home/fopen.txt","a");
...
omp_set_num_threads(2);
fprintf(fp,"Num of threads: %d\n",omp_get_num_threads());


#pragma omp parallel default(shared) private(tid)
{
tid = omp_get_thread_num();

#pragma omp critical
fprintf(fp,"ThreadID of this thread is %d\n",tid);
:
:
}
if (fp != NULL)
fclose(fp);

最佳答案

需要设置一个数组来记录时间,让每个线程写入数组的一个元素(按线程号索引)。在并行区域有剩余的事件线程将数组写入文件后。感谢@High Performance Mark。

关于c - 如何在 OpenMP 中从多个线程保存文件中的 wtime 差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45750179/

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