【发布时间】:2018-03-10 23:36:35
【问题描述】:
根据 OpenMP 规范,OMP_CANCELLATION 必须设置为 true,这样#pragma omp cancel 之类的语句才能生效。我需要启用取消功能,我的程序才能正常工作(如果需要,一个 GUI 中止按钮会触发取消)。
我尝试在程序中设置OMP_CANCELLATION
setenv("OMP_CANCELLATION", "true", 1);
作为程序的第一行,但是这个语句没有任何作用。如果我在运行程序之前从外部的 shell 手动export OMP_CANCELLATION=true,则取消工作正常。
是否可以在程序内部启用取消而不需要在外部设置此环境变量?
【问题讨论】:
-
也许在
main()运行之前就已经查询了该值?有一个线程here 至少表明这可能是不可能的(尽管它是关于 FORTRAN)。 -
在 OpenMP ARB 的论坛 forum.openmp.org/forum/viewforum.php?f=3 上提问可能是值得的,这样参与标准的人就有可能注意到这个遗漏......
标签: c++ openmp cancellation