Re: [AMBER-Developers] separation of Amber and AmberTools?

From: Robert Duke <>
Date: Sat, 30 Jan 2010 19:44:27 -0500

Okay, so simple solution. Have an amberx directory (11, 12, etc.). Under
the amberx directory, have an AmberTools directory. Encapsulate all of
ambertools this way, but within the main tree. Have the makes work
recursively, recursing into Ambertools first. Seems that might be
reasonably organized and clear, with everything logically in one package,
but divided out so that there is not massive confusion about what's
ambertools and what's the rest of amber... That way everything still works
from an $AMBERHOME, it is possible to reference the correct ambertools
release from the rest of amber by the $AMBERHOME-relative path, and anyone
that installs ambertools by itself can have the same basic structure, but
not fully populated. However, they do have to reset $AMBERHOME or paths to
use say just a new release of ambertools vs. the latest full install of
amber. But ambertools is clearly distinguishable, self-contained, built as
a subset, and not replicated.
Regards - Bob
----- Original Message -----
From: "Ross Walker" <>
To: "'AMBER Developers Mailing List'" <>
Sent: Saturday, January 30, 2010 5:23 PM
Subject: RE: [AMBER-Developers] separation of Amber and AmberTools?

I like the way Jason has put this. To reiterate my point from the AMBER
meeting an my experience from trying to explain this multiple times at
workshops I believe it should be like this:

1) If you purchase AMBER 11 you should get a COMPLETE package. That is
AMBERTools, Sander and PMEMD all in one package that extracts into a single
directory, has a single configure script, single makefile and single set of
test cases.

Trying to explain to people that they have to download AMBERTools
independently just confuses them. They ask. "So what did I buy?"

Look at what has happened with the AMBERTools 1.3 release. Now we have AMBER
10, and have to get a separate AMBER Tools 1.2 from it, then we have
AMBERTools 1.3 extracted into AMBER 11. But no sander or pmemd in there yet.
Then where will AMBERTools 1.4 go? Amber 12??? From an end user perspective
it is just hopelessly confusing and trying to explain it to newcomers is
even harder. They just look at you like you are crazy.

So what I want to know is why we can't have the following:

AMBERTools -> Various versions of this extract into AMBERTools1.x
directories. These are COMPLETELY independent of AMBER.

AMBER11 and subsequent versions come containing everything including a
compatible version of AMBERTools and the division of AMBERTools is not
present. I.e. AMBER looks like a complete package. Single AMBERHOME pointing
to well, the home of AMBER - where the AMBER package is installed. Not where
AMBERTools is installed. That is just confusing.

To avoid code division here I think we keep everything in a single CVS tree
and we just have scripts, like mkrelease that will build either a full AMBER
X or a cutdown AMBERTools. The take home point though is that I firmly
believe that AMBERTools should be a 'subset' of AMBER and not some
independent, but strangely intertwined separate entity.

My 3C.

All the best

