Dear Bernhard,

After Kay showed me how to do it by making SHELXL parallel, I was able to make SHELXD, ANODE and SHELXT (my current small molecule direct methods program) highly parallel. I'm still working on SHELXE because it requires major changes. In principle chain tracing is difficult to make parallel because you have to know what you have already traced.

The talk I gave at the 2016 Computing School in Freudenstadt on the subject may be downloaded from the SHELX homepage shelx.uni-goettingen.de

Best wishes, George


On 09.02.2017 22:08, Kay Diederichs wrote:
Hi Bernhard,

I parallelized ESSENS, SHELXL, CNS and a few other programs, and wrote a paper 
about it (long time ago, in J. Appl. Cryst I think). It's actually not 
difficult to parallelize with OpenMP, but it needs time - developers seemingly 
rather spend their time on other things.

Automatic parallelization by compiler options helps only in the most trivial 
cases. It is my experience that the code must be adapted to reach a useful 
level of parallelization.

best,

Kay

On Thu, 9 Feb 2017 12:33:05 -0800, Bernhard Rupp <hofkristall...@gmail.com> 
wrote:

Hi Developers,



I am wondering whether we fully utilize our hardware, and knowing not much
about the finer detail, I'd like to ask a few questions.



Most workstations have 6-12 or more cores, and equipped with plenty of cheap
memory and SSD arrays and some overclocking, these machines

are pretty decent. Some programs, like xds-par which I run under Win10 in a
Fedora/RH VM fully use the cores and are blazing fast.

On WIN10, some like Shelxd also use all the cores.



In principle, almost all multi-solution programs should be able to be
parallelized relatively simple, by spawning threads and combining the

results later (which I could do e.g. with my arp/warp implements).



Unfortunately, also some stuff that could be easily run on multiple cores
like phenix multi-conformer refi, epmr, or similar does not,

or not on Windows. Why not and how difficult is that to change?



Second, even other programs that have nested loops (and who has not) can be
compiled with e.g. the ifort compiler to use multiple

threads and cores on the i7 series, at least. It is just weird to have say
refmac putter along in one core on a de facto semi-idle workstation.



Is (automated) parallelization via compiler directives feasible, also on
Win, what would it bring, how difficult?



Thx, BR



------------------------------------------------------

Bernhard Rupp

Crystallographiae Vindicis Militum Ordo

<http://www.hofkristallamt.org/> http://www.hofkristallamt.org/

<mailto:b...@hofkristallamt.org> b...@hofkristallamt.org

+1 925 209 7429

+43 767 571 0536

------------------------------------------------------

Many plausible ideas vanish

at the presence of thought

------------------------------------------------------






--
Prof. George M. Sheldrick FRS
Dept. Structural Chemistry,
University of Goettingen,
Tammannstr. 4,
D37077 Goettingen, Germany
Tel. +49-551-39-33021 or -33068
Fax. +49-551-39-22582

Reply via email to