9

まず、問題があると言います。10億桁の円周率を計算するか、多数の階乗を計算するか、大きなリストに対してマージソートを実行します。問題をより小さなタスクに分割し、各タスクを同時に実行して、結果を結合したいと思います。まず、このタイプの並行性の名前は何ですか?Clojureでどのように実行しますか?

4

1 に答える 1

4

現在のClojure1.4では、多分、、、またはを使用してこれを実現pmapできpcallsますpvalues。このpmap関数はの並列バージョンですがmap、実際には類似の非並列バージョンはありません(ただし、pcallsの「非並列バージョン」であると思います)。pvalueslistpvalues

ただし、説明する問題については、の並列バージョンを使用することをお勧めしますreduce。Clojure 1.2の古いもの(ここを参照)がありますが、これは私が使用したことがないため、その有用性について話すことはできません。

Clojure 1.5に付属するのは、この新しい「リデューサー」ライブラリで、RichHickeyがここでブログに書いています。ここでfoldは、の並列バージョンのようですreduce

于 2012-08-31T16:25:00.280 に答える