En plus de module, les usagers de PlaFRIM peuvent gérer leurs environnements logiciels avec GNU Guix, un outil de gestion de paquets générique.
Pourquoi utiliser Guix ?
Guix peut s'utiliser en complément et en parallèle de module. Il y a plusieurs raisons pour lesquelles il peut s'avérer utile pour vous :
- Guix fournit plus de 7500 paquets notamment : des utilitaires comme tmux, des chaînes de compilation (GCC, Clang), des logiciels Python (Scikit-Learn, NumPy, etc.), des bibliothèques HPC (Open MPI, MUMPS, PETSc, etc.).
- Des binaires pré-compilés sont généralement disponibles pour les paquets que vous installez, ce qui rend l'installation rapide.
- Vous choisissez à quel moment vous mettez à jour ou enlevez les paquets que vous avec installés, et vous pouvez revenir en arrière à n'importe quel moment si une mise à jour a eu des effets indésirables.
- Vous pouvez reproduire exactement le même environnement, bit à bit, sur PlaFRIM et sur n'importe quelle autre machine (portable, grappe de calcul, etc.).
- Les environnements logiciels peuvent être "emballés" comme image Docker pour utilisation sur d'autres systèmes.
Prise en main
Recherche de paquets
Vous pouvez parcourir la liste de paquets en ligne ou avec une de ces commandes :
guix package --list-available
guix package -s mot-clef
Installer des logiciels
Par défault Guix installe les logiciels dans votre répertoire d'accueil, sous ~/.guix-profile. Sur PlaFRIM, installer des logiciels avec Guix met automatiquement à jour vos variables d'environnement de sorte que, à la prochaine connexion, PATH, PYTHONPATH, et les autres variables du genre pointent sur ~/.guix-profile.
Pour installer la dernière chaîne de compilation GNU, lancez :
guix package --install gcc-toolchain
Pour Python 3.x avec NumPy and SciPy (remarque : la commande se nomme python3 et non python), lancez :
guix package -i python python-numpy python-scipy
Définir les variables d'environnement pour les chemins de recherche :
eval `guix package --search-paths=prefix`
Mettre à jour les paquets disponibles :
guix pull
Manipuler les "générations de profils"
Pour lister les "générations" de votre profil (c'est-à-dire les changements successifs que vous avez fait à votre ensemble de logiciels installés) :
guix package -l
Pour revenir à une génération précédente de votre profil :
guix package --roll-back
Utilisation des paquets Guix-HPC
Nous maintenanons un ensemble de paquets pour les logiciels des équipe-projets communes telles que STORM, HiePACS, and TaDaaM in dans le dépôt Guix-HPC. Pour l'utiliser, lancez :
$ git clone https://gitlab.inria.fr/guix-hpc/guix-hpc.git
$ export GUIX_PACKAGE_PATH=$PWD/guix-hpc/modules
Les logiciels propriétaires tels que CUDA ainsi que les variantes de logiciels libres dépendant de ceux-ci (comme par exemple starpu-cuda) sont disponibles séparément (requiert un compte gitlab.inria.fr) :
$ git clone https://gitlab.inria.fr/guix-hpc/guix-hpc-non-free.git
$ export GUIX_PACKAGE_PATH=$PWD/guix-hpc-non-free/modules
Créer des "lots applicatifs" portables
Une fois que vous avez un environnement logiciel qui vous convient sur PlaFRIM, vous aurez peut-être envie de créer un "lot applicatif" (application bundle) auto-suffisant que vous pourrez envoyer sur d'autres machines qui n'ont pas Guix. Avec guix pack vous pouvez créer des "images de conteneur" pour Docker ou Singularity ou même des archives tar. Pour plus d'information, voir les articles suivants :
Support
Pour plus d'information :
Merci d'envoyer vos demandes à plafrim-guix@inria.fr.