Requirements:
- Perl
- Python
(version 2.4.x or higher; not usable with Python version 3)
- gcc
(with Fortran, needed for Open64 compile) with version 3.3.x or later
known compiler issues:
- the top level Makefile checks if CC/CXX are defined in the environment to be other than cc/g++ which are hard coded in the Open64 build system and would cause conflicts if the other components were not configured with the same defaults
- gcc version 3.4.6 20060404 (Red Hat 3.4.6-11) has a bug that produces an error message related to an operator defined in boost; use a different gcc version
- only relevant for running some of the examples and regression tests: gfortran prior to version 4.2 does not handle allocatable dummy arguments, use version 4.2 or newer
- GNU
make
- CVS and Subversion - optional, only needed for installing from source code repositories
- Mercurial - optional, only needed for installing from source code repositories and only for extra 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
verified version via Subversion/CVS/Mercurial.
Installing sources from tar file:
The latest tar file was created on2009-11-23
and can be downloaded as:
OpenAD_2009-11-23.tgz
We maintain a
table of snapshots with version information for each component.
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 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 http://hpc.svn.rice.edu/r/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_38_0/boost boost/boost
- angel
-
the automatic
differentiation nested
graph
elimination
library
cvs
-z3 -d:pserver:anonymous@angellib.cvs.sourceforge.net:/cvsroot/angellib
co angel
If there are problems please check the sourceforge outage page.
- the repositories listed below can be
obtained from Rice University's HPC subversion server.
The checkout can be done
with:
- Open64
- the
Fortran90 compiler (we compile and use only the front end), see also here
svn
co http://hpc.svn.rice.edu/r/open64/tags/version-openad Open64
- OpenAnalysis
- the code analysis tool, see also here
svn
co http://hpc.svn.rice.edu/r/open-analysis/tags/version-openad
OpenAnalysis
- OpenADFortTk
- the
OpenAD Fortran ToolKit
svn
co http://hpc.svn.rice.edu/r/OpenADFortTk/trunk
OpenADFortTk
- xaif
- the XML
Abstract Interface schema (and examples)
svn
co http://hpc.svn.rice.edu/r/xaif/trunk xaif
- xaifBooster
- the C++ AD
transformation
engine
svn
co http://hpc.svn.rice.edu/r/xaifBooster/trunk xaifBooster
- EDG/Sage3:
C/C++ front end; These are not needed for the Fortran tool;
As
of
this time please contact
us to
obtain a copy.