Installing prerequisite software
An alternative to running the book recipes in a container is to install the dependencies directly on the host operating system. For this, we have assembled a minimal toolstack that can be used as a basic starting point for all of our recipes. You will have to install the following:
-
Cmake
-
Language-specific tools, that is , the compilers
-
Build autumation tools
-
Python
We weill also detail how to install the additional dependencies required by some of the recipes.
this post for “clear linux” distribution
Cmake
installed
1
cmake --version
Compilers
installed
1
g++ version
Build-automation tools
1
swupd bundle-add dev-utils
python
installed
1
python --version
pipenv
pipenv run to directly execute a command within the isolated environment.
1
sudo pip install --user pip pipenv --upgrade
conda
1
sudo swupd bundle-add conda
Additional software
Some reciptes will require additional software, which will be covered in the following sections
BLAS and LAPCK
The BLAS (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations. … Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of high quality linear algebra software, LAPACK for example.
1
sudo swupd bundle-add openblas
OpenMPI
MPI is a standard library for performing parallel processing using a distributed memory model. The Ruby, Owens, and Pitzer clusters at OSC can use the OpenMPI implementation of the Message Passing Interface (MPI).
1
sudo swupd bundle-add devpkg-openmpi
eigen
Eigen provides native CMake support which allows the library to be easily used in CMake projects.
1
sudo swupd bundle-add devpkg-eigen
boost
Boost is a set of libraries for the C++ programming language that provides support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions, and unit testing. It contains 164 individual libraries
1
swupd bundle-add runtime-libs-boost
Cross-compilers
MinGW (“Minimalist GNU for Windows”), formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications. The development of the MinGW project has been forked with the creation in 2005–2008 of an alternative project called Mingw-w64.
1
sudo swupd bundle-add c-basic-mingw
ZeroMQ, pkg-config, UUID, and Doxygen
Doxygen
Documentation system for C++, Java, IDL, Python, and PHP.
1
sudo swupd bundle-add doxygen