Evénement Intel

Antoine et David Chamont se sont rendu à la conférence Intel du 12 octobre sur la modernisation de code HPC[1], dont les transparents sont actuellement disponibles ici, et ont essayé de nous en faire un petit compte rendu.

Matériel

On ne peut pas aller à un événement organisé par un constructeur de matériel informatique, fût-il orienté développement logiciel, sans avoir droit à une petite page de publicité sur ledit matériel. Comme sujets abordés, il y a eu...

Nous n'avons pas trop discuté de KNL, qui est une nouvelle tentative d'Intel d'offrir un produit de performance comparable aux GPGPUs[2] avec des arguments un peu plus convaincants que la première fois (mémoire locale rapide, absence d'offloading...).

Concernant 3D-XPoint, le produit a initialement été dévelopé dans l'optique produire une mémoire non-volatile de performances comparables à la DRAM, mais s'est finalement réorienté vers une plus modeste concurrence à la mémoire flash après que ses objectifs de performance aient dû être grandement revus à la baisse. Intel annoncent maintenant une latence 10x plus faible que la latence de la mémoire flash actuelle, une endurance en écriture 3x plus grande et des vitesses 3-4x plus rapides. Il reste cependant à voir si, d'ici la sortie du produit actuellement prévue pour 2017, ces chiffres resteront aussi impressionnants...

Il y a eu quelques discussions sur les difficultés que représenterait le remplacement d'une mémoire vive volatile par une mémoire non-volatile: nécessité de revoir en profondeur l'optimisation de performances des OSs[3], difficulté accrue de conserver les informations confidentielles en sécurité, risque accru de problèmes non solubles par un redémarrage de la machine...

Distribution Python Intel

Intel ont aussi présenté une distribution Python fortement optimisée pour leurs processeurs, par une refonte en profondeur des points chauds du code, et par l'intégration des bibliothèques Intel pour la résolution de problèmes mathématiques classiques (MKL[4]) et le parallélisme multi-coeur (TBB[5]).

Cette distribution est conçue pour avoir une interface compatible avec l'environnement Python usuel (Interpréteur CPython, NumPy, Matplotlib, etc). Elle peut dont être utilisée à la place de l'implémentation Python officielle de façon transparente. Le prix à payer est qu'on conserve aussi les défauts de l'implémentation Python officielle. Ainsi, le code Python ne peut pas tourner de façon parallèle avec des threads, seules les bibliothèques externes peuvent en utiliser en interne.

Parallèlement à cela, Intel ont aussi amélioré le support du Python dans leurs outils d'analyse de performance, comme le profileur VTune. L'idée générale étant de mieux supporter cet environnement, récemment devenu populaire dans la communauté scientifique.

Antoine et David ont rapidement testé l'installation de cette distribution lors d'un café LoOPS, mais ne sont actuellemnt pas allés assez loin pour en tirer des conclusions claires.

Démonstrations d'optimisation

Il y a eu quelques belles démonstrations d'optimisation par François Fayard, un consultant en calcul numérique et mathématiques appliquées.

Ayant manifestement une sensibilité plus scientifique et moins commerciale que les autres orateurs, il a présenté le processus d'optimisation de deux codes, l'un parlant d'intégration par méthode de Newton et l'autre parlant de classification.

Parmi les points d'optimisation abordés, quelques sujets classiques:

Nous avons eu quelques discussions sur les entiers non signés. En gros, le problème est que leur sémantique en cas de débordement (retour à zéro) est très précise, ce qui empêche les compilateurs d'effectuer un certain nombre d'optimisations comme du réordonnancement d'opérations.

Réunion ORAP "High Performance Data Analytics (HPDA)"

David s'est rendu à une réunion de ORAP (ORganisation Associative du Parallélisme), groupe réunissant les grands acteurs du calcul intensif en France. Le sujet principal de cette réunion était la montée en puissance du Big Data, qui inquiète un peu ce milieu.

Pour faire simple, le problème est que l'Etat et l'UE n'ont aucune envie de fournir des financements séparés à deux activités qui semblent très similaires, et désire un regroupement de ces deux activités. Mais en pratique, il n'est pas si simple de mettre en commun deux communautés (supercalculateurs et statistiques) qui ont historiquement eu des pratiques très différentes. Chacun se demande également si il ne serait pas possible de phagocyter l'autre... actuellement, la situation politique demeure donc très mouvante.

Une idée qui semble être bien acceptée est de regrouper les problématiques de calcul intensif et de stockage durable de données, qui ont historiquement été beaucoup séparées. Le GENCI approuve cette idée sur le papier, mais demande que soient mis en oeuvre les moyens financiers nécessaires. A la tête de ce dernier, on trouve Philippe Lavocat, un ancien directeur technique de l'IN2P3. Apparemment, le CCIN2P3[6] serait passé de mésocentre à centre de calcul national du GENCI...

Parmi les autres sujets abordés, on trouve en vrac:

Autres sujets évoqués

Antoine aurait voulu se rendre au OVH Summit, la grand-messe annuelle du célèbre hébergeur, mais n'a finalement pas pu. Il nous a dit que l'ouverture de cette conférence aurait été faite par un ministre souhaitant célébrer cette réussite française.

Oleg a contesté les chiffres présentés aux JI selon lesquelles les radiateurs calculateurs disponibles aujourd'hui ne seraient pas pertinents d'un point de vue économique. Il a notamment évoqué deux entreprises qui lui semblaient intéressantes:

Par ailleurs, Microsoft ont libéré le source de l'implémentation du langage P, un langage de programmation spécialisé dans l'écriture de programmes asynchrones pilotés par des événements. Ce langage a notamment été utilisé pour implémenter la pile USB de Windows 8.

Glossaire et acronymes

  1. High Performance Computing, ou calcul hautes performances. Expression couramment utilisée pour désigner le calcul sur supercalculateurs.
  2. General Purpose Graphic Processing Units. Terme désignant les générations récentes de cartes graphiques, dont l'architecture plus programmable est plus facilement utilisable pour des applications non graphiques comme le calcul scientifique.
  3. Operating Systems, ou systèmes d'exploitation.
  4. Intel Math Kernel Libray.
  5. Intel Threading Building Blocks.
  6. Centre de calcul de l'IN2P3, à Lyon.
  7. Field Programmable Gate Array. Un très grand circuit électronique configurable pour une application précise. Moins simple à programmer qu'un CPU ou un GPU, mais plus simple et moins coûteux que de développer un circuit électronique dédié.