On 05/04/2011 01:48 PM, mark florisson wrote:
On 4 May 2011 13:47, mark florisson<markflorisso...@gmail.com> wrote:
On 4 May 2011 13:45, Dag Sverre Seljebotn<d.s.seljeb...@astro.uio.no> wrote:
Look.
i = 42
for i in prange(n):
f(i)
print i # want 42 whenever n == 0
Now, translate this to:
i = 42;
#pragma omp parallel for firstprivate(i) lastprivate(i)
for (temp = 0; ...; ...) {
i = ...
}
#pragma omp parallel end
/* At this point, i == 42 if n == 0 */
Am I missing something?
Yes, 'i' may be uninitialized with nsteps> 0 (this should be valid
code). So if nsteps> 0, we need to initialize 'i' to something to get
correct behaviour with firstprivate.
This I don't see. I think I need to be spoon-fed on this one.
And of course, if you initialize 'i' unconditionally, you change 'i'
whereas you might have to leave it unaffected.
This I see.
Dag Sverre
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel