Requirements:
- Perl
- Python
(version 2.5 or newer; not usable with Python version 3)
- gcc
(with Fortran, needed for Open64 compile) with version 3.3.x or later
known compiler issues:
- GNU
make
- Subversion - optional, needed only for installing from source code repositories
- Mercurial - optional, needed only for installing from (development) source code repositories and the optional regression and example repositories
Aside from the subset of
binaries
for applying the tool to some test
problems there are no precompiled
binaries available. All of the
components are publicly available for
download as a tar file or for incremental updates and builds of the
regression-tested version via Subversion/Mercurial.
Installing sources from tar file:
Tar files can be downloaded from a table of snapshots
where we keep archives for the source and some binary installations with version information for each component.
The latest tar file was created on 2014-03-15
and can be downloaded as:
OpenAD_2014-03-15.tgz
Download
the
OpenAD_<date>.tgz
file and unpack it, for example using
tar -zxvf OpenAD_<date>.tgz
Then follow the
build instructions.
Installing sources from source code repositories:
For the development of the OpenAD components uses Mercurial for
version control (see the OpenAD wiki for details). Many systems do not have
Mercurial installed and therefore we decided to replicate snapshots in subversion
repositories hosted at Argonne National Lab/Rice University
(except for the C/C++ front end which is not needed for the
Fortran tool) and external sources such as boost and angle (see below).
The main reason for using the Subversion repositories is
to permit incremental source code updates and therefore incremental
builds. There is a
prefab skeleton environment for retrieving and
building all components. It can be obtained with:
svn
co https://svn.mcs.anl.gov/repos/OpenAD/trunk/ OpenAD
then go into the directory which has just been create by the
svn command:
cd
OpenAD
set the environment for building and using the tools for:
- users of the sh
family:
source
./setenv.sh
- users of the csh
family:
source
./setenv.csh
retrieve the other components into the prefab skeleton by executing:
openadUpdate
To retrieve
optional repositories for regression tests and code examples use
openadUpdate with the
-e -t flags; see the
Manual for details.
Build components:
After the sources are installed, perform the following build steps:
- change
directory into the top level directory
cd
OpenAD
- set
the environment
for building and using the tools for
- users of the sh
family:
source
./setenv.sh
- users of the csh
family:
source
./setenv.csh
- All
Makefiles are
written in GNU-make style. Build all
components by invoking:
make
If OpenAD is installed from the subversion repositories one
can
update
the
sources to the latest version by rerunning the
bin/openadUpdate
script and repeat
build steps 1 - 3 to incrementally rebuild the components. Note, that the configure scripts in the components OpenAnalysis and OpenADFortTk generate
files containing absolute paths. Consequently, after moving a built OpenAD installation to a different spot in the filesystem
one should do a
make veryclean followed by
make to obtain a clean build. Otherwise errors showing incorrect
paths during attempted incremental rebuilds are likely.
If the automatic download with
openadUpdate
does
not work one can change directory into the prefab skeleton, manually
retrieve all
components separately:
- xerces
-
the
C++ XML parser version 2.8.0;
prepackaged tgz
files are available or do
svn
co http://hpc.svn.rice.edu/r/xercesc/tags/version-openad xercesc
- boost
- (we use the graph library and checkout only the sources)
version 1.38.0 from the main branch; retrieve using
svn co http://svn.boost.org/svn/boost/tags/release/Boost_1_45_0/boost boost/boost
- angel
-
the automatic
differentiation nested
graph
elimination
library
svn co https://angellib.svn.sourceforge.net/svnroot/angellib/trunk angel
- the repositories listed below can be
obtained from the subversion server hosted at Argonne's MCS division.
The checkout can be done
with:
- Open64
- the
Fortran90 compiler (we compile and use only the front end), see also here
svn
co https://svn.mcs.anl.gov/repos/Open64/tags/version-openad Open64
- OpenAnalysis
- the code analysis tool, see also here
svn
co https://svn.mcs.anl.gov/repos/OpenAnalysis/tags/version-openad
OpenAnalysis
- OpenADFortTk
- the
OpenAD Fortran ToolKit
svn
co https://svn.mcs.anl.gov/repos/OpenADFortTk/trunk
OpenADFortTk
- xaif
- the XML
Abstract Interface schema (and examples)
svn
co https://svn.mcs.anl.gov/repos/xaif/trunk xaif
- xaifBooster
- the C++ AD
transformation
engine
svn
co https://svn.mcs.anl.gov/repos/xaifBooster/trunk xaifBooster
- EDG/Sage3:
C/C++ front end; These are not needed for the Fortran tool.
While the C/C++ tool incarnation shares components with OpenAD its development is a separate effort and it was decided
to retain for it the name "ADIC" which goes back to the previous generation of tools.
Please visit the
ADIC trac page
for further information.