AMBER Archive (2005)Subject: Re: AMBER: pmemd - bug report
From: Robert Duke (rduke_at_email.unc.edu)
Date: Mon Jul 04 2005 - 16:40:18 CDT
Petr -
Okay, I have looked at your test case 1 in some detail. Two points I note:
1) You are doing a minimization with ntx = 5; ie., your input coords are a
molecular dynamics restart file with ntx set to 5. This specifies input of
both coordinates and velocities. Now, use of ntx = 5 with minimization is
listed in the documentation as illegal, though I think the code (pmemd, and
probably sander too) is deficient in not having a check for attempted use of
ntx other than 1 or 2 in combination with minimization. Okay, this is not a
cause of horrible grief in sander. In pmemd, it is a cause of horrible
grief because the velocity array is not allocated when you are doing
minimizations, but the code will attempt to store velocities if ntx = 5. SO
I should include a check, so that the error is a little less obscure, but
that is the source of your segmentation violation.
2) I attempted to run the standard run (not re-imaged) in sander 8, and my
run failed because I have not compiled my sander with -DHAS_10_12. So it
looks like you are using 10-12 vdw params. That should be okay for pmemd;
the code actually just detects this sort of thing rather than requiring a
special compilation. Is there anything else unusual about the prmtop? What
forcefield was used?
Thanks - Bob Duke
----- Original Message -----
From: "Petr Kulhanek" <kulhanek_at_chemi.muni.cz>
To: <amber_at_scripps.edu>
Sent: Monday, July 04, 2005 12:33 PM
Subject: AMBER: pmemd - bug report
> Dear AMBER developers,
>
> I would like to report a bug in PMEMD code (AMBER 8.0).
>
> The bug is responsible that some atoms are incorrectly addressed to
> respective subcells. The bug occures only if some atoms are very close to
> box walls (confirmed) or if they are on subcell interfaces (just
> hypothesis). As the result, program can crash or the non-bonded energy is
> not calculated correctly. The bug probably depends on architecture and/or
> used compiler.
>
> Test cases (for IA32, ifort 8.1.024, and 1CPU) can be downloaded from:
>
> segmentation fault
> http://www.ncbr.chemi.muni.cz/~kulhanek/downloads/tst1.tar.gz
>
> infinity Eel
> http://www.ncbr.chemi.muni.cz/~kulhanek/downloads/tst2.tar.gz
>
> incorrect Eel
> http://www.ncbr.chemi.muni.cz/~kulhanek/downloads/tst3.tar.gz
>
> In each archive, six results are present:
>
> mdout_bug_reference - calculated by pmemd on coordinates that leads to
> incorrect results
> mdout_bug_imaged_reference - calculated by pmemd on coordinates, which
> were processed by ptraj (solut is centered and system is imaged)
> mdout_fix_reference - calculated by modified pmemd (see below) on
> coordinates that leads to incorrect results with non-modified pmemd
> mdout_fix_imaged_reference - calculated by modified pmemd (see below) on
> coordinates, which were processed by ptraj (solut is centered and system
> is imaged)
> mdout_sander_reference - calculated by sander on coordinates that leads to
> incorrect results with non-modified pmemd
> mdout_sander_imaged_reference - calculated by sander on coordinates, which
> were processed by ptraj (solut is centered and system is imaged)
>
>
> The bug is located in following files:
>
> ew_direct_cit.f90 -> subroutine get_fract_crds (confirmed)
> fraction could be equal to 1.0 due to round errors, however the code
> suppose that it has to be less than 1.0
>
> ew_direct_cit.f90 -> subroutine setup_crd_idx_lst_tbl (confirmed)
> indexes to crd_idx_lst_tbl array are not checked if they are in legal
> ranges
> if fractions calculated in get_fract_crds are equal to 1.0 then indexes
> overflow crd_idx_lst_tbl boundaries
>
> ew_pairlist.f90 -> subroutine get_nb_list (confirmed) and probably
> get_nb_list_nonorthog (not tested)
> indexes to x_bkts, y_bkts, and especially z_bkts arrays are not checked if
> they are in legal ranges
> array overflows could occur even if fractions are in legal ranges because
> the indexes are calculated directly from imaged coordinates (different
> approach -> different round errors)
>
> ew_recip_cit.f90 -> subroutine claim_recip_imgs (hypothesis) and probably
> claim_recip_imgs_nonorthog (not tested)
> z_bkt_lo and z_bkt_hi, the same as above
>
>
> I prepared two patches for testing purposes. (reference source is amber8
> distro + bugfixes 1-44)
> http://www.ncbr.chemi.muni.cz/~kulhanek/downloads/check.patch
> http://www.ncbr.chemi.muni.cz/~kulhanek/downloads/fix.patch
>
> The first one extends code with boundary check in above mentioned
> subroutines. If some overflow occures then the program is immediatelly
> stop with error message. The second one fixes the problem (boundary check
> is still present).
> fix.patch is only intended for testing purposes because it does not solve
> possible problems in simulations using truncated octahedral box and it was
> not tested under parallel execution.
>
> Some comments at the end:
>
> I found this bug when I did postprocessing analysis of trajectory
> calculated by pmemd (MD was run without any problems as I remember). In
> the analysis, the electrostatic energy is calculated for several system
> subparts still under PBC. In the reported cases, only solut and solvent
> are present (ions were stripped away), so the test cases represent rare
> systems. However observed errors depend only on coordinates and I do not
> see any reason why it could not occur during normal MD !
> I think that it is neccessary to carefully check the pmemd code and remove
> possible problems with reported round errors when subcell indexes are
> calculated. Secondly, it is also important to keep the parts, in which
> subcell indexes are calculated, as same as possible to avoid different
> round errors.
>
> For SANDER developers:
>
> Please look to tst1.tar.gz archive. mdout_sander_reference and
> mdout_sander_imaged_reference differ. The difference is about 3 kcal/mol
> in Eel as well as in Evdw. I think that this could be a bug in sander.
>
> Best regards,
> Petr
>
> --
> ##################################################
> Petr Kulhanek
> ------------------------------------------------
> kulhanek_at_chemi.muni.cz
> ------------------------------------------------
> National Centre for Biomolecular Research
> Masaryk University Brno
> Kotlarska 2, CZ-611 37 Brno
> Czech Republic
> ##################################################
> -----------------------------------------------------------------------
> The AMBER Mail Reflector
> To post, send mail to amber_at_scripps.edu
> To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu
>
-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber_at_scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo_at_scripps.edu
|