Hi, my institution has an HPC cluster and I have data that cannot be put in the cloud. I want to run hail in local mode on a single interactive node of the HPC cluster, using all cores available to that interactive node. I tried
pip install hail
but ran into a variety of issues including not having Java and something about GLIBC 2.14.
I strongly recommended confirming that your data must not be put in the cloud.
If you must use an on-premises HPC cluster and your HPC cluster has a use command and an interactive shell command called ish, the following should work:
use UGER
ish -l os=RedHat7
use Anaconda3
use Java-1.8
use .openblas_for_hail-0.2.20
conda create -n hail python==3.7
source activate hail
conda install pip
pip install -U hail
The first line gets an interactive node with RedHat7. Later versions of RedHat should also work fine, it’s just important that your operating system has glibc 2.14 or later. You can confirm what version of glibc your operating system provides by executing ldd --version.
The second and third lines enable the use of python3 and Java 1.8 in this interactive session.
Next we create a conda environment called hail. The source activate line activates that environment.
conda install pip ensures our environment has the latest version of pip.
The final line installs hail. Now you should be able to start python and import hail.
The next time you want to use hail, you should only need to execute:
use UGER
ish -l os=RedHat7
use Anaconda3
use Java-1.8
use .openblas_for_hail-0.2.20
source activate hail
If you’re using any of the regression or block matrix functions, you will need a CBLAS compatible library named libblas.so. On some clusters, this is available as use OpenBLAS.
On the Broad Institute cluster, the OpenBLAS library is installed as libopenblas.so. Unfortunately, netlib-java, the library Hail uses to talk to BLAS, only looks for CBLAS compatible libraries named libblas.so. Broad IT has graciously provided use .openblas_for_hail-0.2.20, a hidden dotkit that correctly configures OpenBLAS for Hail.