• Aucun résultat trouvé

CHAPITRE I : INTRODUCTION AU CALCUL HAUTES

6.2 Tendances à venir

L’avenir des architectures CPU peut sembler sombre car il devient difficile de monter

en puissance. En effet il est difficile de graver les transistors toujours plus finement dans le

silicium. Cependant Intel annonce une évolution appelée Tri-Gate qui permet une gravure

des transistors en trois dimensions. Ce procédé permettrait des gains de performances. La

gravure sur silicium semble néanmoins condamnée à plus ou moins court terme. La relève

pourrait être assurée par des processeurs en graphène, ce semi-conducteur à base de

carbone permettrait de graver bien plus finement qu’il est possible actuellement. La

commercialisation de ces nouveaux processeurs n’est pas attendue avant 2025.

La solution actuelle à la difficulté de graver plus finement est la multiplication des

cœurs de calcul. L’Intel Many Integrated Core (MIC) représente la nouvelle stratégie

d’Intel [Intel 11a] dans le marché du HPC. Il s’agirait d’une carte PCI Express embarquant

au minimum une cinquantaine de cœurs de calcul. L’avantage de cette architecture est qu’il

ne sera pas nécessaire à priori de recompiler ses codes pour les utiliser sur cette machine.

Intel propose avec le MIC une solution intermédiaire entre le GPGPU et le multicœur. Le

niveau de parallélisation ne sera pas aussi important qu’avec le GPGPU, mais les calculs

peuvent être bien plus sophistiqués du fait de l’utilisation des génériques processeurs x86.

La sortie est prévue pour fin 2012.

Nvidia de son côté continue de faire évoluer ses architectures HPC à base de

processeurs graphiques. L’année 2012 devrait voir sortir les premiers calculateurs

construits sur la récente architecture Kepler.

7 Conclusion du chapitre

La fin des années 90 et le début des années 2000 ont été marqués par la course à la

puissance de la part des constructeurs de processeurs. Cependant il est maintenant difficile

de graver les transistors plus finement. La solution pour que les ordinateurs continuent de

monter en puissance est d’utiliser plusieurs processeurs : c’est le parallélisme. Les

algorithmes existants vont devoir être adaptés à l’utilisation de plusieurs processeurs.

Ce chapitre a présenté les différents types de parallélisme, et les différentes

architectures parallèles. La programmation dépend fortement de l’architecture parallèle

choisie. Les enjeux du calcul parallèle sont le partitionnement du problème sur les

différentes tâches, la gestion des ressources, les communications entre les tâches, les

synchronisations, et la réduction de variables. Il est nécessaire de comprendre le

comportement des programmes afin de les adapter au mieux à une architecture parallèle.

Les processeurs graphiques, de par le nombre de cœurs de calcul qu’ils embarquent,

sont devenus des calculateurs très puissants en restant peu onéreux. Leur attrait a fortement

augmenté dès le moment où ils sont devenus programmables grâce à CUDA et à OpenCL.

Les particularités de cette architecture, notamment sur la gestion de la mémoire,

nécessitent une refonte en profondeur des algorithmes qui y sont adaptés.

La suite de ce mémoire présente le portage des méthodes intégrales sur plusieurs

architectures parallèles. Tout d’abord sur processeurs multicœurs car ils sont présents dans

tous les PCs à l’heure actuelle. Ce parallélisme est simple à mettre en œuvre, en effet il

s’agit d’une architecture à mémoire partagée sans communications et synchronisations

explicites. Une expérience est également réalisée sur un petit cluster de PCs connectés en

réseau. La gestion de la mémoire, des communications et des synchronisations y est plus

sensible. Enfin, le cœur de ces travaux de thèse porte sur l’adaptation des méthodes

intégrales sur architecture GPGPU. Ici les algorithmes sont entièrement repensés pour tirer

profit de cette architecture massivement parallèle.

8 Références

[Amdahl 67] G. Amdahl, « Validity of the single processor approach to achieving

large scale computing capabilities », AFIPS spring joint computer

conference, 1967.

[Bersini 08] H. Bersini, M-P. Spinette, et R. Spinette, « Les fondements de

l'informatique: du bit à l'Internet », 2nd édition, Vuibert, 2008.

[BLAS] Documentation BLAS, http://www.netlib.org, 2012.

