devito
devito copied to clipboard
Illegal parallel code with global symbols in absence of explicit data dependencies
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