conda vs miniforge

conda is a package management system. It allows us to create a virtual environment and reduces the risk of dependency hell! miniforge is a community-led system with the same interface with conda. While conda is the canonical version, my personal recommendation is miniforge as it is substantially faster.

Conda

Use conda pacakge management system: conda is a convenient package management software that can install both python non-python programs. See here for the installation. Alternatively, you can also use virtualenv.

Create the virtual environment: Create a Python virtual environment for each project to prevent dependency issues. You can create a virtual environment by

conda create -n <any environment name you like> python=<version you like>

and enter the environment by

conda activate <any environment name you like>

Miniforge

See here for installation

Record your python package essentials: It is often a good idea to create a list of essential python packages for your projects. Here is mine.

mamba create -n <project_name> -c rapidsai -c conda-forge -c nvidia  rapids=23.10 python=3.9 cuda-version=11.8
mamba activate <project_name>
mamba install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia -y
mamba install -y -c bioconda -c conda-forge snakemake -y
mamba install -c conda-forge graph-tool scikit-learn numpy numba scipy pandas polars networkx seaborn matplotlib gensim ipykernel tqdm black faiss-gpu==1.7.3 -y
install GPUtil nvitop