Difference between revisions of "Building on Debian"
(→System Preparation) |
(→GridPACK Configuration and Build) |
||
Line 59: | Line 59: | ||
== GridPACK Configuration and Build == | == GridPACK Configuration and Build == | ||
+ | |||
+ | Download GridPACK from the [https://github.com/GridOPTICS/GridPACK/releases GridPACK release page] and untar the release using | ||
+ | |||
+ | tar xvf gridpack-X.X.tar.gz | ||
+ | |||
+ | The top level GridPACK directory is denoted below by the variable <tt>$GRIDPACK</tt>. | ||
+ | |||
+ | It is a good idea to build GridPACK in a separate directory under the GridPACK source tree. The example below assumes that a directory called <tt>build</tt> has been created under <tt>$GRIDPACK/src</tt> and that you have cd'd into this directory. | ||
+ | |||
+ | cd $GRIDPACK/src | ||
+ | mkdir build | ||
+ | cd build | ||
+ | |||
Configure GridPACK as follows | Configure GridPACK as follows | ||
<pre> | <pre> |
Revision as of 15:56, 2 October 2018
Building GridPACK is relatively straightforward on | Debian 9 (stretch) systems. At the time of writing, | Debian 9 was the current stable distribution. There is no need to build any prerequisite software. All can be installed from Debian package repositories.
Contents
[hide]System Preparation
You will need super user or sudo privileges for this installation. You will not be able to edit files /etc/apt/sources.list
or use utilities such as apt-get
without them.
Starting with a clean, minimal installation, add contrib and non-free components of the Debian distribution need to apt sources (ParMETIS is in non-free). Edit /etc/apt/sources.list
and make the main repository line look like this:
deb http://ftp.us.debian.org/debian/ stretch main contrib non-free deb-src http://ftp.us.debian.org/debian/ stretch main contrib non-free
and then refresh the system package lists with
sudo apt-get update
Prerequisite Installation
General
Install a C++ compiler, CMake, and Git:
sudo apt-get install git cmake g++
Boost
Install necessary Boost libraries:
sudo apt-get install libboost-dev libboost-mpi-dev \ libboost-random-dev libboost-filesystem-dev libboost-system-dev
This will also install the default MPI implementation (OpenMPI), including compiler wrappers.
PETSc
Install the real-valued version of PETSc with
sudo apt-get install petsc-dev
or the complex-valued version with
sudo apt-get install libpetsc3.7.5-dev
Global Arrays
Global Arrays has lots of dependencies. Unfortunately, installing the Debian GA package (version 5.4~beta~r10636+dfsg-5
) does not enforce any of them. Installing PETSc first will install most of them. This should complete the GA installation:
sudo apt-get install libglobalarrays-dev libarmci-mpi-dev
ParMETIS
Install ParMETIS using
sudo apt-get install libparmetis-dev libmetis-dev
GNU Linear Programming Kit
GLPK is optional and can be installed with
sudo apt-get install libglpk-dev
GridPACK Configuration and Build
Download GridPACK from the GridPACK release page and untar the release using
tar xvf gridpack-X.X.tar.gz
The top level GridPACK directory is denoted below by the variable $GRIDPACK.
It is a good idea to build GridPACK in a separate directory under the GridPACK source tree. The example below assumes that a directory called build has been created under $GRIDPACK/src and that you have cd'd into this directory.
cd $GRIDPACK/src mkdir build cd build
Configure GridPACK as follows
CC=gcc CXX=g++ CFLAGS=-pthread CXXFLAGS=-pthread export CC CXX CFLAGS CXXFLAGS cmake \ -D PETSC_DIR:STRING="/usr/lib/petsc" \ -D PARMETIS_DIR:PATH="/usr" \ -D GA_EXTRA_LIBS:STRING="-lscalapack-openmpi -lblacs-openmpi -llapack -lblas -lgfortran" \ -D MPI_CXX_COMPILER:STRING="mpicxx" \ -D MPI_C_COMPILER:STRING="mpicc" \ -D MPIEXEC:STRING="mpiexec" \ -D MPIEXEC_MAX_NUMPROCS:STRING="2" \ -D GRIDPACK_TEST_TIMEOUT:STRING=30 \ -D USE_GLPK:BOOL=ON \ -D GLPK_ROOT_DIR:PATH="/usr" \ -D CMAKE_BUILD_TYPE:STRING=Release \ -D CMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \ ..
Then, build and test
make make test