[gmx-developers] Parallel g_hbond

Erik Marklund erikm at xray.bmc.uu.se
Fri Mar 27 14:36:08 CET 2009


Hi fellow developers,

I wrote a parallel version of g_hbond using openMP a few months ago, 
prompted by the large systems simulated in our group (plus I needed a 
programming project for this course I took). For my small testsystem, 
comprised of MeOH and water, the calculations of the acf and related 
quantities show a speedup that is linear with slope ~0.95. For my larger 
testsystem comprised of a virus capsid, the gridloop scales very well 
and has a relative spedup that is almost a straight line with slope  
~0.95 when plotted against the number of cores used. In both cases the 
IO is a nasty bottleneck, making the total execution time scale 
something like t =~ 0.6 x n_cores.

Regardless of the slowness from IO, the parallel code should be useful 
for anyone analyzing large systems. The problem is the use of OpenMP, as 
this is not supported by e.g. fairly recent verions of gcc (2006?). I 
discussed this matter some time ago with Erik Lindahl and Davidvan der 
Spoel. I feel that it is wasteful to let the parallel code rot away, as 
I will not have the time to merge revisions into the parallel code all 
the time. All openMP-pragmas are encapsulated in cpp-conditionals, 
making the code slightly bloated and a bit harder to read, but should 
make it compile on most systems. Furthermore, the parallel-friendly 
variables would go well with pthreads and the likes of it. My question 
is what to do with the code. Should I commit it to the CVS as 
gmx_hbond.c, or should it go somewhere else?

Cheers,

-- 
-----------------------------------------------
Erik Marklund, PhD student
Laboratory of Molecular Biophysics,
Dept. of Cell and Molecular Biology, Uppsala University.
Husargatan 3, Box 596,    75124 Uppsala, Sweden
phone:    +46 18 471 4537        fax: +46 18 511 755
erikm at xray.bmc.uu.se    http://xray.bmc.uu.se/molbiophys




More information about the gromacs.org_gmx-developers mailing list