相关疑难解决方法(0)

为什么Clojure在完成计算后会挂起?

我正在尝试并行过滤元素.对于每个元素,我需要执行距离计算以查看它是否足够接近目标点.不要因为这样做已经存在数据结构,我现在只做初步实验.

无论如何,我想运行一些非常基本的实验,我生成随机向量并过滤它们.这是我的实现,完成所有这些

(defn pfilter [pred coll]
  (map second
    (filter first
      (pmap (fn [item] [(pred item) item]) coll))))

(defn random-n-vector [n]
  (take n (repeatedly rand)))

(defn distance [u v]
  (Math/sqrt (reduce + (map #(Math/pow (- %1 %2) 2) u v))))

(defn -main [& args]
  (let [[n-str vectors-str threshold-str] args
        n (Integer/parseInt n-str)
        vectors (Integer/parseInt vectors-str)
        threshold (Double/parseDouble threshold-str)
        random-vector (partial random-n-vector n)
        u (random-vector)]
    (time (println n vectors 
      (count 
        (pfilter 
          (fn [v] (< (distance u v) threshold))
          (take vectors (repeatedly random-vector)))))))) …
Run Code Online (Sandbox Code Playgroud)

parallel-processing clojure

14
推荐指数
1
解决办法
1417
查看次数

标签 统计

clojure ×1

parallel-processing ×1