Fox Grid – multi PC execution accelerated version of the FOX software for powder data structure solution
J. Rohlíček, M. Hušák
Department of
rohlicej@vscht.cz
Keywords: parallel computing, program fox, structure solution, powder, X-Ray
Abstract
There exist a number of sophisticated and really fast methods for structure determination from powder diffraction data, but there are still a lot of situations for which non-sufficient computational power is the bottleneck. Typical examples of computational heavy situations: multiple fragments in the asymmetric unit cell, preferred orientation, flexible fragment. We had tried to solve the performance problem by modifying the FOX [1] structure solution code for an automatic multi PC parallel run.
The
crystallographic problem
We can use the traditional single crystal solution method for
structure determination from powder diffraction data, but in most cases (due to
peak overlap, lost peak intensity of high-angel reflections etc.) we are
obliged to use alternative methods – the direct space one. These methods
generate up to millions of trial structures and try to find the best one by a
global optimization algorithm. For each trial structure, a powder diffraction
pattern is calculated. Trial structure is accepted or rejected depending on the
agreement with the experimental diffraction pattern. There exist several fast
algorithms for the global optimization based on
Method of
solution
Parallel computing is a widely used method for speeding up a time consuming computing process. This process use simultaneous execution of the same task (split up and specially adapted) on multiple processors or on two or more computers. These computers are communicating with each other over a network in order to synchronize their work. The idea is based on the fact that the process of solving a problem usually can be divided into smaller tasks, which may be carried out independently with some coordination.
Program
specification
We managed to modify the Fox code for parallel computing method as mentioned above. Modified Fox program can be executed as a server or as client (Fig. 1). Server is a control element and clients are working elements. Server manages the basic data, job list, client list and result list. During the computing, server sends jobs to clients and waits for results. After solving the job, the client sends the results back to server and request new work (Fig. 2). The communication between server and client use TCP/IP protocol. The data are formatted in xml standard. Client can be executed on the same computer as the server or on another computer in the net. The method can be used for full utilization of multi-core and hyper threading PC by running multiple clients on the same PC.
Conclusions
We have decided to test this new code on structure determining of a known structure - Metergolin II [2]. Structure solution of Metergolin II is complicated by the presence of two molecules in asymmetric unit cell and by the occurrence of preferred orientation. Previously the computing process ran 21 days twice on a PC with dual core processor (two independent Fox executions, P4 3.2GHz, MonteCarlo - Parallel Tempering method, 182 free parameters and 166 restrains on bond lengths and angles). It got 360 results (17/day). Now, the computing process runs 14 days by the help of the new code on four PC, twice on each (3x PC with multithread processor - P4 3.2GHz, 1xPC with dual core processor - P4 3.2GHz, MonteCarlo - Parallel Tempering method, 182 free parameters and 166 restrains on bond lengths and angles). It was possible to get in this time 865 results (61/day). It means that it was possible to get a 3.5x execution speed up by the parallel processing. We found the correct structure of Metergolin II in several results with the lowest χ2 FOM value. It is clear that adding more PC to the calculation process can additionally accelerate the speed.
References
1. V. Favre-Nicolin and R. Cerny, J. Appl. Cryst., 35 (2002), 734-743
2.
Michal Hušák, Alexand Jegorov, Jiří Brus, Wouter van Beek, Philip
Pattison,
Mogens Christensen,
Acknowledgements
Work on the 'Fox
Grid' project is supported by a grant from Czech Grant agency (GAČR
203/07/0040) and by the research program MSM6046137302 of the Ministry of
Education, Youth and Sports of the
Figure 1: Fox executed as server (left) and as client (right).
Figure 2: Client/server relations in a 'Fox grid'