小编Mic*_*ert的帖子

Clojure reducer - 有效地将函数应用于并行的两个向量

将两个或多个大型向量组合在一起的最有效和最惯用的方法是什么?这就是我一直在做的事情.在我的应用程序中,我使用矩阵,因此每个操作比添加两个双精度要贵一些.使用range驱动倍感觉有点笨拙.

(require '[clojure.core.reducers :as r])

(def a (mapv (fn [_] (rand 100)) (range 100000)))
(def b (mapv (fn [_] (rand 100)) (range 100000)))
(r/foldcat (r/map #(+ (a %) (b %)) (range (count a))))
Run Code Online (Sandbox Code Playgroud)

计算range可能最终成为多核CPU上最昂贵的位,因为它是唯一的非并行部分并涉及序列.

parallel-processing clojure

5
推荐指数
1
解决办法
189
查看次数

标签 统计

clojure ×1

parallel-processing ×1