[gmx-developers] Adding computing kernels in shared linked library

Sebastian Jodłowski jodelek at icm.edu.pl
Thu Aug 25 11:11:11 CEST 2011

But how could it be a non-reproducible calculation if every run of
non-library version gives literally the same results and every run of
library version gives also the same results (but different from from
non-library version) - it is a deterministic algorithm and all
calculations are done in the same order. Adding -reprod doesn't change

On 25 August 2011 01:43, Mark Abraham <Mark.Abraham at anu.edu.au> wrote:
> On 25/08/2011 12:52 AM, Sebastian Jodłowski wrote:
>> I'm trying to add some features (e.g. interactions with membrane) into
>> nb_generic_kernel. I've written all my stuff, tested it hardly and
>> everything seems to work perfectly - all results are correct. Next
>> step, which I would like to performe, is to extract my kernels and
>> move them to the external library. So I added my lib(for now empty
>> lib) to gromacs makefiles(all of them), and inlcuded my lib header in
>> the nb_generic.c. In that place gromacs compiled and linked properly.
>> I cut my kernel code from the nb_generic_kernel() body and above it I
>> created function my_kernel() which consist body of my kernel. All
>> parametres are passed via pointers and kernel is called in its earlier
>> body's place in nb_generic_kernel(). Then I tested it again -
>> everything works great. So I finally moved my_kernel into the library.
>> Gromacs compiled and linked properly so I started testing. The results
>> are already wrong at the stage of minimization. I performed 100 steps
>> of minimization and version without external library calls 78144 times
>> my_kernel wherease with external library my_kernel is called 69696.
>> (What the hell?)The results start to differ at about 60% (45000th
>> calls of my_kernel).
> Sounds like you're managing to do a non-reproducible calculation
> non-reproducibly. Perhaps mdrun -reprod will help.
> Mark
>>  I have no idead what's going on and I spent
>> several days looking for the bug and couldn't find it. I would like to
>> notice that i don't know how gromacs minimization works and have no to
>> time for studing these code(but I pretty good analised how computing
>> of forces works).
>> Has anybody ever met something similar? Or has any experience with
>> writing libraries for gromacs?
>> Greetings
>> Sebastian Jodlowski
> --
> gmx-developers mailing list
> gmx-developers at gromacs.org
> http://lists.gromacs.org/mailman/listinfo/gmx-developers
> Please don't post (un)subscribe requests to the list. Use the www interface
> or send it to gmx-developers-request at gromacs.org.

More information about the gromacs.org_gmx-developers mailing list