<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Clojure Q&amp;A - Recent questions tagged r fold</title>
<link>https://ask.clojure.org/index.php/tag/r%20fold</link>
<description>Powered by Question2Answer</description>
<item>
<title>Why is r/fold not parallelized across all available cpus?</title>
<link>https://ask.clojure.org/index.php/9475/why-is-r-fold-not-parallelized-across-all-available-cpus</link>
<description>&lt;p&gt;I would have expected the below to be parallelized across all available cpus (in this case 12) but it only runs on one. What am I doing wrong?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(ns csv2summap.core
  (:require [clojure.data.csv :as csv]
            [clojure.java.io :as io]
            [clojure.core.reducers :as r])))

(with-open [writer (io/writer &quot;numbers.csv&quot;)]
  (csv/write-csv
   writer
   (take 10000000
         (repeatedly #(vector (char (+ 65 (rand-int 26))) (rand-int 1000))))))

(defn sum-vals
([] {})
([m [k v]]
 (update m k (fnil + 0) (Integer/parseInt v))))

(defn merge-sums
([] {})
([&amp;amp; m] (apply merge-with + m)))

(time
(with-open [reader (io/reader &quot;numbers.csv&quot;)]
  (doall
   (r/fold
    (/ 10000000 12)
    merge-sums
    sum-vals
    (csv/read-csv reader)))))
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;&lt;pre&gt;&lt;code&gt;(def n-cpu (.availableProcessors (Runtime/getRuntime)))
=&amp;gt;12
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;(ns csv2summap.core
  (:require [clojure.data.csv :as csv]
            [clojure.java.io :as io]
            [clojure.core.reducers :as r])))
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(defproject csv2summap &quot;0.1.0-SNAPSHOT&quot;
  :description &quot;FIXME: write description&quot;
  :url &quot;http://example.com/FIXME&quot;
  :license {:name &quot;EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0&quot;
            :url &quot;https://www.eclipse.org/legal/epl-2.0/&quot;}
  :dependencies [[org.clojure/clojure &quot;1.10.1&quot;]
                 [org.clojure/data.csv &quot;1.0.0&quot;]]
  :repl-options {:init-ns csv2summap.core})
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>Sequences</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9475/why-is-r-fold-not-parallelized-across-all-available-cpus</guid>
<pubDate>Sun, 19 Jul 2020 11:14:29 +0000</pubDate>
</item>
</channel>
</rss>