Fox Grid – multi PC execution accelerated version of the FOX software for powder data structure solution

 

J. Rohlíček, M. Hušák

 

 Department of Solid State Chemistry, Institute of Chemical Technology, Prague,Technická 5, 166 28 Prague 6, Czech Republic

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 Monte Carlo method combined with simulated annealing and parallel tempering. The CPU time required for structure solution grows more or less exponentially with number of the model adjustable parameters. Structure solution of complicated structures is a time consuming process. In the most of these cases the required time is a few days or weeks on the nowadays common PCs.

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, Vincent Favre-Nicolin, and  Jaroslav Maixner, Structural Chemistry, to be printed

 

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 Czech Republic.


Figure 1: Fox executed as server (left) and as client (right).

 

 

Figure 2: Client/server relations in a 'Fox grid'