[gmx-developers] modifing nonbonded interactions

Mark Abraham Mark.Abraham at anu.edu.au
Sun Oct 19 03:49:20 CEST 2008

Nazish Hoda wrote:
> Thanks for the suggestions.
> I figured out that some of these subroutines are written in
> assembly languages, which I have not changed. These are files with
> extension *.s. I have never done assembly language coding so I am
> trying to figure this out.
> These are subroutines in the directory nb_kernel_x86_64_sse and the 
> Readme file says it is SSE assembly language. If anyone has any 
> experience with this or knows about any good and easy to follow reading 
> resource that would
> be of great help.

Testing your idea in the C or FORTRAN generic kernels first is almost 
certainly a preferable strategy to learning an assembly language.

There are several ways to force GROMACS not to use these assembly 
optimized routines - as you'd see in gmx_setup_kernels in 
src/gmx/nonbonded.c (per my last email) or by looking at the options to 

Also, if you're after useful help, telling people your objective will 
mean you're more likely to get advice in the right direction. Your first 
question pre-supposed that the right approach was to modify a generic 
non-bonded kernel. Already you seem to have learned that the assembly 
ones supersede them under some circumstances, so your first assumption 
was flawed. David suggested that you might be better served by using 
lookup tables if you're trying to modify the form of the nonbonded 
functions. If you want to benefit from others' expertise, don't 
constrain their scope by your assumptions :-)


More information about the gromacs.org_gmx-developers mailing list