Voici l’automne, saison où les feuilles tombent mais les conférences et les réunions en tous genres fleurissent. Cette réunion développeurs a donc principalement eu pour but de centraliser les retours des réunions où ses différents membres s’étaient rendus.
GENCI
Contexte
David s’est rendu à la réunion du GENCI (Grand Équipement National de Calcul Intensif), organisme dont le principal rôle est de centraliser la direction des ressources de calcul intensif pour la recherche publique en France. On peut le voir comme l’antenne française de l’organisation européenne PRACE (PaRtnership for Advanced Computing in Europe).
La réunion se déroulait au grand amphithéâtre du CNRS Michel-Ange. L’ambiance était bonne, avec beaucoup de tables rondes. Bien que le public d’une réunion GENCI soit à la base plutôt décisionnaire, des utilisateurs étaient présents pour expliquer leurs besoins, et étaient écoutés.
Moyens et évolution de GENCI
Les ressources de calcul de GENCI sont majoritairement concentrées dans 3 grands centres nationaux, chacun ayant une certaine « couleur » administrative bien qu’étant utilisé par tous les acteurs académiques:
- Le CINES (Centre Informatique National de l’Enseignement Supérieur), à Montpellier, est plutôt porté par les universités.
- L’IDRIS (Institut du Développement et des Ressources en Informatique Scientifique), en haut du campus de Paris-Sud, est plutôt porté par le CNRS.
- Le TGCC (Très Grand Centre de calcul du CEA), à Bruyères-le-Châtel, est plutôt porté par le CEA.
Depuis quelques années, GENCI tente également d’intégrer davantage à sa stratégie des centres de calcul régionaux de plus petites tailles, dits « mésocentres », comme par exemple le centre de calcul ROMEO de Champagne-Ardenne. Ils utilisent pour cela une organisation hiérarchique avec une terminologie à base de « Tiers », similaire à celle du monde des grilles.
Une autre évolution est que GENCI tentent de s’adapter davantage aux utilisateurs ayant des besoins en stockage de long terme. Ce n’est historiquement pas une spécialité des supercalculateurs, normalement on crée des comptes utilisateurs le temps d’un projet de court terme, on le détruit à la fin, et toutes les données sont alors jetées. Mais ce changement de stratégie est nécessaire pour intégrer la problématique « big data », ce que le GENCI essaie de faire sous la terminologie de HPDA (High Performance Data Analytics).
Le calcul intensif et les grilles
Historiquement, les communautés du calcul intensif et des grilles de calcul ont régulièrement été en compétition. Une partie de la raison est que leurs besoins et leur organisation sont assez différents, même si ils tendent à se rapprocher depuis quelques années.
Voici quelques points de comparaison entre les deux approches (désolé pour le piètre rendu visuel, j’ai fait ce que j’ai pu côté HTML mais le CSS du blog développeurs semble avoir sa propre idée très précise de l’apparence qu’une table devrait avoir):
Calcul intensif | Griles de calcul |
Un petit nombre de supercalculateurs centralisés, chacun regroupant des ressources de calcul immenses. L’utilisateur cible un d’entre eux en particulier. | De nombreux sites accessibles par une infrastructure logicielle (à peu près) unifiée. L’utilisateur ne choisit pas précisément où son code va s’exécuter. |
Le matériel d’un centre a un cycle de vie bien défini, et est renouvelé intégralement à intervalle régulier. Le parc informatique de chaque centre est très homogène. | Il n’y a pas de politique forte de renouvellement, le matériel fourni par certains sites est très ancien à l’échelle de l’histoire de l’informatique. |
On attend des utilisateurs qu’ils tirent le maximum de la machine, quitte à passer beaucoup de temps en portage de code. Les centres fournissent de la main d’oeuvre spécialisée pour aider. | La principale qualité d’un code ciblant une grille est de fonctionner sans modification sur un très large éventail de systèmes cible. Cette forme de portabilité est plus importante que la performance. |
Pour des raisons de performance et de contrôle, on tente d’éliminer autant de couches que possible entre le calcul et la machine. | Pour des raisons de portabilité, il existe un fort intérêt pour les couches d’abstraction comme les machines virtuelles et conteneurs. |
Les ressources de calcul sont obtenues par le biais d’appels à projets, convenant d’un nombre d’heures de calcul bien défini. | Les sites s’engagent à fournir à la grille de calcul un certain nombre de ressources, en flux continu. On renégocie juste périodiquement le quota de ressources annuel. |
Les utilisateurs français tendent à se focaliser sur les ressources de calcul françaises, au grand dam de GENCI car les centres de calcul européens réservent une partie de leurs heures de calcul pour d’autres pays. | Encore une fois, les utilisateurs de la grille n’ont généralement même pas une connaissance précise du lieu où leur code s’exécute. Ils peuvent fixer des contraintes sur la machine cible, mais ce faisant ils réduisent la quantité de ressources accessibles. |
Séminaire Verrou
Dans le cadre des séminaires « Demandez le programme » de l’INRIA Saclay, François Févotte, ingénieur de recherche chez EDF, a présenté l’outil Verrou. Cet outil permet d’étudier la stabilité numérique des codes de calcul scientifiques, c’est à dire la sensibilité de leurs résultats aux fluctuations des données d’entrée ou de sortie.
Une telle analyse a plusieurs intérêts:
- Elle permet d’évaluer à quel point le résultat d’un calcul est significatif, et de comprendre et améliorer sa précision.
- Elle peut révéler des bugs ou des problèmes de performance liés à une mauvaise utilisation des nombres à virgule flottante (ex: critère de convergence en-dessous de la précision du calcul)
- Elle peut aussi être utilisée pour guider l’évolution d’un code de calcul vers une précision réduite ou hybride afin d’augmenter ses performances. Souvent, un scientifique utilise en effet la double précision par défaut, par sécurité face à son inexpérience.
La méthode mathématique généralement utilisée pour de telles études de stabilité, appelé CESTAC, consiste à introduire des erreurs d’arrondi aléatoires dans les calculs (correspondant à un bruit sur le dernier bit du nombre calculé) et à évaluer l’impact de ces erreurs sur le résultat du calcul.
Il y a plusieurs manières d’introduire de telles erreurs. La méthode historique, utilisée par l’outil CADNA, est malheureusement très intrusive: on doit remplacer tous les nombres flottants dans le code par un type de données spécialisé. C’est en pratique très laborieux, surtout sur des programmes ayant des dépendances nombreuses. Verrou résout ce problème en utilisant l’émulateur Valgrind pour instrumenter à la volée un binaire non modifié. C’est un gain de temps énorme, pour un prix à payer finalement assez faible:
- Moindre portabilité entre systèmes (Linux x86 seulement)
- Localisation plus grossière des problèmes (le compilateur a éliminé une partie de l’information sur la position des calculs)
L’outil est open-source, EDF l’a mis sur Github. François Touze a mentionné qu’il pourrait intéresser aussi la communauté de la chromodynamique quantique (QCD), qui manipule souvent des matrices presque non inversibles où la moindre erreur dans l’algorithme de calcul peut être fatale pour la qualité du résultat.
ICALEPS et sécurité info
Philippe était à ICALEPS, à Barcelone. C’est essentiellement une conférence de contrôle-commande centrée sur les deux frameworks ennemis TANGO et EPICS, mais cette année, on y trouvait aussi un workshop très intéressant sur la cyber-sécurité.
Un thème récurrent était les nouvelles menaces liées aux nouvelles pratiques de gestion des données des entreprises, où on tend de plus en plus à remplir des disques dur par défaut sans réfléchir aux conséquences légales et techniques de cette accumulation.
En passant, un mot sur l’attaque KRACK. Pour résumer, une faille de sécurité a été trouvée dans le protocole cryptographique d’échange de clé du système de chiffrement WPA2 des réseaux Wi-Fi. La conséquence est qu’un utilisateur ne disposant pas du mot de passe peut lire et écrire le trafic réseau chiffré comme si il avait rejoint le réseau normalement. La faille se situant au niveau du protocole WPA lui-même, toutes les implémentations actuelles sont vulnérables, et le problème ne sera pas facilement soluble par un simple patch. Il faut donc dorénavant considérer que les réseaux WPA2 sont aussi sûrs (confidentiels et intègres) que des réseaux publics non chiffrés pour un attaquant expérimenté. Il ne faut donc pas utiliser sur ces réseaux des protocoles réseau « en clair » ne fournissant pas leur propre mécanisme de chiffrement et d’authentification.
Une autre menace grandissante est celle des périphériques malveillants. A ce sujet, on peut facilement laisser son esprit être emporté par une fascination perverse pour l’élégance technologiques d’attaques sophistiquées, comme celles basées sur des logiciels malveillants ou sur le siphonnage du contenu de la RAM d’un ordinateur par un périphérique (auxquels les Macs ont été sujets avec le Firewire, puis à nouveau avec le Thunderbolt, prouvant que les fabricants de matériel ne savent pas tirer les leçons de l’histoire en termes de sécurité). Mais il faut aussi garder les pieds sur terre et se rappeler que le danger peut aussi provenir d’attaques beaucoup plus « bas niveau ». Ainsi, les sinistres « USB killers » ne sont autres que des batteries de condensateurs qui, à la manière d’un flash d’appareil photo, se chargent avec la petite alimentation 5V d’un port USB pour finalement frire la carte mère de l’ordinateur victime avec une impulsion de plusieurs centaines de volts. Quand on en arrive à ce niveau de bassesse, on en finit par se dire que tout accès physique aux ports d’une machine est une vulnérabilité en soi.
Se pose alors la question la plus importante: quelle alternative pratique et efficace aux clés USB peut-on fournir aux utilisateurs d’installations partagées comme les synchrotrons pour transférer leurs données scientifiques d’un ordinateur à un autre?
Une autre faille courante, au niveau utilisateur, c’est la réutilisation de mots de passe. Pour rappel, le problème avec cette pratique, c’est qu’elle augmente la quantité de dégâts provoqués par une brèche de sécurité. Ainsi, quand la base de données de mots de passe d’un site web fuite, tous les autres sites web pour lesquels on utilise le même mot de passe sont potentiellement aussi vulnérables. Un outil pratique quand on arrive après la bataille est le site « Have I been pwned », qui permet de savoir si un site populaire où l’on possède un compte a fuité des mots de passe récemment. Un autre outil plus ambivalent est le gestionnaire de mots de passe. Ce dernier facilite grandement la tâche d’avoir un mot de passe différent pour chaque service auquel on se connecte, par contre lorsqu’une faille de sécurité est trouvée dans le gestionnaire de mots de passe lui-même, les conséquences sont potentiellement dramatiques.
Comme sources d’informations sur la sécurité informatique, on peut mentionner pour les plus braves les listes de diffusion CERT, qui recensent les failles de sécurité découvertes dans des logiciels couramment utilisés. Mais leur débit conséquent et leur contenu très technique en découragera plus d’un. Comme alternative un peu plus agréable à lire et vulgarisée, le blog Naked Security de l’entreprise Sophos est une source très sympathique. Au niveau formation, on peut mentionner de nouveau que l’ANSSI (Agence Nationale de la Sécurité des Systèmes d’Information) a ouvert cette année un MOOC sur la sécurité de l’information appelé SecNum académie.
Autres sujets en vrac
Nous aurions bien aimé avoir aussi des retours de XLDB et SUCCES, mais malheureusement, aucun des développeurs qui s’y étaient rendus n’était présents ce jour là.
Philippe voulait savoir si des gens dans le service souhaitent encore jeter un oeil à l’abonnement en ligne à LinuxMag dont il nous avait parlé précédemment par mail, ou si ce n’est pas nécessaire de faire attendre l’éditeur plus longtemps et on peut déjà lui répondre.
L’école de programmation fonctionnelle et de Spark organisée par Christian n’est pas passée inaperçue. Ça a été l’occasion pour Hadrien de rappeler que ce style de programmation a d’autres applications que le calcul. Ainsi, des langages comme Elm proposent un modèle fonctionnel pour la conception d’interfaces Web, tandis que du côté serveur l’API multi-langages ReactiveX fournit une approche très ergonomique et performante de la programmation par flux de données grâce à des mécanismes d’inspiration fonctionnelle.
Pour débuter avec ce modèle, le mieux est sans doute d’apprendre un langage pensé pour la programmation fonctionnelle à la base. On peut ainsi trouver des formations d’OCaml via l’INRIA et sur la plate-forme de MOOCs France Université Numérique, et des formations Scala sur la plate-forme de MOOCs Coursera.