Friday, November 13, 2009

Building multi-threaded XaoS in Windows

XaoS is a fractal viewer program which is designed for smooth continuous zooming. It's a great way to explore fractals such as the Mandelbrot Set. Nowadays, multi-core CPUs are the norm, but the Windows binary of XaoS does not support multi-thread operation.

XaoS is easy to build in Cygwin. The only problem is that XaoS is set up to build for MinGW (using -mno-cygwin) and Cygwin doesn't provide Pthreads support for MinGW applications. The solution is to use Pthreads-w32. Using this and running with the "-threads 4" option I'm able to use up to 100% CPU on my Q6600, and XaoS is much faster.

5 comments:

Mike said...

Any chance you'd like to make these binaries available for people who don't want to build them themselves? I'd love to see what Xaos could do on some bigger iron...

Boris Gjenero said...

I initially didn't distribute the binary because I didn't use all the libraries that XaoS normally links with. As a result, PNG file saving, internationalization and custom formulae are not available. Anyways, here's the binary.

Boris Gjenero said...

Here's my first attempt at a full build.

Custom formulae crash in multi-threaded mode but work in single-threaded mode. This is due to a known bug in XaoS.

Anonymous said...

VERY cool. Thank you -- thank you -- thank you! Realtime mandels are at last a possibility.

Boris Gjenero said...

Since drop.io is closing, the links I provided above will stop working. Here are new links hosted on Dropbox: the preliminary basic build and the full featured build.