def test_attempt_tasking_but_no_temporaries(self, opt): grid = Grid(shape=(10, 10, 10)) u = TimeFunction(name='u', grid=grid, save=10) op = Operator(Eq(u.forward, u + 1), opt=opt) piters = FindNodes(OmpIteration).visit(op) assert len(piters) == 0 op = Operator(Eq(u.forward, u + 1), opt=(opt, {'par-disabled': False})) # Degenerates to host execution with no data movement, since `u` is # a host Function piters = FindNodes(OmpIteration).visit(op) assert len(piters) == 1 assert type(piters.pop()) == OmpIteration
def _(iet): body = FindNodes(WhileAlive).visit(iet) assert len(body) == 1 body = body.pop() devicetype = as_list(self.lang[self.platform]) deviceid = self.deviceid init = Conditional( CondNe(deviceid, -1), self.lang['set-device']([deviceid] + devicetype) ) mapper = {body: List(body=[init, BlankLine, body])} iet = Transformer(mapper).visit(iet) return iet, {}