n°28
Juillet
2014
HEP Software Collaboration

Les expériences HEP, dont celles du LHC après les upgrades prévus, vont faire face à une masse de données sans précédent (à la fin de la décennie, facteur 10 par rapport au volume produit actuellement) dont l’analyse représente un challenge pour l’informatique de ces expériences. Un challenge technique d’abord car il est devenu de plus en plus difficile pour les logiciels existants d’utiliser efficacement les machines modernes dont la puissance repose sur un fort parallélisme interne (nombre de cœurs, instructions vectorielles). Mais aussi un challenge financier car, dans la situation budgétaire contrainte partout dans le monde, les expériences LHC peuvent espérer un budget pour l’achat de ressources informatiques au mieux stable, ce qui permet d’espérer une augmentation de la puissance installée correspondant au mieux à la loi de Moore. Sur la base des prévisions actuelles, les expériences LHC estiment qu’il faudra améliorer la performance des logiciels d’un facteur 10 en 10 ans pour espérer analyser les données avec les ressources qui seront disponibles. Pour les autres expériences de la discipline qui verront le jour, la contrainte sera vraisemblablement similaire.

Pour faire face à ce défi, le CERN a pris l’initiative de créer un “Concurrency Forum” il y a deux ans avec des experts des différentes expériences pour mener une R&D sur les voies technologies possibles. Plusieurs ont été explorées et aucune ne suffira à elle seule. Mais une conclusion s’est imposée : HEP n’échappera pas un reengineering majeur de son « patrimoine logiciel ».

D’un autre côté, HEP n’est pas seul à faire face au défi du déluge de données : c’est sans doute le grand changement de la dernière décennie. Cela ne signifie pas que des solutions toutes faites, prêtes à l’emploi, existeraient et qu’il suffirait de les importer. La physique HEP conserve des caractéristiques particulières qui rendent une grande partie des problèmes fondamentalement séquentiels, ce qui constitue un handicap pour exploiter des architectures de processeurs de plus en plus parallèles ! Cependant, l’expertise autour des approches BigData et de la parallélisation est présente dans d’autres communautés scientifiques et au-delà dans des sociétés privées comme les « géants » de l’Internet (Google, Facebook…). HEP a donc tout à gagner à établir des collaborations avec ces autres communautés ayant développé un savoir-faire sur ces technologies.

C’est à partir de ce constat qu’a germé l’idée de créer une « HEP Software Collaboration » qui aiderait à organiser les synergies entre les différents projets logiciels de la communauté HEP pour éviter les duplications coûteuses et faire émerger les composants communs spécifiques à la communauté. Il s’agit bien d’une initiative à l’échelle de HEP et non pas du CERN, puisqu’une bonne partie de ce patrimoine logiciel est commun à l’ensemble de la communauté (GEANT4 et ROOT par exemple, pour ne citer qu’eux). Cette collaboration fournirait aussi un cadre pour établir des relations plus formelles avec d’autres communautés et pour constituer les « consortiums » adhoc à même de postuler à des demandes de financement dans les programmes de type H2020 ou équivalent dans d’autres pays/continents, programmes où l’aspect large communauté est souvent important.

Le premier acte du processus de création de cette communauté s’est déroulé début avril au CERN, sous la forme d’un « kick-off meeting » qui a réuni environ 150 personnes, principalement mais pas uniquement de la communauté. Ce fut l’occasion de nombreuses présentations (voir agenda) et de discussions assez animées ! Il a été en particulier rappelé par beaucoup d’intervenants que les logiciels phares de la communauté (ROOT en est l’exemple le plus significatif sans doute) ne sont pas nés d’une décision du management mais au contraire de la volonté de répondre à un besoin non pris en compte par les « décideurs » de la communauté, souvent contre la volonté des décideurs. De ce constat et du challenge que nous avons devant nous, a émergé le principal élément de consensus : une éventuelle collaboration doit favoriser l’émergence de solutions novatrices, même si leur intérêt ne semble pas évident au prime abord. Elle doit donc reposer sur une approche très bottom-up et agile, où tout projet a le droit d’exister et bénéficie à la fois d’une infrastructure de développement et d’une certaine publicité au sein de la communauté (sur le mode des incubateurs de certaines fondations comme Apache ou Eclipse). Elle doit aussi permettre que s’exerce un « darwinisme » qui fera que certains projets se développeront quand d’autres finiront par disparaitre. Et les discussions sur la gouvernance de cette collaboration ont fait ressortir le souhait d’une structure légère, dont les projets, qui conserveraient leur autonomie, seraient les acteurs principaux.

Depuis le kick-off meeting, nous sommes entrés dans une phase d’appel à contributions (« white papers ») exprimant les contours souhaités de la collaboration, ses buts, ses modalités qui se terminera à la fin du printemps. Ces contributions peuvent être soient individuelles, soit plus institutionnelles. Nous sommes quelques français de la région parisienne à avoir pris l’initiative d’une contribution disponible sur ce site.

La suite n’est pas encore très claire mais a priori, il va s’agir à partir de ces contributions initiales de définir le consensus autour duquel peut se construire cette fondation et d’en jeter les bases pratiques. Cela passera sans doute par d’autres réunions, peut-être plus restreintes, et prendra probablement encore quelques mois. Je pense qu’il s’agit néanmoins d’une dynamique importante qui permettrait de sortir de deux écueils rencontrés par le développement logiciel dans HEP : le poids du CERN qui a en plusieurs occasions été peu réceptif aux idées novatrices dans la communauté et la forte fragmentation du développement logiciel qui conduit à une assez forte duplication de code qui pourrait bénéficier de packages communs utilisés par des logiciels plus modulaires.

Cette initiative est ouverte à tous ceux qui sont intéressés. Le vecteur de communication principal est une liste de discussion, HEP-Software-Interest@cern.ch. N’hésitez pas à vous inscrire ici, onglet "Members", lien "Add Me", en obtenant auparavant un "light weight account" ici, pour les personnes n’ayant pas de compte CERN.

Michel JOUVIN (LAL)