[gmx-developers] plans for Gromacs 5.1 release

Mark Abraham mark.j.abraham at gmail.com
Tue Dec 2 14:52:50 CET 2014


On Tue, Dec 2, 2014 at 2:20 PM, Carsten Kutzner <ckutzne at gwdg.de> wrote:

> Hi,
>
> I am planning to contribute some functionality expansion for the
> computational
> electrophysiology module:
> - more control about from where to where the swaps are done
> - support for multi-atomic ions
> - support for a variable number of groups for which atom counts are
>   kept stable (e.g. if one not only wants to control Na and Cl, but
>   Na, K, Cl)
>
> Each added feature would require additional input parameters and thus
> a change of the .tpr file format. Therefore it could make sense to
> lump all functionality expansion together in one patch. From a review
> point of view it would however be nicer to do it in separate patches.
> What is the preferred approach?
>

>From bitter experience, multiple patches in flight that bump the .tpr
version make for a lot of busywork and Jenkins traffic, since all of them
want to increment the same counter. There's some new machinery in tpxio.c
that make it harder for us to make erroneous automatically-resolved merges,
but if there's matching regressiontest cases then those need re-generation
and re-validation, and it's all horrible.

So, along the lines of the suggestion I made to Justin in this thread, I
would suggest planning for a commit tree that was
* add .tpr management gear (perhaps for all your new features, just for
convenience), together with a fatal error from mdrun.cpp that observes that
there's no implementation yet, so that the missing implementation can't
misbehave
* actually add features in some progression that makes logical sense to a
reviewer, e.g.
    + general cleanup and preparation (because if there's no expected
change to functionality, it's easy to review), then
    + any movement of existing code (easy to review, and helps people
rebasing features in the same source files), then
    + add the new code and matching tests

The advantage here is that Justin (and anybody else) also wanting to bump
the .tpr can get that sorted out and merged separately from reviewing the
content of the feature. If anybody's feature later doesn't pass review, the
above workflow is not ideal, but there's already some defunct fields in the
.tpr format, so I expect it would not be a big deal to make sure the
release candidate doesn't have a grompp that suggests a feature should
exist when it does not, and perhaps some later Gromacs version would use
them once the feature is ready to pass review.

I'm open to alternatives, though!

Mark

Thomas and me are also working on multiple end states for lambda-dynamics,
> but this will still take quite a bit of time until it is finished (not
> for 5.1 for sure). The additional topology information / topology format
> expansion should be usable both for free energy methods and
> lambda-dynamics.
>
> Carsten
>
>
> On 26 Nov 2014, at 18:18, Mark Abraham <mark.j.abraham at gmail.com> wrote:
>
> > Hi,
> >
> > It's time we got organized for the next minor release. Generally policy
> is unchanged - we do a feature-change release at least once a year, and
> bugfix releases periodically on the last minor/major release. An "extra"
> release for some special purpose is negotiable.
> >
> > I propose
> >
> > * now:
> >     + get code you want to be considered for 5.1 into gerrit (tag the
> first line of the commit message [RFC] or [WIP] if you know that the
> current state of the code is not a serious candidate for merging)
> >     + get your karma up by participating in review of others' code
> >     + reply to this email (or comment on your patches in gerrit) to
> guide other people about what might be important for them to review
> >
> > * mid-January:
> >     + release 5.0.x
> >     + release 5.1-beta from whatever is the tip of master branch at the
> time
> >     + fork release-5-1 branch then (still open for functionality changes
> until the 5.1-rc1 releases; gerrit's feature for cherry picking between
> branches will make this fork manageable)
> >
> > * early-to-mid February:
> >     + release 5.1-rc1
> >     + close release-5-1 to new functionality, it remains open for bug
> fixes, test cases, and documentation only
> >     + test widely on any plausible machine and compiler for portability
> and correctness
> >     + release 5.1-rc[234] if that seems like a good idea
> >
> > * mid-March:
> >     + release 5.0.x for hopefully the last time, pretty much close
> release-5-0 branch
> >     + release 5.1
> >     + remove the group cutoff scheme
> >     + ...
> >     + Profit!
> >
> > Do speak up if you have a suggestion for a change / request for special
> consideration / whatever. I've deliberately left the Christmas period open
> for people who might want to do a last code push at that time, but a huge
> patch landing without warning on January 10... will probably get ignored by
> me.
> >
> > Please note that things like ongoing contribution with testing and code
> review are the primary things that might earn an authorship on Gromacs
> papers (5.0 is still on my TODO list, sorry) - adding some feature is
> awesome, but what reward structure we can offer needs to focus on the large
> amount of inglorious work that has to happen.
> >
> > Things team Stockholm are actively working on that we'd like to have
> ready for 5.1 (and the names of the primary people involved)
> > * new DD communication support (Berk)
> > * enhancements to pull code (Berk)
> > * Verlet scheme support for tables, vacuum, Generalized Born (Berk,
> Alfredo)
> > * GPU support for tabulated interactions (Alfredo)
> > * GPU acceleration of (at least) dihedral interactions (Iman)
> > * combined FFTs for LJ-PME (Christian)
> > * offload of bonded interactions for enhancing load balance (Mark)
> > * support for latest CUDA offerings (Szilard)
> > * OpenCL non-bonded support (mostly Anca from
> http://www.streamcomputing.eu, Mark)
> > * support for CPU-based SIMD on everything on the horizon (Erik)
> >
> > Like everything else, none of that's going to block releases, but since
> 5.1 will be the last minor release with the group cutoff scheme, feature
> completion of the Verlet scheme will be an internal priority for
> development, review, and testing. Full feature completion is unlikely to
> happen, so support for twin-range multiple-time stepping, QM/MM, and AdReS
> may disappear unless people want to put the work in.
> >
> > There's a lot of code already in Gerrit awaiting review, particularly
> from Teemu on the analysis tools. I need to help out more there, but do
> check if he's fixing stuff that you might care about!
> >
> > If you're working on code that you might want to get into 5.1, speak up!
> >
> > Happy reviewing!
> >
> > Mark
> > --
> > Gromacs Developers mailing list
> >
> > * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before
> posting!
> >
> > * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> >
> > * For (un)subscribe requests visit
> > https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
> or send a mail to gmx-developers-request at gromacs.org.
>
>
> --
> Dr. Carsten Kutzner
> Max Planck Institute for Biophysical Chemistry
> Theoretical and Computational Biophysics
> Am Fassberg 11, 37077 Goettingen, Germany
> Tel. +49-551-2012313, Fax: +49-551-2012302
> http://www.mpibpc.mpg.de/grubmueller/kutzner
> http://www.mpibpc.mpg.de/grubmueller/sppexa
>
> --
> Gromacs Developers mailing list
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before
> posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
> or send a mail to gmx-developers-request at gromacs.org.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20141202/f59fa4b8/attachment.html>


More information about the gromacs.org_gmx-developers mailing list