10

重複の可能性:
Haskell でのマルチコア プログラミングの状況は?

特にGHCでのステータスは?まだ人気がありますか、それともまだ実験段階ですか?

コンパイラは、いつ、どのように並列化するかを決定する際に、どのくらい慎重/きめ細かいですか? ランタイムはスレッドプールのサイズを適切に選択しますか、それともコマンド ラインで指定する必要がありますか?

4

3 に答える 3

5

長い答えは、ドンの応答にリンクされている論文です。簡単な答え:

  1. GHC は自動的にプログラムを並列化しません。

  2. ただし、parコンビネータを介して並列処理を導入するのは非常に簡単です。これに対する高レベルのインターフェースは、ドンが言及した「戦略」です。

  3. 追加parするだけでプログラムが高速化されるかどうかは、アルゴリズムに大きく依存します。利点は、落とし穴がないことです。デッドロックや競合を導入することはできません (型システムをだましている場合を除きます)。

于 2011-01-15T23:01:10.163 に答える
4

GHC の現在のスケジューリング、スレッド プール、および移行ポリシーは、論文「Runtime Support for Multicore Haskell」で説明されています。「戦略」スタイルの自動並列処理は、執筆時点で非常に広く使用されています。

于 2011-01-15T18:35:07.247 に答える
2

おそらく「自動並列処理」とは、Data Parallel Haskellのことですか? 私が見た限りでは、このプロジェクトに関する最新情報は、2010 年 4 月のSimon Peyton Jones によるビデオ プレゼンテーションで入手できます。

于 2011-01-15T23:19:37.720 に答える