*** 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