Ответ 1
Именно в этом и состоит Хаскелл. И у него отличная поддержка многоядерных parallelism, поэтому, когда вы используете больше потоков, вы можете легко использовать дополнительные ядра. Помните, однако, что Haskell нацелен на отличную производительность на многоядерном процессоре, Erlang немного отличается, подчеркивая распределенные системы больше и не так много сырой производительности (например, см. Игру в тестах, http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=ghc&lang2=hipe Haskell почти всегда намного быстрее и использует гораздо меньше памяти).
Теперь, чтобы начать:
-
Вы можете начать с примеров в Real World Haskell, чтобы узнать о слабых потоках forkIO и Haskell, http://book.realworldhaskell.org/read/concurrent-and-multicore-programming.html
-
Документы GHC по инструментам concurrency, http://haskell.org/haskellwiki/GHC/Concurrency
-
Библиотека, для которой требуется массивный, масштабируемый сетевой код, - это библиотека событий: http://github.com/tibbe/event, что упрощает используйте epoll как метод приема событий из сети. Вот простой пример: http://donsbot.wordpress.com/2010/01/17/playing-with-the-new-haskell-epoll-event-library/
-
Для получения дополнительной информации см. учебник Simon Marlow по созданию параллельного веб-сервера: http://www.haskell.org/~simonmar/bib/webserverjfp_abstract.html
Вы должны найти эту задачу относительно легко и весело!