Difference between revisions of "Software Required to Build GridPACK"
(Update versions and language about ParMETIS) |
(→Boost) |
||
Line 19: | Line 19: | ||
== Boost == | == Boost == | ||
− | The [http://www.boost.org/ Boost C++ Library] is used heavily throughout the GridPACK framework, and a relatively recent version is required. The configuration requires version 1. | + | The [http://www.boost.org/ Boost C++ Library] is used heavily throughout the GridPACK framework, and a relatively recent version is required. The configuration requires version 1.49 or later, but older versions may work. The [http://www.boost.org/ Boost] installation must include [http://www.boost.org/doc/libs/1_53_0/doc/html/mpi.html Boost::MPI] which must have been built with the same MPI compiler used for GridPACK. |
To configure GridPACK one need only specify where [http://www.boost.org/ Boost] is installed, like this | To configure GridPACK one need only specify where [http://www.boost.org/ Boost] is installed, like this | ||
Line 25: | Line 25: | ||
-D Boost_DIR:STRING='/opt/local' | -D Boost_DIR:STRING='/opt/local' | ||
− | |||
== PETSc == | == PETSc == | ||
Revision as of 15:45, 22 November 2013
Contents
CMake/CTest
GridPACK uses the CMake cross-platform build system. A reasonably modern version is required. Currently, version 2.8 or newer is required.
CMake projects are designed to be built outside of the source code location. In the top directory of a GridPACK release branch checkout (a file called CMakeLists.txt
should be there), make a subdirectory called build
or something. Configure and build GridPACK in that subdirectory.
MPI
A working MPI implementation is required. OpenMPI has been used successfully. There is no reason to think other implementations would not work. The GridPACK configuration can deal with MPI compiler wrappers (e.g. mpicc
), but can also understand other installations.
Identify the compilers and mpiexec
to the configuration by including cmake
options like:
-D MPI_CXX_COMPILER:STRING='openmpicxx' -D MPI_C_COMPILER:STRING='openmpicc' -D MPIEXEC:STRING='openmpiexec'
Other options may be needed to specify the MPI environment. See the documentation here.
Boost
The Boost C++ Library is used heavily throughout the GridPACK framework, and a relatively recent version is required. The configuration requires version 1.49 or later, but older versions may work. The Boost installation must include Boost::MPI which must have been built with the same MPI compiler used for GridPACK.
To configure GridPACK one need only specify where Boost is installed, like this
-D Boost_DIR:STRING='/opt/local'
PETSc
GridPACK currently relies on the Portable, Extensible Toolkit for Scientific Computation (PETSc) for parallel linear algebra, and linear and nonlinear system solvers. PETSc is a complicated package with numerous options. PETSc needs to be built with MPI enabled and using the same MPI implementation used for GridPACK. It also needs to be configured for complex support and to use C++ as the base language. Refer to the PETSc installation documentation for hints on how this is done.
The GridPACK configuration must know where PETSc is installed. This is specified by two options as shown below.
-D PETSC_DIR:STRING='/Users/d3g096/ProjectStuff/petsc-3.4.0' -D PETSC_ARCH:STRING='arch-darwin-cxx-opt'
Currently, the configuration will recognize and adjust the GridPACK build if the PETSc build includes ParMETIS and/or Superlu_DIST.
ParMETIS
GridPACK uses ParMETIS to (re)distribute an electrical network over several processors. It needs to be built with the same MPI configuration as Boost and PETSc. GridPACK configuration will find ParMETIS automatically if it has been included in the PETSc build. Otherwise, the GridPACK configuration just needs to know where ParMETIS was installed, which is specified by
-D PARMETIS_DIR:STRING="/pic/projects/gridpack/software"
GridPACK requires version ParMETIS version 4.0. Older versions will not work.
Doxygen
GridPACK uses Doxygen to help document code. It's use is optional. Doxygen documentation can optionally be prepared during the build process. This is enabled if Doxygen is found. Graphviz is necessary for full documentation features.