[BOINC] Projet BOINC : http://boinc.berkeley.edu/, 2012.

[CIMENT] Projet CIMENT : https://ciment.ujf-grenoble.fr/, 2012

[CPU World] I7 specifications, http://www.cpu-world.com/, 2012.

[Dowd 98] C. Severance, K. Dowd, « High Performance Computing », 2

nd

édition,

O’Reilly Media, 1998.

[Duncan 90] R. Duncan, « A Survev of Parallel Computer Architectures », Control

Data Corporation, fev. 1990.

[Flynn 72] M. Flynn, « Some Computer Organizations and Their Effectiveness »,

IEEE Trans. on computers vol. c-21, no. 9, sep 1972.

[Flynn 95] M. Flynn, « Computer architecture : pipelined and parallel processor

design », Hardcover, 1995.

[Golub 83] G. Golub, C. Van Loan, « Matrix-computations », North Oxford

Academic, 1983.

[Gustafson 88] J. Gustafson, « Reevaluating Amdahl’s law », Communications of the

ACM, May 1988.

[Hutter] M. Hutter, JCuda : http://www.jcuda.de/

[Intel 11a] Intel, « Intel révèle les détails de la prochaine génération de plateformes

haute-performance », communiqué de presse, nov. 2011.

[Intel 11b] Intel, « Intel® 64 and IA-32 Architectures Optimization Reference

Manual », juin 2011.

[Kish 02] L. Kish, « End of Moore's law: thermal (noise) death of integration in

micro and nano electronics », Physics Letters A, 2002.

[Kumar 94] A. Grama, G. Karypis, V. Kumar, et A. Gupta, « Introduction to Parallel

Computing », 1

ère

édition, Hardcover, 1994.

[Lezar 10] E. Lezar and D.B. Davidson, « GPU Acceleration of Method of Moments

Matrix Assembly using Rao-Wilton-Glisson Basis Functions »,

International Conference on Electronics and Information Engineering,

2010.

[LLVM] Compilateur LLVM : http://llvm.org/

[Lo 97] J. Lo, S. Eggers, J. Emer, H. Levy, R. Stamm and D. Tullsen,

« Converting Thread-Level Parallelism to Instruction-Level Parallelism

via Simultaneous Multithreading », ACM Transactions on Computer

Systems, vol. 15, vo. 3, August 1997.

[Neumann 47] A. Goldstine, H. Herman, J. Von Neumannn, « Preliminary discussion of

the logical design of an electronic computer instrument », 1946.

[Ni 90] X-H. Sun, L. Ni, « Another view on parallel speedup », Supercomputing

'90 Proceedings of the 1990 ACM/IEEE conference on Supercomputing,

1990.

[Patterson 03] J. Hennessy, D. Patterson, « Architecture des ordinateurs : une approche

quantitative », 3

ème

édition, Vuibert, 2003.

[Nvidia 12] Nvidia, « Nvidia CUBLAS Library », version 4.1, janvier 2012.

[Nvidia 11] Nvidia, « NVIDIA CUDA C Programming Guide », version 4, juin 2011.

[Nvidia 09] Nvidia, « NVIDIA’s Next Generation CUDA™ Compute Architecture:

Fermi™ », whitepaper, 2009.

[Oliveira Rodrigues 2012] A. W. de Oliveira Rodrigues, « Une méthodologie pour le

développement d’applications hautes performances sur des architectures

GPGPU : Application à la simulation des machines électriques », Thèse

de Doctorat, Université des Sciences et Technologies de Lille, France,

2012.

[Schaller 97] R. Schaller, « Moore's law: past, present and future », Spectrum, IEEE,

1997.

[TomsHardware] Ouverture du compilateur CUDA, http://www.tomshardware.com, 2011.

[Tullsen 95] D. Tullsen, S. Eggers, H. Levy, « Simultaneous multithreading:

Maximizing on-chip parallelism », Proceedings, 22nd Annual

International Symposium on Computer Architecture, pp. 392-403, 22-24

June 1995.

Chapitre II

Vectorisation d’une formulation intégrale en

potentiel pour l’électrostatique

Sommaire

1 INTRODUCTION... 65 2 GENERALITES SUR LES METHODES INTEGRALES ... 65

2.1 Introduction aux méthodes intégrales ... 65

Documents relatifs