***  For details on how to be removed from this list visit the  ***
***          CCP4 home page http://www.ccp4.ac.uk         ***



On Oct 16, 2006, at 1:14 PM, Kay Diederichs wrote:

***  For details on how to be removed from this list visit the  ***
***          CCP4 home page http://www.ccp4.ac.uk         ***


Hi Jonathan,

the answer depends on what you mean with "parallel" -

a) two or more jobs running at the same time? Of course this benefits from a cluster provided it has transparent load-balancing (like what Mosix2 provides, see http://www.mosix.org, or what "single system image, SSI" stands for), or the jobs are submitted through a batch queuing system. The standard CCP4 supports this. b) there are very few crystallographic programs that use OpenMP (or the much more complicated MPI) to make a single program use more than one CPU. I actually don't know of any current program in CCP4 (beast is superseded by phaser). Phaser and Refmac5 would be worthwhile candidates for parallelization with OpenMP, but in both cases to my knowledge parallelization is not high on the priority list. c) outside CCP4: I use the parallel versions of SHELXL and XDS. XDS can even run on several nodes in a cluster to reduce a single dataset.

Thinking about this some more: on one hand the dual-core (and soon quad-core) CPUs appear ideally suited for OpenMP parallelization. On the other hand a single CPU provides so much speed nowadays that it is not important any more to parallelize. So I guess there is a tendency to provide a workstation with several CPUs to each crystallographer in a lab which allows her to run several calculations at the same time, without bothering with real parallelization. Clusters do not offer much advantage over workstations in a LAN.

I recall dimly some mention that ccp4 uses LAPACK for a few things. You could look into ScaLAPACK for moving these operations out to a cluster. For this to be practical, you'd need to be doing the right kinds of operations on some pretty large data sets, and those operations would need to be large users of CPU time. I have neither the experience with ScaLAPACK or CCP4 to make any kind of educated statement about whether this sort of work is likely to be productive.

At least on MacOS X.4.8, the LAPACK in Accelerate.framework should already be transparently multithreaded to take advantage of multiple processors on a single machine, so you don't need to do anything there, assuming ccp4 is linking to Accelerate.framework and not some other LAPACK.

Ian


Reply via email to