After #198 and #220, me and @johanneslenfers concluded that it would be very useful to implement some low-level Rise program sanity checks:
- for example, parallelism hierarchy should be respected, and
mapGlobal(0)(mapGlobal(0)(...)) is not a valid low-level program
- it is possible to create writing races by using
mapSeq/reduceSeq patterns in the wrong place (basically if multiple threads execute it), I think such programs should not be considered valid.
After #198 and #220, me and @johanneslenfers concluded that it would be very useful to implement some low-level Rise program sanity checks:
mapGlobal(0)(mapGlobal(0)(...))is not a valid low-level programmapSeq/reduceSeqpatterns in the wrong place (basically if multiple threads execute it), I think such programs should not be considered valid.