我目前正在开发一个项目,我需要更好地了解 GOMP 指令的 GCC 工作流程,并且我也想对源代码进行一些更改。 有这样做的最佳实践吗? 我应该重新编译整个 GCC 吗?
我已经搜索过如何构建我的 GCC,只是为了更改一些更改而这样做感觉有点过分
如果您查看此处的 openmp 文档,特别是 openmp-examples-5.2.2.pdf,似乎 GOMP 使用 pragmas 向 gcc 编译器提供信息并注释其行为方式,而不是实际重写GCC 的源代码。我不是专家,所以如果我不在,请原谅我......这是我看到的一个例子:
#include <std.io>
#include <omp.h>
int main (void) {
omp_set_nested(1);
omp_set_dynamic(0);
#pragma omp parallel
{
//should print whatever OMP_NUM_THREADS was set to.
printf ("Inner: num_thds=%d\n", omp_get_num_threads());
}
#pragma omp barrier
return 0;
}
您是否尝试使用 GOMP 将线程卸载到另一台设备?或者您只想在本地运行多线程?您具体想使用 GOMP 做什么? 希望我能帮上忙:)