-
Notifications
You must be signed in to change notification settings - Fork 45
How to Build PhasicFlow
You can build PhasicFlow for different hardware, CPU or GPU, depending on the computer. You can have a single build or oven multiple builds on a machine. Here you learn how to build PhasicFlow in various modes of execution.
PhasicFlow uses Kokkos as the backend for parallelization. So, you need to have a copy of the source code in the machine alongside PhasicFlow. The make system is adjusted in a way so you do not need to separately compile Kokkos and the required source code files from Kokkos are compiled alongside the PhasicFlow.
You also need to have CMake-3.22 or higher installed on your computer.
For Ubuntu 20.04 LTS or later versions, some parallel algorithms rely on tbb parallel library (C++ parallel backend). This dependency will be removed soon. Use e following commands to install it:
sudo apt update
sudo apt install libtbb-dev
If you are compiling on Ubuntu-18.04 LTS, you need to enter the following commands to get the right version of tbb:
wget "http://archive.ubuntu.com/ubuntu/pool/universe/t/tbb/libtbb2_2020.1-2_amd64.deb"
sudo dpkg --install libtbb2_2020.1-2_amd64.deb
wget "http://archive.ubuntu.com/ubuntu/pool/universe/t/tbb/libtbb-dev_2020.1-2_amd64.deb"
sudo dpkg --install libtbb-dev_2020.1-2_amd64.deb
PhasicFlow uses CMake as the build system. you need to have CMake-3.22 or higher installed on your machine. you can either use the command line for setting-up the build system, or use cmake-gui to setup your build system through the GUI.
Make sure you have installed all the required packages on your computer (tbb and CMake and compilers).
note: You must have git installed on your computer. If it is not installed, enter the following command:
sudo apt install git
It is assumed that Kokkos source is located in the home folder of your OS. Clone the current version of Kokkos into your home folder:
cd ~
mkdir Kokkos
cd Kokkos
git clone https://github.com/kokkos/kokkos.git
or simply download and extract the source code of Kokkos in ~/Kokkos folder. In the end, the top level CMakeLists.txt file should be located in ~/Kokkos/kokkos folder.
Create the PhasicFlow folder in your home folder and then clone the source code into that folder:
cd ~
mkdir PhasicFlow
cd PhasicFlow
git clone https://github.com/PhasicFlow/phasicFlow.git
In the terminal enter the following command:
gedit ~/.bashrc
and add the following line to the end of the file, save and close it.
source $HOME/PhasicFlow/phasicFlow/cmake/bashrc
close the terminal.
Follow one of the followings to build PhasicFlow for one mode of execution.
Open a new terminal and enter the following commands:
cd ~/PhasicFlow/phasicFlow
mkdir build
cd build
cmake ../ -DpFlow_Build_Serial=On
make install
For faster builds, use make install -j. This will use all the CPU cores on your computer for building.
cd ~/PhasicFlow/phasicFlow
mkdir build
cd build
cmake ../ -DpFlow_Build_OpenMP=On
make install
cd ~/PhasicFlow/phasicFlow
mkdir build
cd build
cmake ../ -DpFlow_Build_Cuda=On
make install
After building, bin, include, and lib folders will be created in ~/PhasicFlow/phasicFlow/ folder. Now you are ready to use PhasicFlow.
In the current terminal or a new terminal enter the following command:
checkPhasicFlow
This command shows the host and device environments and software version. If PhasicFlow was build correctly, you would get the following output:
Initializing host/device execution spaces . . .
Host execution space is Serial
Device execution space is Cuda
You are using phasicFlow v-0.1 (copyright(C): www.cemf.ir)
Finalizing host/device execution space ....
- Features
- How to build
- Tutorials (compatible with v-1.0)
- Performance Test
- How to contribute to PhasicFlow
- Coding Style Guidelines
- About PhasicFlow