Saltar a contenido

Conda#

Conda es un gestor paquetes y entornos de software libre utilizado sobre todo para paquetes de Python y R del ámbito científico, aunque también soporte otros lenguajes como C, C++, FORTRAN, Java, Scale, Ruby y Lua.

Utilizar Conda en TeideHPC#

Una vez nos hayamos conectados a los nodos de login, tendremos que cargar el módulo de miniconda para empezar a utilizar conda:

module load Miniconda2/4.7.10

Una vez cargado el software, podemos, por ejemplo, ver la información de la versión de conda:

conda info
     active environment : None
       user config file : /home/vjuidias/.condarc
 populated config files : /home/vjuidias/.condarc
          conda version : 4.7.10
    conda-build version : not installed
         python version : 2.7.16.final.0
       virtual packages : 
       base environment : /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10  (read only)
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/bioconda/linux-64
                          https://conda.anaconda.org/bioconda/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://conda.anaconda.org/r/linux-64
                          https://conda.anaconda.org/r/noarch
          package cache : /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/pkgs
                          /home/vjuidias/.conda/pkgs
       envs directories : /home/vjuidias/.conda/envs
                          /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/envs
               platform : linux-64
             user-agent : conda/4.7.10 requests/2.22.0 CPython/2.7.16 Linux/3.10.0-327.el7.x86_64 centos/7.2.1511 glibc/2.17
                UID:GID : 1136:1136
             netrc file : None
           offline mode : False

Ahora tenemos que inicializar la shell para utilizar Conda. Este paso es solo es necesario la primera vez. Si no lo hacemos, al utilizar conda, nos saldrá este mensaje:

CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run

    $ conda init <SHELL_NAME>

Currently supported shells are:
  - bash
  - fish
  - tcsh
  - xonsh
  - zsh
  - powershell

See 'conda init --help' for more information and options.

IMPORTANT: You may need to close and restart your shell after running 'conda init'.

Por tanto, lo que tenemos que hacer es:

conda init bash
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/condabin/conda
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/bin/conda
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/bin/conda-env
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/bin/activate
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/bin/deactivate
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/etc/profile.d/conda.sh
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/etc/fish/conf.d/conda.fish
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/shell/condabin/Conda.psm1
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/shell/condabin/conda-hook.ps1
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/lib/python2.7/site-packages/xontrib/conda.xsh
no change     /opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/etc/profile.d/conda.csh
modified      /home/vjuidias/.bashrc

==> For changes to take effect, close and re-open your current shell. <==

Al hacer esto se nos ha modificado la shell, en este caso, la bash. Se nos han añadido las siguientes líneas en el fichero ~/.bashrc`:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/etc/profile.d/conda.sh" ]; then
        . "/opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/etc/profile.d/conda.sh"
    else
        export PATH="/opt/envhpc/slurm19/rhel7/Miniconda2/4.7.10/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

Para que tenga efecto los cambios, tenemos que salir del nodo de login y volver a entrar. Una vez hecho, ya podremos utilizar conda, instalar paquetes y crear entornos.

Crear un entorno en /data#

Por defecto, Conda creará un entorno e instalará todo el software en el /home del usuario. Este almacenamiento esta limitado en tamaño, así que deberíamos configurar los entornos e instalar el software en la partición de /data. Para hacer esto, simplemente tenemos que especificarle a Conda la ruta:

conda create -p data/myenvironment mysoftware

Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /data/vjuidias/myenvironment
  ...

Y lo activamos de la misma manera, especificando la ruta:

conda activate /data/vjuidias/myenvironment

4 11 18