> -----Original Message-----
> From: [mailto:amber-developers-
>] On Behalf Of Jason Swails
> Sent: Saturday, January 30, 2010 8:51 AM
> To: AMBER Developers Mailing List
> Subject: Re: [AMBER-Developers] separation of Amber and AmberTools?
> I'd call for Option 3 myself to try and optimize the pros and cons of
> Option 1. This idea was proposed by Ross, though I'm adding some
> details. Overall, I think it offers a good compromise between the two
> options.
> While I initially suggested option 1, I think some of the cons have
> swayed my position slightly. Here is my (Ross's) option 3:
> AmberTools is required for Amber, and there are enough dependencies on
> AmberTools that Amber cannot be considered truly "separate" (for
> example, sqm, pbsa, etc., and netcdf is another example). Another
> downside of separating the two directories comes when it's time to
> "update" AmberTools if the releases really are off-sync (as they
> should be I think). When AmberTools is updated, Amber itself will
> have to be recompiled, and we are left with the restriction that each
> version of AmberTools be compatible with each version of Amber after
> 10 or 11 (or, of course, the user must have two, separate directories
> for a version of AT compatible with their version of Amber and the
> latest version of AT, and this runs the risk of being far more
> complicated than even the current situation). I still think an AT
> should be released with Amber, but I think not releasing AT until we
> release Amber poses an unnecessary restriction. Therefore, to
> optimize the pros of both options, i propose selling Amber as a *full*
> package (including the current AmberTools at the time Amber is
> released). This way, we can combine the configure script and
> Makefiles to build everything at once, which will simplify the process
> of compiling (this is only a side-benefit, as typing make -f
> Makefile_at and make serial separately shouldn't stress the abilities
> of users). Then, each time we release AmberTools as a separate
> download, it unpacks into an AmberTools directory that simply has a
> different Makefile designed only for AmberTools (i.e. doesn't try and
> build portions of sander). While this causes code to be duplicated in
> both directories, I don't think that's an issue. A hard drive that
> can't support two copies of AmberTools is a hard drive that can't
> support a trajectory worth analyzing anyway, and it allows us more
> free reign in updating sqm, pbsa, etc. without making sure that it'll
> always be back-compatible (and then, of course, it would break all of
> the tests).
> This combines the best of the separation and combination ideas, such
> that AmberTools is truly seen to be part of Amber (since amber isn't
> released without it), and AT also appears stand-alone. We also need
> not change $AMBERHOME at all (it must point to the latest
> AmberTools... etc, but this is easy to explain). I think this context
> is also an argument for consolidation of Makefiles, since explicitly
> compiling "ambertools" in the amber directory and then again in the
> AmberTools directory (after AT is released between Amber releases) may
> seem confusing (it certainly does now), while we can have Amber
> installation instructions and AmberTools installation instructions,
> and insist that AMBERHOME points to the latest AmberTools.
> I do think this is the most elegant solution as it maintains ease of
> use for the user while allowing developers maximum flexibility in
> developing and releasing AmberTools. I think this change would be the
> easiest one to implement as well, since no changes would need to be
> made before the Amber11 release, etc.
> Thoughts?
> --Jason
> On Sat, Jan 30, 2010 at 9:22 AM, case <> wrote:
> > At the developers' meeting, there were various suggestions for how to
> > handle the Amber/AmberTools split. This is a request for comments
> for some
> > ideas along this line.
> >
> > Option 1:
> > unpack Amber into a tree headed at Amber-11.0/
> > unpack AmberTools into a tree headed at AmberTools-2.0/
> >
> > Each would be a full and separate package. Users would set
> > to the AmberTools-2.0 location, since Amber codes don't use such a
> > variable. Users would put both Amber-11.0/bin and AmberTools-
> 2.0/bin
> > in their PATH.
> >
> > Amber users would still need AmberTools, as in a package
> dependency.
> >
> > Pros:
> > Simple to explain to users. We could upgrade AmberTools without
> > worrying about Amber. Amber tests and AmberTools tests would be
> > cleanly separated.
> >
> > Having versioned directory names is more in line with gnu/linux
> software
> > practices.
> >
> > We could support different compilers/OS's in AmberTools than in
> Amber;
> > the configure script and config.h file would not be required to be
> the
> > same. For example, we would probably not need to support pgcc for
> > AmberTools.
> >
> > Cons:
> > Considerable code duplication: sqm, pbsa, rism, lib (others?)
> would
> > be present in both releases. Bug fixes would have to be made in
> two
> > places, using different patch files as the two codes diverge. If
> we
> > indeed have AmberTools releases not coordinated with Amber
> releases,
> > then we have the awkward situation that the functionality and
> results
> > for the same calculation (e.g. QM) are different in the two codes.
> > If we truly separate the two parts, we would need massive
> documentation
> > duplication as well as code duplication.
> >
> > Hard for developers, since the tree that users would see is
> different
> > from the one we are developing on. (This is probably a minor
> concern.)
> >
> > Psychologically, we weaken the perception that AmberTools is a
> "genuine
> > part of Amber". (This might be a rather important drawback; or
> maybe
> > not.)
> >
> > Option 2:
> > Continue with the current model: both codes unpack into an amber11
> > tree, which AMBERHOME points to. We make sure that any updates to
> > AmberTools (either through bugfixes or an intermediate release)
> remain
> > compatible with Amber -- no more "jumping ahead" to a new
> directory
> > tree as we did with AmberTools-1.3.
> >
> > Pros:
> > Doesn't have the "cons" of Option 1.
> >
> > Cons:
> > Doesn't have the "pros" of option 1. Might be quite difficult to
> meet
> > the requirement that changes in AmberTools have to "work" inside
> the same
> > tree as Amber itself. Hard to keep licensing terms clear when
> code with
> > very different licenses reside inside the same tree.
> >
> > Option 3:
> > Something different from the two listed above.
> >
> > Comments? I'd like to get this figured out soon, since attempts to
> clean
> > up the installation (e.g. merge src/Makefile with src/Makefile_at)
> depend
> > on what we decide.
> >
> > Please think hard about the branding and perception issues -- the
> other things
> > are mostly technical that we can probably solve.
> >
> > ....thx....dac
> >
> > _______________________________________________
> > AMBER-Developers mailing list
> >
> >
> >
> --
> ---------------------------------------
> Jason M. Swails
> Quantum Theory Project,
> University of Florida
> Ph.D. Graduate Student
> 352-392-4032
> _______________________________________________
> AMBER-Developers mailing list

AMBER-Developers mailing list

AMBER-Developers mailing list
Received on Sat Jan 30 2010 - 17:00:02 PST
Custom Search