19.06.03
Séminaire de J.-F. Méhaut (Université Joseph Fourrier, IMAG, Grenoble)
" Programmation Mono/Multi/Hyper-Threadée "
Résumé:
Ces dernières années, les threads (Processus légers) sont devenus des
éléments incontournables des systèmes d'exploitation. Les concepteurs et
implémenteurs de systèmes d'exploitation ont rapidement été attirés par
les processus légers, en particulier pour tirer pleinement bénéfice du
potentiel des architectures multiprocesseurs à mémoire partagée. Ils
constituent de plus une solution élégante et efficace au fameux problème
de recouvrement des entrées-sorties qui constituait un des obstacles
notables pour les serveurs. La plupart des systèmes d'exploitation du
marché proposent aujourd'hui des implémentations et des interfaces plus ou
moins sophistiquées des processus légers. Le standard reconnu est
aujourd'hui POSIX Threads. Dans le domaine du calcul à haute performance
et du parallélisme, les processus légers sont aussi apparus comme étant
une entité d'abstraction et d'exécution adaptée pour les supports
exécutifs et les langages parallèles. Dans ce cadre, OpenMP devient la
référence. Au cours de cet exposé, nous aborderons quelques uns des
problèmes posés par le passage d'un programme séquentiel
(monothreadé) à
un programme parallèle multithreadé.
Le multithreading est encore appelé à jouer un rôle de plus en plus
crucial dans l'exploitation des architectures de demain. En effet,
une des tendances actuelles en matière d'architecture de processeurs
est d'offrir un support matériel pour le multithreading. On peut citer
par exemple le processeur de la machine TERA qui est équipé de 128
jeux de registres destinés à conserver simultanément le contexte
d'exécution de plusieurs threads. Le principe général est de maximiser
le remplissage du pipeline d'un processeur grâce aux différents
threads "prêts" à chaque instant (un changement de contexte entre
deux threads s'effectue en un cycle). Une extension de cette technique
aux processeurs super-scalaires, appelée HyperThreading ou Simultaneous
Multithreading, commence à apparaître au niveau des processeurs Intel
(donc des PC).
La disponibilité de telles technologies au sein des processeurs pose
d'intéressants problèmes de recherche en ce qui concerne la projection
des threads (logiciels) de l'application sur les threads câblés dans
le matériel. Ce qu'il faut surtout retenir ici c'est que, pour
atteindre leur rendement optimal, de tels processeurs nécessitent que
les programmes soient intrinsèquement multithreads et que des
conflits d'accès aux ressources peuvent se poser dans le cas de
programmes HyperThreadés.
16.06.03
Séminaire de D.Goudin (CEA/CESTA de Bordeaux)
"Emilio:une bibliotheque parallele hautes performances de resolution
de grands systemes lineaires creux par methode directe"
Résumé:
Le CEA/DAM vient d'acquérir le plus puissant supercalculateur
d'Europe pour son programme simulation et pour ses besoins en
calcul scientifique. Les tailles de problèmes visées sont de l'ordre de
plusieurs millions d'inconnues en creux et de centaines de milliers
en plein. Ces résolutions sont realisées par méthode directe
(Factorisation Crout-Cholesky) pour des raisons de précision numérique et
sont effectuées uniquement de manière parallèle à cause
des tailles de problèmes. EMILIO est une bibliothèque
développée en collaboration entre le LaBRI et le CEA/CESTA pour
résoudre ces problèmes.
Nous présenterons EMILIO et un ensemble de cas tests représentatifs
et sur un grand nombre de processeurs.