Parallel Computational Chemistry Application
Built in C, C++ & Fortran & Java.
Successor to ACESIII [http://www.qtp.ufl.edu/].
The ACESIII system is described in the paper titled "A Block-Oriented Language and Runtime System for Tensor Algebra with Very Large Arrays" [http://dx.doi.org/10.1109/SC.2010.3]
See the Wiki (https://github.com/UFParLab/aces4/wiki) for more information
aces4
- computational chemistry application
Options :
-d : .dat file, generated using acesinit. Contains initialization data
-s : directory containing .siox files referred to in the .dat file.
-m : approx. upper bound for memory usage. Additional usage in overhead & bookkeeping.
print_siptables
- dumps SipTables to stdout. SipTables store all static data contained in a compiled SIAL program and the .dat file.
Options :
-d : .dat file, generated using acesinit. Contains initialization data
-s : directory containing .siox files referred to in the .dat file.
java
GNU (gcc > v4.8, g++, gfortran, libblas-dev, liblapack-dev) or
Intel compilers & Math Libraries
If checking out from git:
automake
autoconf
libtool
You will need doxygen
to make documentation.
Timer resolution can be improved with PAPI
(http://icl.cs.utk.edu/papi/).
Can also use TAU
(http://www.cs.uoregon.edu/research/tau) for detailed profile & trace information.
Google tests v1.7 is required to run tests.
Get it from http://googletest.googlecode.com/files/gtest-1.7.0.zip.
Unzip it into the test/
directory.
In the root of the project, say:
./autogen.sh
mkdir BUILD
cd BUILD
../configure
make
To run the tests (in the BUILD directory):
make check
To make doxygen documentation pdf & html (in the BUILD directory):
make doxygen-run
There are 2 versions of ACES4 - a single node
and a MPI multinode version
.
By default, if an MPI compiler can be detected, the mpi version will be compiled.
To disable this default behaviour, use the --with-mpi=no
switch when configuring
To forcefully build the multinode version, use the --with-mpi=yes
switch.
Super instructions can be profiled with PAPI wall time timers. To enable their use, while configuring, use the --with-papi=PATH
option, for instance on the UF HiperGator machine: ../configure --with-papi=/apps/papi/5.1.0
If PAPI is not "installed" by your admin, you can download the tarball in your home directory, build it and "install" it in your home directory and point to that directory when configuring.
SIAL Programs & Super Instructions can be profiled & Traced with TAU. To enable them, use the --with-tau option. For instace, on the UF HiperGator machine:
../configure --with-tau=/apps/tau/2.21.4/openmpi-1.6 # (for MPI)
../configure --with-tau=/apps/tau/2.21.4/serial # (for Serial).
If TAU is not "installed", you can download the tarball, compile (and install) it and have the --with-tau
point to that directory.
Please set the Environment variable TAU_CALLPATH
to 0
to only view time spent per superinstruction. This will hide the C++/Fortran call stack associated with a super-instruction. Setting TAU_PROFILE
to 1
will collect profile information and setting TAU_TRACE
to 1
will collect trace data. Documentation for TAU can be found here : http://www.cs.uoregon.edu/research/tau/docs.php
.
Note that if TAU is used, builtin aces4 profile information collection is disabled.
Certain super-instructions are accelerated through CUDA. To enable their use, configure with the --with-cuda
switch. For instance, on the UF HiperGator machine: ../configure --with-cuda=/opt/cuda
Please note that on your system, you may need to load in the module first and figure out the path. You can also just say ../configure --with-cuda
and the configure script will attempt to find the cuda header and libraries in default locations. It will complain if it cant, in which case, you'll need to use the --with-cuda=PATH
switch.
Use the --enable-development
switch to configure to get extra logging.
Please explore the tool/
directory.