Suivant: Utilisation du disque, Précédent: Mettre en place des nœuds de calcul, Monter: Installer Guix sur une grappe de calcul [Table des matières][Index]
Guix a besoin d’un accès réseau pour télécharger le code source et les binaires préconstruits. La bonne nouvelle, c’est que seul le nœud principal en a besoin car les nœuds de calcul lui délèguent cette tâche.
Les nœuds d’une grappe ont traditionnellement accès au mieux à une liste
blanche d’hôtes. Notre nœud principal a besoin au minimum que
ci.guix.gnu.org
soit dans cette liste car c’est là qu’il récupère les
binaires préconstruits par défaut, pour tous les paquets dans Guix lui-même.
Au passage, ci.guix.gnu.org
sert également de miroir addressé
par le contenu du code source de ces paquets. En conséquence, il suffit
d’avoir uniquement ci.guix.gnu.org
dans cette liste blanche.
Les paquets logiciels maintenus dans un dépôt séparé comme ceux des divers
canaux HPC ne sont bien sur pas
disponibles sur ci.guix.gnu.org
. Pour ces paquets, vous devriez
étendre la liste blanche pour que les sources et les binaires préconstruits
(en supposant que des serveurs tiers fournissent des binaires pour ces
paquets) puissent être téléchargés. En dernier recours, les utilisateur·ices
peuvent toujours télécharger les sources sur leur machine de travail et les
ajouter au /gnu/store de la grappe, de cette manière :
GUIX_DAEMON_SOCKET=ssh://compute-node.example.org \ guix download http://starpu.gforge.inria.fr/files/starpu-1.2.3/starpu-1.2.3.tar.gz
La commande ci-dessus télécharge starpu-1.2.3.tar.gz
et
l’envoie à l’instance guix-daemon
du nœud principal par SSH.
Les grappes sans connexion nécessitent plus de travail. Pour le moment,
notre suggestion est de télécharger tout le code source nécessaire sur une
station de travail qui exécute Guix. Par exemple, avec l’option
--sources de guix build
(voir Invoquer guix build dans le manuel de référence de GNU Guix), l’exemple ci-dessous
télécharge tout le code source dont dépend le paquet openmpi
:
$ guix build --sources=transitive openmpi … /gnu/store/xc17sm60fb8nxadc4qy0c7rqph499z8s-openmpi-1.10.7.tar.bz2 /gnu/store/s67jx92lpipy2nfj5cz818xv430n4b7w-gcc-5.4.0.tar.xz /gnu/store/npw9qh8a46lrxiwh9xwk0wpi3jlzmjnh-gmp-6.0.0a.tar.xz /gnu/store/hcz0f4wkdbsvsdky3c0vdvcawhdkyldb-mpfr-3.1.5.tar.xz /gnu/store/y9akh452n3p4w2v631nj0injx7y0d68x-mpc-1.0.3.tar.gz /gnu/store/6g5c35q8avfnzs3v14dzl54cmrvddjm2-glibc-2.25.tar.xz /gnu/store/p9k48dk3dvvk7gads7fk30xc2pxsd66z-hwloc-1.11.8.tar.bz2 /gnu/store/cry9lqidwfrfmgl0x389cs3syr15p13q-gcc-5.4.0.tar.xz /gnu/store/7ak0v3rzpqm2c5q1mp3v7cj0rxz0qakf-libfabric-1.4.1.tar.bz2 /gnu/store/vh8syjrsilnbfcf582qhmvpg1v3rampf-rdma-core-14.tar.gz …
(Si vous vous posez la question, c’est plus de 320 Mio de code source compressé)
Nous pouvons ensuite créer une grosse archive contenant tout cela (voir Invoquer guix archive dans le manuel de référence de GNU Guix) :
$ guix archive --export \ `guix build --sources=transitive openmpi` \ > openmpi-source-code.nar
… et nous pouvons enfin transférer cette archive vers la grappe avec une clé usb et la déballer :
$ guix archive --import < openmpi-source-code.nar
Ce processus doit être répété chaque fois qu’un nouveau code source doit être apporté à la grappe.
Au moment d’écrire ces lignes, les instituts de recherche qui participent à Guix-HPC n’ont pas de grappe déconnectées. Si vous avez de l’expérience avec ce genre de configuration, nous aimerions entendre vos retours et vos suggestions.
Suivant: Utilisation du disque, Précédent: Mettre en place des nœuds de calcul, Monter: Installer Guix sur une grappe de calcul [Table des matières][Index]