<< Back to previous view

[TBENCH-8] Alioth mandelbrot Created: 13/Sep/11  Updated: 15/Nov/11  Resolved: 15/Nov/11

Status: Closed
Project: test.benchmark
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Enhancement Priority: Major
Reporter: Paul Michael Bauer Assignee: Unassigned
Resolution: Completed Votes: 0
Labels: None

Attachments: File mandelbrotR1.diff    
Patch: Code and Test
Approval: Ok


Implement mandelbrot as described at http://shootout.alioth.debian.org/. See http://dev.clojure.org/display/testbenchmark/Alioth+Benchmarks for an overview.

Comment by Paul Michael Bauer [ 13/Sep/11 6:06 AM ]

This is a first pass at a mandelbrot that takes advantage of clojure 1.3 performance features.

Avoid idiomatic functional code.
Extensive iteration, in-place mutation, primitive arrays, manage our own threads etc. Not "pretty."
(currently .8 to .9 % of fastest java version).

Correctness tests, verified against a set of known-good resource files.

This is the first pass and my first time writing optimized clojure 1.3. I'm sure there are things that can be improved, so any feedback welcome.

I've included a modified version of the fastest java program in the patch as I've found it useful for comparison
(# time script/run_java alioth.java.mandelbrot 16000)
One thing we don't have is repeatable performance metrics/tests.
One approach would be to have tests that fail whenever the clojure version falls below a certain percentage of the java version.
That's something I'm working on.

Comment by Paul Michael Bauer [ 13/Sep/11 9:00 PM ]

Per discussion on mailing list (https://groups.google.com/d/topic/clojure-dev/Kr5teQh69Pw/discussion) removed java files.
Files pushed.

Comment by Stuart Halloway [ 15/Nov/11 7:29 PM ]

Paul, it is fine for you to close tickets yourself on contrib projects (all the notes about "core team only" apply to Clojure itself, not the contribs).

Generated at Thu Nov 26 00:58:52 CST 2015 using JIRA 4.4#649-r158309.