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
Dans le document
Calcul hautes performances pour les formulations intégrales en électromagnétisme basses fréquences
(Page 59-64)