2
Repa数组上的并行mapM
在我最近的工作有Gibbs sampling,我已经作出了巨大的使用的RVar,在我看来,提供随机数生成近乎理想的接口。遗憾的是,由于无法在地图中使用单子动作,因此我无法使用Repa。 尽管显然单峰映射一般无法并行化,但在我看来,这RVar至少可以是一个可以安全地并行化效果的单子映射示例(至少在原理上;我对的内部运作并不十分熟悉RVar) 。即,我想写类似下面的东西, drawClass :: Sample -> RVar Class drawClass = ... drawClasses :: Array U DIM1 Sample -> RVar (Array U DIM1 Class) drawClasses samples = A.mapM drawClass samples 这里A.mapM看起来是这样的, mapM :: ParallelMonad m => (a -> m b) -> Array r sh a -> m (Array r …