devito icon indicating copy to clipboard operation
devito copied to clipboard

Illegal parallel code with global symbols in absence of explicit data dependencies

Open FabioLuporini opened this issue 1 year ago • 2 comments

Reproducer:

import numpy as np

from devito import *
from devito.types import Symbol

configuration['language'] = 'openmp'

grid = Grid(shape=(10,))
x, = grid.dimensions

f = Function(name='f', grid=grid, space_order=0)
s = Symbol(name='s', dtype=np.int32)

eqns = [Eq(s, 0),
        Eq(f[s], x),
        Eq(s, s + 1, implicit_dims=(x,))]

op = Operator(eqns)

op.apply()

assert np.all(f.data == list(range(10)))

Without openmp, this assert passes

FabioLuporini avatar Feb 08 '23 09:02 FabioLuporini