Мне очень нравится интерфейс Repa
, даже независимо от его возможностей параллелизма. И мне действительно нужно, чтобы массивы репы были последовательными, поскольку мои массивы относительно малы, и распараллеливание на них бесполезно, даже вредно.
Однако я использую распараллеливание в моей программе с параллельным вводом-выводом, поэтому я компилирую его -threaded
и запускаю с +RTS -Nx
. И это дает возможность распараллеливания для repa. Есть ли способ отключить функции параллелизма в repa?
Хм, при написании этого я понял, что вряд ли мне понадобится что-то другое, кроме DIM1
, поэтому, возможно, мне стоит перейти на Vector
. Но тем не менее ответ на вопрос будет полезен.
Предупреждающее сообщение, которое я получаю при параллельном запуске:
Data.Array.Repa: Performing nested parallel computation sequentially.
You've probably called the 'force' function while another instance was
already running. This can happen if the second version was suspended due
to lazy evaluation. Use 'deepSeqArray' to ensure that each array is fully
evaluated before you 'force' the next one.
На самом деле в моем коде нет force
.