Tuesday 17 November 2009

Clustery parallelism goodness

So, I had a request the other day to look at how xia2 could work on a cluster. Back in the day this was a consideration, but it kind of dropped by the wayside what with multi-cpu machines becoming the norm and anyway with Mosflm and Scala, the bottleneck simply moves to scaling. Well, I am reminded that XDS works nice with clusters, so I have added a "secret command line option" which will tell XDS to integrate in parallel across N jobs, using (by default) all of the CPU's in each. -xparallel.

For those cases where you simply have a lot of images, it can be really nice to use XDS like this. Just running a slightly bonkers example just now (1440 degrees, reasonably big unit cell, 1.75A) and it goes from 2h 39m 43s on one eight core machine to 19m 41s over 16.

There's plenty of time to be trimmed from this yet, too - watching top while this happened was just painful! This will be available in the forthcoming 0.3.1.0 release. Just keep in mind you need to configure your forkintegrate scripts to run with your cluster environment - feel free to get in touch for pointers with this.

No comments: