[gmx-users] Re: g_desort

chris.neale at utoronto.ca chris.neale at utoronto.ca
Thu Mar 18 15:45:13 CET 2010

Dear Jennifer:

I have tried to download the package to reproduce your problem, but  
have been unable.


links to G_DESORT.tgz, but that link sends me to:


with the text:

Internal Error (500)
Could not retrieve attachment fileid 109 rev 1

My memory is not perfect on g_desort because it has been a long time  
since I wrote it or even used it. Gromacs version 4 uses domain  
decomposition which essentially re-sorts at every neighbourlist update  
and also sorts over a 3 dimensional grid (gromacs 3 with sort simply  
grids on the x dimension). Therefore gromacs 4 is recommended.

If this assistance does not work, and if you still need g_desort, then  
please describe how you downloaded it and I will take another look.

Regarding the error, I am not sure why the tarball contains a  
Makefile, I would think that you need your own. Try this:

1. cat Makefile.i386-apple-darwin8.10.1 | sed "s/template/g_desort/g"  
 > Makefile.g_desort
2. Make -f Makefile.g_desort

If that doesn't work, then perhaps you have an old version of  
g_desort. The first one that I uploaded was missing a semi-colon after  
one of the lines in

static char *desc[] = {

at the top of main(). That was eventually fixed, but perhaps not in  
the version that you obtained.

The allowance of deshuffling and not desorting was, I think,  
unfortunate. I have no inside scoop on the why, but as best as I can  
guess, sorting made sense and allowed a speed gain and was thus used  
in benchmarking tests to evidence the fantastic speed of gromacs. The  
fact that the trajectory was essentially unusable and un-resortable  
was not immediately obvious to a new user. g_desort remedies this  
problem, although I mention again that in gromacs 4 there is no need  
for g_desort and I suggest that you migrate to gromacs 4.


Quoting Jennifer Rendell <jmrendell at mun.ca>:

> Good morning, Chris.
> I have just downloaded a copy of g_desort and am trying to compile it.
> My C programming is way in the past. I am geting an error:
> $ make -f Makefile.g_desort
> cc -O3 -fomit-frame-pointer -finline-functions -Wall -Wno-unused
> -malign-double -funroll-all-loops -I/usr/local/gromacs/include/gromacs
> -c -o g_desort.o g_desort.c
> g_desort.c:1: error: unknown -malign-XXXXX option specified: 'double'
> make: *** [g_desort.o] Error 1
> I have put the tarball in
> /usr/local/gromacs-3.3.2/share/gromacs/template which now contains the
> files:
> $ ls
> Makefile.g_desort g_desort.c
> Makefile.i386-apple-darwin8.10.1 template.c
> If I edit the Makefile.g_desort and remove references to
> -malign-double, then I get lots and lots of errors that start like this:
> $ make -f Makefile.g_desort
> cc -O3 -fomit-frame-pointer -finline-functions -Wall -Wno-unused
> -funroll-all-loops -I/usr/local/gromacs/include/gromacs -c -o
> g_desort.o g_desort.c
> g_desort.c:40:22: error: statutil.h: No such file or directory
> g_desort.c:41:22: error: typedefs.h: No such file or directory
> g_desort.c:42:21: error: smalloc.h: No such file or directory
> g_desort.c:43:17: error: vec.h: No such file or directory
> g_desort.c:44:22: error: copyrite.h: No such file or directory
> g_desort.c:46:19: error: tpxio.h: No such file or directory
> g_desort.c: In function ‘main’:
> ...
> (271 lines in total)
> So I think it needs something the -malign-double gives it. Now I'm out
> of ideas... Are you able to help?
> I understand the point of shuffling (distributing evenly the atoms over
> N cpus) and sorting (makes more sense to distribute nearby molecules on
> the same node). But why make it possible to deshuffle (with provided
> index file) and not to desort (no index file, and no command)??? Must
> be an historical reason...
> In hope and advance appreciation, Jennifer
> -- 
> Jennifer Rendell
> Dept. of Biochemistry
> Memorial University of Newfoundland & Labrador
> 709-737-6733

More information about the gromacs.org_gmx-users mailing list