thanks for the link! yes off topic but looks interesting still, haven't heard of the GoL for awhile, I'm always a sucker for pretty visualisations of maths ;-)
On 25 March 2010 23:21, John Muir <[email protected]> wrote: > This may be waaay off topic, but if you could use Python then this > implementation of the game of life may have something to teach - it's > really blindingly fast! > > http://golly.sourceforge.net/ > > enjoy, > John > > On Mar 25, 4:15 am, Matthew Kerle <[email protected]> wrote: > > TL;DR we're writing a Mandelbrot set viewer and need to dive deeper. > > BigDecimal sucks. help! > > > > So... My friend wrote a mandelbrot set viewer in Java (with Netbeans =D ) > > using floats, it's pretty nice and lets you pan around and zoom and the > > performance is not too bad, but after a while you hit the precision limit > of > > float (image pixellates out) so we swapped over to double and got a bit > > deeper. > > > > The problem is now we want to go deeper than double lets us (step 6 > > here< > http://en.wikipedia.org/wiki/Mandelbrot_set#Image_gallery_of_a_zoom_s.. > .>). > > We tried implementing with BigDecimal but the performance absolutely > crapped > > out, like 100x worse, you die waiting for a single frame to render even > with > > precision turned way down (God help if you don't set a MathContext!!). > After > > googling around it looks like the problem is BigDecimal, it's optimised > for > > precision over speed. we don't care very much about precision, we just > need > > enough to get our pretty colours :-) Speed is more of a concern, although > > obviously we're not realistically expecting float/double type speed from > > arbitrary-precision arithmetic, but a slowdown of 2-5x would be fine, 10x > + > > starts getting depressing though... > > > > Other methods of performance tuning we're looking at: > > - firstly progressive rendering (eg, do 100 iterations, draw an image, > then > > next 100 and so on to limit) > > - scale-dependant implementation (eg go from float to double to ? as you > > zoom in) > > - multi-threading (split the image up and hand each portion off to a > core, > > not sure best way to configure this, thread per core?) > > - caching (not sure best strategy for this, store result for each point > with > > iteration count or image directly? cache would get HUGE, but don't > care...) > > > > I've found the ApFloat library <http://www.apfloat.org/apfloat_java/> > which > > looks pretty cool. but haven't had a chance to run some comparison runs > with > > it against BD yet (darn day job!!). > > > > Just wondering if anyone else has any experience with this domain or any > > pointers? it's been a few years since uni and my number theory is a bit > > rusty (one of the reasons we're playing with this...). mandelbrot uses > > T(n+1) = n^2 + first term, so maybe we can do some optimisations by using > > operating on integers and storing the precision separately? (obviously > this > > is what BD does already, but we only want a narrow slice of what it > does...) > > > > incidentally, found Fast Fractal, it's a closed-source > > windows-only<http://www.fastfractal.com/>program which purports to > > have GPU acceleration for fractal viewing. I tried > > it out and wasn't impressed, but then it couldn't detect my graphics card > so > > GPU acceleration wasn't enabled (low-rung Toshiba Satellite laptop). Any > > decent GPU accelerated mandelbrot viewers out there for linux? > > > > cheers! > > matt. > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<javaposse%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > > -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
