# Installation of PyHST2¶

This tutorial explains how to install and run the latest version of PyHST2. You do not need the root privileges to install PyHST2.

## Compilation and installation¶

### Dependencies¶

To install and run PyHST, you need to install the following :
• Software: python, cython, gcc, nvidia-cuda-toolkit

• Libraries: HDF5 (libhdf5-dev), openMPI, FFTW3, OpenMP

Please not that PyHST is not intended for running on Windows.

### Local installation¶

In this tutorial, we will suppose that PyHST2 will be installed in a custom directory : /home/myself/software/pyhst2.

First, create the directory in which PyHST2 will be installed. In this directory, retrieve the source of the latest version of PyHST2 from the repository :

cd software
mkdir pyhst2
cd pyhst2
git clone https://gitlab.esrf.fr/mirone/pyhst2


the cloned directory name is pyhst2.

The next step is to prepare the directory where the binaries will be installed. By default, this directory is ~/packages, but here we will do it manually.

mkdir bin
cd bin
export PYHST2_BIN=$(pwd)  Here the environment variable PYHST2_BIN contains /home/myself/software/pyhst2/bin. Then, go into the folder containing the sources (cloned from repository) and launch the compilation : cd ../pyhst2 python setup.py install --prefix=$PYHST2_BIN


For the default installation, you can omit the --prefix=$PYHST2_BIN option. After the compilation, the last thing to do is to specify the installation folder to be able to run PyHST : export PATH=$PATH:$PYHST2_BIN/bin export PYTHONPATH=$PYTHONPATH:$PYHST2_BIN/lib/python2.7/site-packages  ## Launching PyHST2¶ ### Setting the environment variables¶ Each time you open a new bash session, you need to set the environment variable of the PyHST2 directory. For the custom installation in /home/myself/software/pyhst2/ : # For custom-directory installation export PATH=$PATH:/home/myself/software/pyhst2/bin/bin
export PYTHONPATH=$PYTHONPATH:/home/myself/software/pyhst2/bin/lib/python2.7/site-packages  For the standard installation (no --prefix was specified during the installation) : # For standard installation export PATH=$PATH:/home/myself/packages/bin
export PYTHONPATH=\$PYTHONPATH:/home/myself/packages/lib/python2.7/site-packages


Then, when you type PyHST2_ and press [TAB] in a terminal, the current version should appear as a runnable command.

### The launch syntax¶

If PyHST2 is not run from an OAR session, you need to specify :
• the parameter file

• the machine name

so an example would be :

PyHST2_2015X inputfile.par machine,0


Here, machine is the machine name, which is the second word of the result of the uname -a command. The ,0 option is the GPU number to use.

If PyHST2 is run from an OAR session, you do not need to specify the machine name :

PyHST2_2015X inputfile.par


Do not forget to request a GPU when opening an OAR session. For example, an interactive session of 10 minutes with a GPU can be obtained with

oarsub -I -l "nodes=1,walltime=10:00" -p "gpu='YES'"


PyHST2 uses the format PyHST2_2015X for the version name (for example PyHST2_2015a, PyHST2_2015b, …).