Suivant: , Précédent: , Monter: Installer Guix sur une grappe de calcul   [Table des matières][Index]


9.3 Accès réseau

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]