PROJET CAPS Compilation, Architecture, Parallélisme et Système
2 CAPS: Qui sommes nous ? 5 chercheurs/professeurs, 1 ingénieur expert, 10 doctorants trois activités imbriquées: –architectures hautes-performances –techniques d’optimisation de code, outils et environnements de programmation –systèmes pour architectures hautes-performances
3 Comprendre les architectures hautes performances depuis 1991, veille technologique : –évaluation détaillée des microprocesseurs –indépendante des constructeurs –diffusée dans les milieux académiques et industriels –sept rapports existent
4 Proposer les nouvelles architectures «skewed associative caches» «decoupled sectored caches» techniques de prédiction de branchement Simultaneous Multithreading
5 Evaluer les nouvelles architectures Simulation fine: cycle par cycle Analyse des performances Tracer les applications
6 Comment optimiser les applications exploiter les hiérarchies mémoire exploiter le parallélisme d’instructions transformer le code source transformer le code assembleur comprendre les interactions entre code haut et bas niveau
7 Les outils logiciels La nécessité d’expérimenter ! Des systèmes prototypes: –TSF : aide au portage des programmes Fortran orienté performance –MENHIR: Compilation de Matlab –CT++: bibliothèque C++ pour le traitement d’image –SALTO: manipulation de langage assembleur
8 SALTO: Sytem for Assembly-Language Transformations and Optimizations analyse syntaxique de codes assembleurs –description fine de la machine cible –interface orienté objets pour l’écriture d’applications cibles décrites par : le jeux d’instructions, format assembleur utilisation des ressources du processeur pour chaque instruction, etc. permet : –l’instrumentation ou la transformation de code assembleur, –la mise en oeuvre de techniques d’ordonnancement, –la mise en oeuvre d’allocations de registres, etc. existe pour Sparc, Alpha, Mips, Tri-Media, TMSC62X, Pentium
9 Et le système ? offrir une haute performance sur les architectures parallèles –mémoire virtuelle partagée –échange de message: bas-niveau et haut-niveau réalisation de prototypes systèmes –intégration dans des environnements –évaluation avec des applications nécessitant la haute- performance (calcul scientifique + multimédia)
10 Plate-forme d’expérimentation EDU SCI Switch Box Service nodes SCI ring (200 MB/s) Ethernet Switch 100 Mb/s Compute nodes PC SMP 2 x 200 Mhz Pentium Pro 128 Mo EDO RAM 2 Go Disk PCI-SCI Card mémoire virtuelle partagée –conception d’une MVP pour le NEC Cenju-3 –obtenir des informations du compilateur (HPF, Fortran-S) pour piloter efficacement la MVP programmation parallèle par composants logiciels –conception d’un exécutif pour l’exécution // de composants logiciels –extension du langage IDL pour la programmation parallèle
11 Programmer les machines parallèles (1) mémoire virtuelle partagée –conception d’une MVP pour le NEC Cenju-3 –obtenir des informations du compilateur (HPF, Fortran-S) pour piloter efficacement la MVP programmation parallèle par composants logiciels –conception d’un exécutif pour l’exécution // de composants logiciels –extension du langage IDL pour la programmation parallèle
12 Programmer les machines parallèles (2) génération/exécution de code distribué sur Cluster de stations de travail –Projet Do!: Exécution parallèle et distribuée de Java –meçanismes de communication et gestion de threads pour Java exécutif pour OpenMP
13 Les stages !! Stratégie d’optimisation de code dans TSF Simulation d’un processeur exécutant dans le désordre Etude du couplage de codes de calcul scientifique sur Cluster de PCs Contrôle d’un système de mémoire partagée pour l’exécution de programmes HPF Exécutif pour OpenMP sur cluster de stations de travail Mécanismes de gestion de threads entre plusieurs machines virtuelles Java
14 Contact: André Seznec, Francois Bodin, Thierry Priol, Yvon Jégou, Jean-Louis Pazat Bat E 205