在一个C++例子中,有一段代码是这样的。
var = getenv("OMP_NUM_THREADS");
if(var != NULL)
sscanf( var, "%d", &num_procs );
else {
printf("Set environment OMP_NUM_THREADS to 1");
exit(1);
}
运行的时候问题提示Set environment OMP_NUM_THREADS to 1。
请问OMP_NUM_THREADS是不是线程数?怎么设置?我在环境变量(用户变量和系统变量都)新建了变量名OMP_NUM_THREADS,值为1.但是还是提示Set environment OMP_NUM_THREADS to 1。请大家帮帮忙,谢谢!
OMP_NUM_THREADS 是执行是可用的线程数。你的代码使用getenv,所以在环境变量设置。
新建了变量但是还是提示Set environment OMP_NUM_THREADS to 1是因为你的执行环境没有继承环境变量。
你需要export OMP_NUM_THREADS。