1 / 22

Calcul intensif

Calcul intensif. Jean-Pierre Gallou Centre Interuniversitaire de Calcul de Toulouse Stage de formation au calcul parallèle dans le domaine scientifique. Programme. Introduction Programme Puissance Puissance (2) Calcul vectoriel Calcul // Calcul // (2) Calcul // (3) Types de //isme

emory
Download Presentation

Calcul intensif

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Calcul intensif Jean-Pierre Gallou Centre Interuniversitaire de Calcul de Toulouse Stage de formation au calcul parallèle dans le domaine scientifique

  2. Programme • Introduction • Programme • Puissance • Puissance (2) • Calcul vectoriel • Calcul // • Calcul // (2) • Calcul // (3) • Types de //isme • Types de //isme: SIMD

  3. Programme (suite) • Types de //isme: MIMD • MIMD Mémoire partagée (SMP) • MIMD Mémoire partagée (2) • MIMD Mémoire distribuée • MIMD Mémoire distribuée (2) • MIMD Mémoire distribuée (3) • Le point de vue du programmeur • Envoi de messages • Pour obtenir plus d’informations

  4. Introduction • Cadre et rapide historique du calcul intensif • Pourquoi du calcul intensif ? • algorithmes de + en + complexes, de + en + gourmands • problèmes de + grande taille, avec une résolution + fine • Domaine scientifique, autres domaines • Considérations générales : puissance • Calcul vectoriel • Calcul //, divers types de //isme • Matériel et logiciels

  5. Puissance • Puissance théorique (celle annoncée), pratique (peut être très inférieure) • MFlops, millions d'instructions en calcul flottant par seconde, 32 ou 64 b. • Problèmes requérant une grande puissance : prévision du climat, météo, circulation océanique, dynamique des fluides, vision, simulation de phénomènes physiques complexes, etc.

  6. Puissance (2) • Nombreuses techniques : pipeline, vectorisation, chaînage, multiplication des unités fonctionnelles, accès mémoire rapides (caches), processeurs RISC,... • Puissance des calculateurs mono-processeurs limitée • Parallélisme par obligation

  7. Calcul vectoriel • Idée : concevoir des UC agissant sur des vecteurs (tableaux linéaires de nombres) et non sur des scalaires • Programmation dans langage standard, vectorisation automatique (boucle DO <--> op. vectorielle) • op. vectorielle élimine test, boucle, … • Type : CRAY

  8. Calcul // • Idée : utiliser plusieurs UC, éventuellement en grand nombre • Grosses difficultés : • nombreux codes séquentiels, inadaptés au calcul // • Dépendance des données (plusieurs types) • Calcul // ==> programmes adaptés à la structure de la machine

  9. Calcul // (2) • Granularité • Rapport entre temps calcul et temps communication • Gros grains : chaque processeur peut effectuer beaucoup de calculs avant de communiquer avec les autres • Grain fin : communication fréquente

  10. Calcul // (3) • Surcharge (overhead) • Accélération (speedup) • Loi d’Amdahl • Si un code comporte des parties non parallélisables importantes, le gain est vite limité. • 10% séquentiel ==> speedup max de 10 • Extensibilité (scalability)

  11. Types de //isme • SIMD • MIMD • mémoire partagée • mémoire distribuée • SPMD équivalent à MIMD

  12. P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P Types de //isme: SIMD • Une instruction s’exécute sur n processeurs traitant chacun un élément d’un vecteur(Single Instruction, Multiple Data) • Connection machine, Maspar (DEC) • Très spécifique P

  13. Types de //isme: MIMD • Chaque processeur exécute son programme sur ses donnéesMultiple Instruction, Multiple Data • Synchronisation • Echanges de données

  14. P P P P MIMD Mémoire partagée (SMP) • Limité en nb de processeurs (16, 64) • Problèmes d’architecture et construction de la mémoire critiques • CRAY-2, Y-MP, C90, IBM ES/9000, … Mémoire Communication P

  15. MIMD Mémoire partagée (2) • Plus simple pour le programmeur : chaque programme a accès à l’ensemble des données • Réalisation logicielle : threads • Librairie C, directives fortran • Il existe des paralléliseurs automatiques de code fortran

  16. P P P P P M M M M M MIMD Mémoire distribuée • Non limité en nombre de processeurs (MPP). • Topologie de communication : hypercube, etc. • CRAY T3E, IBM SP/2 … Communication

  17. MIMD Mémoire distribuée (2) • S’adapte à des machines différentes • processeurs, standard ou non, reliés par architecture de communication spéciale • grappes (clusters) • machines distantes sur réseau • Problèmes de communication entre processeurs critiques

  18. MIMD Mémoire distribuée (3) • Moins simple pour le programmeur : programmer l’accès aux données distantes • Réalisation logicielle : message passing • Peu de progiciels, peu de librairies mathématiques. • Au niveau élémentaire : PVM, P4, MPI, Express, etc. • Problèmes non traités, à prendre en compte : répartition de charge, …

  19. Le point de vue du programmeur • Difficulté : pas de standard • plusieurs modèles de programmation (mémoire partagée ou non, répartir les données ou les traitements, ...) • // implicite • automatique (boucles DO) • OpenMP • // explicite (messages, …) • Certaines architectures bonnes pour certains problèmes • Pas de bonne solution universelle

  20. Envoi de messages • PVM, puis MPI • bibliothèques de fonctions C, Fortran77 (C++, F90) • Indépendant de la plate-forme • MPI-2 • domaine public

  21. Pour obtenir plus d’informations • news:comp.parallel, news:comp.parallel.pvm • news:comp.parallel.mpi • http://www.irisa.fr/orap/ • http://www.hensa.ac.uk/parallel/environments/pvm3/

More Related