Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread cameron
I forgot to mention, I cut the number of reverse iterations down to 1000 (not 1) so I wouldn't have to wait too long for criterium, the speedup numbers are representative of the full test though. Cameron. On Sunday, December 9, 2012 6:26:16 PM UTC+11, cameron wrote: > > > Interesting probl

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread cameron
Interesting problem, the slowdown seems to being caused by the reverse call (actually the calls to conj with a list argument). Calling conj in a multi-threaded environment seems to have a significant performance impact when using lists I created some alternate reverse implementations (the fastes

Re: Java, Lein, and Windows x64

2012-12-08 Thread Kruno Saho
Indeed. It is for Leiningen 2. On Sunday, December 9, 2012 1:05:46 PM UTC+11, Sean Corfield wrote: > > Is this for Leiningen 2? I've been running it on Windows 8 64-bit without > needing to update lein.bat. Which version of Windows are you on? > > > On Sat, Dec 8, 2012 at 10:15 AM, Kruno Saho >

Re: A Working nrepl-ritz Setup?

2012-12-08 Thread Timothy Washington
> Both these issues are probably caused by nrepl-ritz.el not being > loaded. Does a manual M-: (require 'nrepl-ritz) fix these? Not for me. If I don't explicitly include "*[clojure-complete "0.2.2"]*"... ... then doing `*M-: (require 'nrepl-ritz)*` before an `*M-x nrepl-ritz-jack-in*`, still giv

core.logic vs datomic

2012-12-08 Thread Brent Millare
I understand both core.logic and datomic offer a query system. While there are clear interface differences, and the systems are continuing to evolve so the answer will change over time, however, I don't have a good first order approximation understanding of the capabilities or performance diffe

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Lee Spector
On Dec 8, 2012, at 10:19 PM, meteorfox wrote: > > Now if you run vmstat 1 while running your benchmark you'll notice that the > run queue will be most of the time at 8, meaning that 8 "processes" are > waiting for CPU, and this is due to memory accesses (in this case, since this > is not true

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Lee Spector
On Dec 8, 2012, at 8:16 PM, Marek Šrank wrote: > > Yep, reducers, don't use lazy seqs. But they return just sth. like > transformed functions, that will be applied when building the collection. So > you can use them like this: > > (into [] (r/map burn (doall (range 4) > > See > http:

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread meteorfox
Correction regarding the run-queue, this is not completely correct, :S . But the stalled cycles and memory accesses still holds. Sorry for the misinformation. On Friday, December 7, 2012 8:25:14 PM UTC-5, Lee wrote: > > > I've been running compute intensive (multi-day), highly parallelizable >

Re: New web-like protocol

2012-12-08 Thread Adam Perry-Pelletier
Thanks, That looks like a good start. On Saturday, December 8, 2012 1:11:58 PM UTC-8, Daniel Pittman wrote: > > On Sat, Dec 8, 2012 at 10:31 AM, Adam Perry-Pelletier > > wrote: > > Are there any clojure projects/frameworks that would help me write a > brand > > new web-like protocol (e.g. ne

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread meteorfox
Lee: I ran Linux perf and also watched the run queue (with vmstat) and your bottleneck is basically memory access. The CPUs are idle 80% of the time by stalled cycles. Here's what I got on my machine. Intel Core i7 4 cores with Hyper thread (8 virtual processors) 16 GiB of Memory Oracle JVM an

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread meteorfox
Lee: So I ran On Friday, December 7, 2012 8:25:14 PM UTC-5, Lee wrote: > > > I've been running compute intensive (multi-day), highly parallelizable > Clojure processes on high-core-count machines and blithely assuming that > since I saw near maximal CPU utilization in "top" and the like that I

Re: Java, Lein, and Windows x64

2012-12-08 Thread Sean Corfield
Is this for Leiningen 2? I've been running it on Windows 8 64-bit without needing to update lein.bat. Which version of Windows are you on? On Sat, Dec 8, 2012 at 10:15 AM, Kruno Saho wrote: > There seems to be an issue, which I have spent several days combating. The > issue is simple, you can n

ANN: cljunit 0.1.0

2012-12-08 Thread Mikera
Hi all, Some people may find it useful to test Clojure from JUnit. e.g. - You are working in a Java environment, e.g. Eclipse with Counterclockwise - You want to test some Clojure code as part of a larger JUnit test suite - You are building a polyglot project and want to stick to one testing suite

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Marek Šrank
> Just tried, my first foray into reducers, but I must not be understanding > something correctly: > > (time (r/map burn (doall (range 4 > > returns in less than a second on my macbook pro, whereas > > (time (doall (map burn (range 4 > > takes nearly a minute. > > This feels lik

Re: A Working nrepl-ritz Setup?

2012-12-08 Thread Timothy Washington
Oh nice. An explicit inclusion of "*[clojure-complete "0.2.2"]*" gets rid of the complete core stacktrace. I believe that "*complete/core__init.class*" bug ( ultimately just means that auto-completion and other facilities aren't available ) comes from how "*nrepl-ritz-jack-in*" sets up a lein repl

Re: Decomplecting if

2012-12-08 Thread Michał Marczyk
Better yet, (defmacro iff [test & {:keys [then else]}] `(if ~test ~then ~else)) (that's doing the lookup for then and else in the map constructing from the macro's rest argument at compilation time rather than in an evaluated map including both at run time). Cheers, Michał On 9 December 2012

Re: A Working nrepl-ritz Setup?

2012-12-08 Thread Hugo Duncan
Charles Comstock writes: > Note that unlike the docs listed at ritz/nrepl, I also needed to add an > explicit dependency for clojure-complete 0.2.2. I also needed to use the > MELPA version of nrepl, nrepl-ritz. I still encounter some sort of issue > where it appears that the documentation qu

Re: Decomplecting if

2012-12-08 Thread Ben Wolfson
You may want to use some delays to prevent evaluation of untaken branches: user=> (iff true :else (println 1) :then (println 3)) 3 1 nil user=> On Sat, Dec 8, 2012 at 3:02 PM, Thomas Goossens wrote: > One of the issues i had and still have with the if function is that > because it has ordered

Re: A Working nrepl-ritz Setup?

2012-12-08 Thread Charles Comstock
I actually just encountered this error, and then intended to post how I fixed it as a reported issue and then forgot. So this is my current lein profile.clj {:user {:plugins [[lein-vanity "0.1.0"] [jonase/eastwood "0.0.2"] [lein-ritz "0.6.0"]] :depende

Decomplecting if

2012-12-08 Thread Thomas Goossens
One of the issues i had and still have with the if function is that because it has ordered arguments, makes things more complex. For small functions this is no so much of a problem. (if test 1 0) But when things get larger, that extra complexity of order without explicit information can get s

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Wm. Josiah Erikson
I'm glad somebody else can duplicate our findings! I get results similar to this on Intel hardware. On AMD hardware, the disparity is bigger, and multiple threads of a single JVM invocation on AMD hardware consistently gives me slowdowns as compared to a single thread. Also, your results are on

Re: New web-like protocol

2012-12-08 Thread Daniel Pittman
On Sat, Dec 8, 2012 at 10:31 AM, Adam Perry-Pelletier wrote: > Are there any clojure projects/frameworks that would help me write a brand > new web-like protocol (e.g. newprotocol://)? I've written basic > servers in clojure, but would like to forego the low-level stream reading > and get write t

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Andy Fingerhut
One more possibility to consider: Single-threaded versions are more likely to keep the working set in the processor's largest cache, whereas parallel versions that use N times the working set for N times the parallelism can cause that same cache to thrash to main memory. Andy -- You received

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Lee Spector
On Dec 8, 2012, at 3:42 PM, Andy Fingerhut wrote: > > I'm hoping you realize that (take 1 (iterate reverse value)) is reversing > a linked list 1 times, each time allocating 1 cons cells (or > Clojure's equivalent of a cons cell)? For a total of around 100,000,000 > memory allocat

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Andy Fingerhut
On Dec 7, 2012, at 5:25 PM, Lee Spector wrote: > The test: I wrote a time-consuming function that just does a bunch of math > and list manipulation (which is what takes a lot of time in my real > applications): > > (defn burn > ([] (loop [i 0 > value '()] >(if (>= i 1

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Andy Fingerhut
I haven't analyzed your results in detail, but here are some results I had on my 2GHz 4-core Intel core i7 MacBook Pro vintage 2011. When running multiple threads within a single JVM invocation, I never got a speedup of even 2. The highest speedup I measured was 1.82 speedup when I ran 8 threa

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Wm. Josiah Erikson
Andy: The short answer is yes, and we saw huge speedups. My latest post, as well as Lee's, has details. On Friday, December 7, 2012 9:42:03 PM UTC-5, Andy Fingerhut wrote: > > > On Dec 7, 2012, at 5:25 PM, Lee Spector wrote: > > > > > Another strange observation is that we can run multiple inst

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Wm. Josiah Erikson
Hi guys - I'm the colleague Lee speaks of. Because Jim mentioned running things on a 4-core Phenom II, I did some benchmarking on a Phenom II X4 945, and found some very strange results, which I shall post here, after I explain a little function that Lee wrote that is designed to get improved r

New web-like protocol

2012-12-08 Thread Adam Perry-Pelletier
Are there any clojure projects/frameworks that would help me write a brand new web-like protocol (e.g. newprotocol://)? I've written basic servers in clojure, but would like to forego the low-level stream reading and get write to higher-level constructs. Thanks in advance. -- You received th

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Lee Spector
On Dec 8, 2012, at 1:28 PM, Paul deGrandis wrote: > My experiences in the past are similar to the numbers that Jim is reporting. > > I have recently been centering most of my crunching code around reducers. > Is it possible for you to cook up a small representative test using > reducers+fork/joi

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Paul deGrandis
My experiences in the past are similar to the numbers that Jim is reporting. I have recently been centering most of my crunching code around reducers. Is it possible for you to cook up a small representative test using reducers+fork/join (and potentially primitives in the intermediate steps)? Pe

Java, Lein, and Windows x64

2012-12-08 Thread Kruno Saho
There seems to be an issue, which I have spent several days combating. The issue is simple, you can not download any dependencies, and therefore you can not run Lein at all. The solution is very simple, and it is a well knows solution. In lein.bat, at the very end of the file there needs to be

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Lee Spector
On Dec 8, 2012, at 9:36 AM, Marshall Bockrath-Vandegrift wrote: > > Although it doesn’t impact your benchmark, `pmap` may be further > adversely affecting the performance of your actual program. There’s a > open bug regarding `pmap` and chunked seqs: > >http://dev.clojure.org/jira/browse/CL

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Lee Spector
On Dec 7, 2012, at 9:42 PM, Andy Fingerhut wrote: > > > When you say "we can run multiple instances of the test on the same machine", > do you mean that, for example, on an 8 core machine you run 8 different JVMs > in parallel, each doing a single-threaded 'map' in your Clojure code and not >

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Marshall Bockrath-Vandegrift
Lee Spector writes: > I'm also aware that the test that produced the data I give below, > insofar as it uses pmap to do the distribution, may leave cores idle > for a bit if some tasks take a lot longer than others, because of the > way that pmap allocates cores to threads. Although it doesn’t i

Re: abysmal multicore performance, especially on AMD processors

2012-12-08 Thread Jim - FooBar();
Even though this is very surprising (and sad) to hear, I'm afraid I've got different experiences... My reducer-based parallel minimax is about 3x faster than the serial one, on my 4-core AMD phenom II and a tiny bit faster on my girlfriend's intel i5 (2 physical cores + 2 virtual). I'm suspecti

Re: [lein-cljsbuild] exclude a cljs from compilation

2012-12-08 Thread Mimmo Cosenza
Hi David, next monday me, Federico and Francesco (in cc) which are interns in sinapsi to learn about big data, machine learning and data visualizations/infographics, will take a look at cljsbuild code to understand where Compilable protocol is involved. Thank again for your advice and support.