Conda¶
Visão geral¶
Conda é uma ferramenta robusta para gestão de ambientes e pacotes de software, amplamente adotada nas áreas de ciência de dados e computação científica. Ela possibilita a criação de ambientes isolados com diferentes versões de pacotes, facilitando a compatibilidade entre dependências.
Este guia mostra como usar Conda de forma eficiente no cluster HPC.
Licenciamento Anaconda
Devido a restrições de licença do Anaconda, recomendamos usar Conda através do canal conda-forge para uso acadêmico e comercial sem restrições.
Verificar disponibilidade¶
# Verificar se Conda está disponível como módulo
module avail conda
# Ou verificar Miniconda
module avail miniconda
Configuração inicial¶
Opção 1: Usar Conda do Módulo¶
# Carregar módulo Conda
module load conda
# Inicializar Conda (primeira vez)
conda init bash
# Recarregar shell ou fazer login novamente
source ~/.bashrc
Opção 2: Instalar Miniconda Pessoal¶
Se preferir ter sua própria instalação do Conda:
# Baixar Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# Instalar (escolha local apropriado)
bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/miniconda3
# Inicializar
~/miniconda3/bin/conda init bash
source ~/.bashrc
Configurar conda¶
Configurar conda-forge como canal padrão¶
# Adicionar conda-forge
conda config --add channels conda-forge
# Definir prioridade estrita
conda config --set channel_priority strict
# Verificar configuração
conda config --show channels
Configurar diretório de pacotes e envs¶
Onde criar ambientes Conda
- Ambientes pequenos (< 10 GB):
/home/$USER/miniconda3/envs/ - Ambientes grandes:
/scratch/projetos/<seu_projeto>/conda_envs/
# Configurar local de ambientes
conda config --add envs_dirs /scratch/projetos/<seu_projeto>/conda_envs
conda config --add pkgs_dirs /scratch/projetos/<seu_projeto>/.conda_pkgs
# Verificar configuração
conda config --show envs_dirs
conda config --show pkgs_dirs
Gerenciar ambientes¶
Criar ambiente¶
# Criar ambiente com Python específico
conda create --name meu_ambiente python=3.10
# Criar com pacotes iniciais
conda create --name ciencia_dados python=3.10 numpy pandas matplotlib
# Criar de arquivo environment.yml
conda env create -f environment.yml
Ativar/Desativar ambiente¶
Listar ambientes¶
Remover ambiente¶
Instalar pacotes¶
Instalação básica¶
# Ativar ambiente primeiro
conda activate meu_ambiente
# Instalar pacote
conda install numpy
# Instalar múltiplos pacotes
conda install numpy pandas scipy matplotlib
# Instalar de canal específico
conda install -c conda-forge scikit-learn
# Instalar versão específica
conda install python=3.11
Atualizar pacotes¶
# Atualizar pacote específico
conda update numpy
# Atualizar todos os pacotes
conda update --all
# Atualizar Conda em si
conda update conda
Listar pacotes¶
Usar conda em jobs SLURM¶
Job simples¶
#!/bin/bash
#SBATCH --job-name=conda_job
#SBATCH --output=/scratch/projetos/<seu_projeto>/logs/job_%j.out
#SBATCH --error=/scratch/projetos/<seu_projeto>/logs/job_%j.err
#SBATCH --time=02:00:00
#SBATCH --cpus-per-task=8
#SBATCH --mem=16G
# Inicializar Conda
source ~/miniconda3/etc/profile.d/conda.sh
# Ou se usar módulo
# module load conda
# Ativar ambiente
conda activate meu_ambiente
# Executar script
python analise.py
Job com GPU (TensorFlow/PyTorch)¶
#!/bin/bash
#SBATCH --job-name=deep_learning
#SBATCH --partition=gpu
#SBATCH --gpus=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=32G
#SBATCH --time=08:00:00
#SBATCH --output=/scratch/projetos/<seu_projeto>/logs/gpu_%j.out
# Carregar módulos necessários
module load cuda/11.8
# Inicializar Conda
source ~/miniconda3/etc/profile.d/conda.sh
# Ativar ambiente
conda activate pytorch_env
# Executar treinamento
python treinar_modelo.py
Consulte exemplos de jobs SLURM para mais opções.
Exportar/importar ambientes¶
Criar arquivo environment.yml¶
# Exportar ambiente atual
conda env export > environment.yml
# Ou apenas dependências principais
conda env export --from-history > environment.yml
Exemplo de environment.yml:
name: meu_ambiente
channels:
- conda-forge
- defaults
dependencies:
- python=3.10
- numpy=1.24.3
- pandas=2.0.3
- matplotlib=3.7.2
- scikit-learn=1.3.0
Recriar ambiente¶
# Criar ambiente de arquivo
conda env create -f environment.yml
# Ou atualizar ambiente existente
conda env update -f environment.yml --prune
Boas práticas¶
1. Sempre use conda-forge¶
# Configurar uma vez
conda config --add channels conda-forge
conda config --set channel_priority strict
2. Criar ambientes por projeto¶
3. Manter environment.yml atualizado¶
4. Limpar cache regularmente¶
Ambientes Conda podem ocupar muito espaço:
# Limpar pacotes não utilizados
conda clean --all
# Verificar tamanho
du -sh ~/miniconda3
du -sh /scratch/projetos/<seu_projeto>/conda_envs
5. Usar mamba para instalações mais rápidas¶
Mamba é um solver mais rápido para Conda:
# Instalar mamba
conda install mamba -c conda-forge
# Usar mamba em vez de conda
mamba install numpy pandas
Pacotes comuns¶
Ciência de Dados¶
Machine Learning¶
Bioinformática¶
Visualização¶
Problemas comuns¶
Conflitos de dependências¶
Problema: Conda não consegue resolver dependências.
Solução:
# Usar mamba (mais rápido)
mamba install <pacote>
# Ou criar ambiente novo
conda create --name novo_env <pacotes>
Ambiente grande demais¶
Problema: Ambiente ocupa muito espaço.
Solução:
# Limpar cache
conda clean --all
# Mover para /scratch
mv ~/miniconda3/envs/meu_env /scratch/projetos/<seu_projeto>/conda_envs/
ln -s /scratch/projetos/<seu_projeto>/conda_envs/meu_env ~/miniconda3/envs/meu_env
Conda lento¶
Problema: Instalação de pacotes muito lenta.
Solução:
# Instalar e usar mamba
conda install mamba -c conda-forge
mamba install <pacote>
# Ou desabilitar atualizações automáticas
conda config --set auto_update_conda false
Conflito com módulos¶
Problema: Conflito entre Conda e módulos do sistema.
Solução:
# Descarregar todos os módulos antes de usar Conda
module purge
# Depois ativar Conda
conda activate meu_ambiente
Conda vs Python venv¶
| Aspecto | Conda | Python venv |
|---|---|---|
| Pacotes | Python + Não-Python (C, R, etc.) | Apenas Python |
| Gerenciamento | Ambientes + Pacotes | Apenas ambientes |
| Tamanho | Maior | Menor |
| Velocidade | Mais lento | Mais rápido |
| Uso recomendado | Ciência de dados, ML | Desenvolvimento Python puro |
Veja também o guia de Python para comparação.
Recursos adicionais¶
- Exemplos de Jobs SLURM
- Gerenciamento de arquivos
- Guia de Python
- Documentação oficial do Conda
- Conda-forge
- Mamba
Suporte¶
Se você encontrar problemas com Conda:
- Verifique a documentação:
conda --help - Consulte nossa página de suporte
- Entre em contato: hpc@fieb.org.br