Étude comparative de langages pour la programmation multi-coeurs
Introduction
Avec l'apparition des processeurs multi-coeurs et l'accroissement
prévu du nombre de coeurs dans les futurs processeurs, l'informatique
parallèle entre dans l'informatique de grande diffusion. Or programmer
efficacement ce genre de matériel nécessite des compétences
rares. C'est ainsi qu'Intel par des articles tels
que Think
Parallel or Perish
et The New Era of Tera-Scale Computing, encourage aux développement
des compétences qui sont celles que l'on trouve actuellement
essentiellement dans le domaine du calcul scientifique et de la
simulation.
Il y a également une activité forte autour de la conception de
nouveaux langages de programmation, bibliothèques et annotations pour
le parallélisme, tels
que
Fortress,
Cilk++,
SaC,
Chapel,
CnC,
TBB,
Manticore,
OpenMP,
MPI,
FlowVR,
des extensions aux PThreads,
etc.
Le stage
Le stage consistera dans un premier temps à établir un état de
l'art les nouveaux langages de programmation pour les multicoeur et à
établir une méthodologie pour leur comparaison.
Dans un second temps, une comparaison des différentes approches
incluant des comparaisons de performances de plusieurs applications à
définir et à programmer avec ces différents outils, puis à
expérimenter sur diverses machines parallèles.
Organisation
Références
-
Eric Allen,
David Chase,
Joe Hallett,
Victor Luchangco,
Jan-Willem Maessen,
Sukyoung Ryu,
Guy L. Steele Jr. and
Sam Tobin-Hochstadt,
The
Fortress Language Specification, version 1.0, Sun Microsystems,
March 2008
- M. Frigo, C. E. Leiserson, K. H. Randall, The implementation of
the Cilk-5 multithreaded language, in Proceedings of the
Conference on Programming Language Design and Implementation
(PLDI'98), pages 212-223, ACM Press, 1998
-
Z. Budimlic, A M. Chandramowlishwaran, K. Knobe, G. N. Lowney,
V. Sarkar, L. Treggiari, Declarative aspects of memory
management in the concurrent collections parallel programming
model, in Proceedings of the 4th workshop on Declarative
aspects of multicore programming, pages 47-58, ACM Press, 2009
-
C. Grelck, S.-B. Scholz, SAC: off-the-shelf support for
data-parallelism on multicores, in Proceedings of the 2007
workshop on Declarative aspects of multicore programming, pages
25-33, ACM Press, 2007
-
M. Fluet, M. Rainey, J. Reppy, A. Shaw, Y. Xiao, Manticore: a
heterogeneous parallel language, in Proceedings of the 2007
workshop on Declarative aspects of multicore programming, pages
37-44, ACM Press, 2007
-
B. L. Chamberlain, D. Callahan, H. P. Zima, Parallel
Programmability and the Chapel Language, International
Journal of High Performance Computing Applications, 21(3):
291-312, 2007
-
J. Reinders, Intel Threading Building Blocks: Outfitting C++
for Multi-core Processor Parallelism, O'Reilly, 2007
-
Chapman, B. and Jost, G. and van Der Pas, R.,
Using OpenMP, MIT Press, 2008