まず、問題があると言います。10億桁の円周率を計算するか、多数の階乗を計算するか、大きなリストに対してマージソートを実行します。問題をより小さなタスクに分割し、各タスクを同時に実行して、結果を結合したいと思います。まず、このタイプの並行性の名前は何ですか?Clojureでどのように実行しますか?
質問する
498 次
1 に答える
4
現在のClojure1.4では、多分、、、またはを使用してこれを実現pmap
できpcalls
ますpvalues
。このpmap
関数はの並列バージョンですがmap
、実際には類似の非並列バージョンはありません(ただし、pcalls
の「非並列バージョン」であると思います)。pvalues
list
pvalues
ただし、説明する問題については、の並列バージョンを使用することをお勧めしますreduce
。Clojure 1.2の古いもの(ここを参照)がありますが、これは私が使用したことがないため、その有用性について話すことはできません。
Clojure 1.5に付属するのは、この新しい「リデューサー」ライブラリで、RichHickeyがここでブログに書いています。ここでfold
は、の並列バージョンのようですreduce
。
于 2012-08-31T16:25:00.280 に答える