Les ordinateurs d'aujourd'hui et de demain calculent moins rapidement que leurs aînés : ils ont en fait plus de coeurs, chacun de ces coeurs étant moins rapide (individuellement) que la génération précédente. Ce nombre croissant de coeurs appelle évidemment à plus de parallélisme dans l'industrie du logiciel en général, et dans HEP en particulier.
Si les programmes d'analyse des physiciens sont relativement facilement modifiables pour bénéficier de ce "nouveau" paradigme, les "frameworks" des expériences LHC - relativement anciens et écrits pour un seul thread d'exécution, sont plus difficilement "parallélisables".
Appliquer des modifications à grande échelle dans cette optique si près du début de la prise de données est hors de question: il faut donc définir des stratégies et des recommendations claires afin de tirer bénéfice de l'ère des multicores/manycores tout en minimisant les modifications appliquées au code.
Paralléliser un programme est habituellement implementé via a) le multithreading ou b) le multiprocessing (ou une combinaison des deux). Chacune de ces options vient avec son lot de compromis (vitesse, facilité d'implémentation, de debugging, ...)
Ce séminaire présente les différentes stratégies qui ont été investiguées par les communautés "online" et "offline" de la collaboration ATLAS, puis implémentées et intégrées dans le framework "Athena".
Enfin, un bref tour d'horizon de leurs performances sera présenté.
Informations de connexion à http://ccri.in2p3.fr/?q=node/463