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
/reduceSeq
patterns in the wrong place (basically if multiple threads execute it), I think such programs should not be considered valid.