Install dependencies on Linux¶
Here we present the packages you need to install in order to be able to compile Smilei. Please be aware that distribution change quite often the package names. As result this guide could partially or totally outdated. In case you find some error, please fill a github issue .
ArchLinux¶
sudo pacman -S git hdf5-openmpi python-numpy python-sphinx python-h5py-openmpi python-matplotlib python-pint make gcc
Fedora¶
sudo dnf install gcc-c++ git hdf5-openmpi hdf5-openmpi-devel openmpi-devel python python-devel python3-h5py ipython python3-pint python3-sphinx python3-matplotlib
Add the following lines to your ~/.bashrc
or ~/.bash_profile
file
module load mpi
Debian or Ubuntu¶
sudo apt-get install git python3-h5py python3-ipython python3-pint python3-sphinx python3-matplotlib python3-dev python3-numpy build-essential gcc libhdf5-openmpi-dev
Add the following lines to your ~/.bashrc
or ~/.bash_profile
file
export PYTHONEXE=python3
export HDF5_ROOT_DIR=/usr/lib/x86_64-linux-gnu/hdf5/openmpi
Troubleshooting:¶
Besides Python Smilei need a quite recent mpi (with mpi-thread-multiple enabled) and a parallel hdf5 library. In case you system doe not provide them, here is a (non exhaustive) help to instlal them:
If your system
openmpi
is not compiled with--enable-mpi-thread-multiple
, a manual installation is required. Add the following lines to your~/.bashrc
or~/.bash_profile
file (You may choose any${INSTALL_DIR}
)
export INSTALL_DIR=/usr/local export PATH=${INSTALL_DIR}/openmpi/bin:${PATH} export LD_LIBRARY_PATH=${INSTALL_DIR}/openmpi/lib:${LD_LIBRARY_PATH} export PATH=${INSTALL_DIR}/hdf5/bin:${PATH} export LD_LIBRARY_PATH=${INSTALL_DIR}/hdf5/lib:${LD_LIBRARY_PATH} export HDF5_ROOT_DIR=${INSTALL_DIR}/hdf5
Restart your terminal
Download OpenMPI and install.
tar zxvf openmpi-*.*.*.tar.gz cd openmpi-*.*.* ./configure --prefix=${INSTALL_DIR}/openmpi --enable-mpi-thread-multiple --enable-mpirun-prefix-by-default make sudo make install
Restart your terminal
Download HDF5 and install
tar zxvf hdf5-*.*.*.tar.gz cd hdf5-*.*.* ./configure --prefix=${INSTALL_DIR}/hdf5 --enable-parallel --with-pic --enable-linux-lfs --enable-shared --enable-build-mode=production --disable-sharedlib-rpath --enable-static CC=mpicc FC=mpif90 make sudo make install