问题
I need to make t
static to each thread, how can I do that? I tried this but t
is not static private to each thread.
#pragma omp Parallel
{
traceRays();
}
...
...
void traceRays()
{
static float t = 1;
}
回答1:
if the static variable is not declared in the parallel region, then everytime you attempt to define in the parallel region use: #omp parallel private(t)
回答2:
You can do it by just making t
threadprivate:
void traceRays()
{
static float t = 1;
#pragma omp threadprivate(t)
}
来源:https://stackoverflow.com/questions/27269170/making-a-variable-static-private-to-each-thread-using-openmp