2011-01-15 17 views
9

Powiel możliwe:
What's the status of multicore programming in Haskell?Aktualny stan automatycznego równoległości w Haskell

Jaki jest status szczególnie w GHC? Czy jest jeszcze popularny, czy nadal jest eksperymentalny?

Jak ostrożny/drobnoziarnisty jest kompilator w podejmowaniu decyzji, kiedy i jak zrównoleglić? Czy czas działania odpowiednio wybiera rozmiar wątku lub musimy go określić za pomocą wiersza poleceń?

+0

Gee, który właśnie mnie zawiódł? Straciłem 2 powtórzenia !!! – Phil

Odpowiedz

4

Aktualne harmonogramy GHC, puli wątków i migracji zostały opisane w artykule "Runtime Support for Multicore Haskell". "Strategie" w stylu semi -automatyczny paralelizm jest dość szeroko stosowany w momencie pisania.

4

Długa odpowiedź to dokument powiązany z odpowiedzią Dona. Krótka odpowiedź:

  1. GHC nie automatycznie parallelise programu.

  2. Jednak bardzo ułatwia wprowadzenie równoległości poprzez kombinator par. Interfejs wyższego poziomu do tego jest wspomniany w Don.

  3. Po prostu dodanie par przyspieszy twój program bardzo zależy od twojego algorytmu. Plusem jest to, że nie ma gotcha - nie można wprowadzać zakleszczeń ani wyścigów (chyba że oszukujesz system typu).