сряда, 28 февруари 2024 г.

From 0 to working scientific python with pypolychord

This is a brand new Lenovo laptop I got as a backup because my dear Asus got broken. So I got this smaller and weaker but still cute laptop. So I wanted to make this post just to list the quickest install from 0 to a working python file. 

Install python and jupyter

1. pacman -S python3

2. pacman -S jupyter-notebook

Install miniconda3 (instructions here)

3. mkdir -p ~/miniconda3

4. cd ~/miniconda3                                                                                                                                                                                                        
5. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh

6. bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3

7. ~/miniconda3/bin/conda init bash
 

Then install the packages I need. I'm pretty sure I have an exported file from this environment with the packages but this is the absolute minimum of stuff. 

8.
conda create --name myenv
conda install -n myenv pip
conda install ipykernel
python3 -m ipykernel install --user --name=myenv
pacman -S gcc
pip install wheel
sudo pacman -S make
sudo pacman -S gcc-fortran

(optional conda install libgcc - no idea if this helped)

sudo pacman -S gcc-libs

pip install numpy
pip install git+https://github.com/PolyChord/PolyChordLite@master
conda install matplotlib
pip install getdist

I was getting a persistent error with libstdc++.so.6 (see here for other suggestions), here's what I did (after I installed gcc-libs and gcc-fortran)

sudo find / -name "libstdc++.so*"
conda install -c anaconda libstdcxx-ng
conda update libstdcxx-ng
ls ~/miniconda3/envs/myenv/bin/../lib
cp /usr/lib/libstdc++.so.6.0.32 ~/miniconda3/envs/myenv/bin/../lib 

And then manually removing libstdc++.so.6.0.21 and libstdc++.so.6.0.29

The problem with mpi4py:

I was getting a kernel crash from inside polychord, that I know it's related to mpi4py. So I had to install it. When trying to pip install it, I woul get this error:

"The Open MPI wrapper compiler was unable to find the specified compiler
     x86_64-conda_cos6-linux-gnu-cc in your PATH.
      
     Note that this compiler was either specified at configure time or in
     one of several possible environment variables.
     --------------------------------------------------------------------------
     failure.
     removing: _configtest.c _configtest.o
     error: Cannot compile MPI programs. Check your configuration!!!"

Solving it took a long time and 3 gpts!
 >sudo pacman -S openmpi

>yay -S mpicc
 >yay -S mpich

>echo $PATH
>conda list #look for openmpi - I had it, but obviously not working well enough

x86_64-conda_cos6-linux-gnu-cc

which gcc
/usr/bin/gcc

which mpicc
~/miniconda3/envs/BAO/bin/mpicc
export MPICC=~/miniconda3/envs/BAO/bin/mpicc

>pip install mpi4py #longer output but still and error

The Open MPI wrapper compiler was unable to find the specified compiler
      x86_64-conda_cos6-linux-gnu-cc in your PATH.
      
      Note that this compiler was either specified at configure time or in
      one of several possible environment variables.
      --------------------------------------------------------------------------
      failure.
      removing: _configtest.c _configtest.o
      error: Cannot compile MPI programs. Check your configuration!!!

>which x86_64-conda_cos6-linux-gnu-cc
/i didn't have it anywhere/
>conda install x86_64-conda_cos6-linux-gnu-cc
ls ~/miniconda3/envs/BAO/bin #look for x86_64-conda_cos6-linux-gnu-cc - I have x86_64-conda-linux-gnu-cc
>export PATH=~/miniconda3/envs/BAO/bin:$PATH
>pip install mpi4py #nope, same error as above
>conda install -c conda-forge openmpi
>conda install -c conda-forge openmpi --force-reinstall
>pip install mpi4py #yay!!! 

It finally worked. As you can imagine, a lot of steps, it took a while to figure it out. But now polychord is working and all is fine. 


Няма коментари:

Публикуване на коментар