Ich suche nach einer Möglichkeit, zwei Berechnungen parallel in der ST-Monad auszuführen. Ich baue ein ziemlich großes Array (mit STUArray) und ich würde es gerne parallel machen.Eine parallele Monad Karte in Haskell? So etwas wie parMapM?
Bisher habe ich gefunden this und this Q & A hier auf Stackoverflow, aber die erste in meinem Fall nicht anwendbar, da es mit reinem Code befasst sich nur und die zweite befasst sich mit der IO Monade - aber ich bin in ein Status-Thread
Ich habe auch das monad-parallel Paket gefunden, aber es erfordert, dass ich eine Instanz von 'MonadParallel' für ST habe. Auch das monad-par Paket unterstützt nur reine Berechnungen oder die IO-Monade.
Gibt es eine Möglichkeit, eine parallele monadische Berechnung in ST durchzuführen?
Der Aufbau eines großen Arrays parallel klingt wie etwas, das am besten in reinem Code statt ST getan wird. Ich nehme nicht an, dass Sie ein wenig mehr Informationen darüber geben könnten, was Sie in jede Zelle setzen möchten und warum Sie ST verwenden möchten. Es könnte Probleme geben, zum Beispiel, wenn Sie separate Aktionen in der ST-Monade für jede Zelle ausführen, dann kann dies wirklich nicht wirklich einfach parallel gemacht werden, da ST (anders als IO) keine Primitiven für die Kommunikation zwischen Threads bereitstellt. – DarkOtter