Titre : | Calcul parallèle avec R |
Auteurs : | Vincent Miele, Auteur ; Violaine Louvet, Auteur |
Type de document : | Monographie imprimée |
Editeur : | EDP Sciences, DL 2016 |
Collection : | Collection Pratique R, ISSN 2112-8294 |
ISBN/ISSN/EAN : | 978-2-7598-2060-3 |
Format : | 1 vol. (XII-117 p.) / ill. / 24 cm |
Note générale : | Bibliogr. p. 113-114. Index |
Langues: | Français |
Index. décimale : | 004.35 (Multitraitement. Classer ici le traitement parallèle) |
Catégories : |
[Agneaux] Parallélisme (informatique) [Agneaux] R (logiciel) |
Résumé : |
L'évolution des architectures des ordinateurs, mais aussi celle des besoins relatifs au volume de données ou à la complexification des algorithmes sont un véritable défi pour les utilisateurs et développeurs R. Il faut nécessairement s'adapter au parallélisme intrinsèque des ordinateurs, et cet ouvrage a pour objectif principal d'initier ses lecteurs aux multiples facettes du calcul parallèle avec R. Le premier chapitre pose la problématique de l'efficacité des programmes et de leur optimisation en abordant en particulier les bonnes pratiques à adopter pour améliorer son code. L'architecture des ordinateurs est détaillée dans le deuxième chapitre qui permet de comprendre l'impact du matériel sur les performances des programmes et qui invite à penser "parallèle ". Les chapitres 3 et 4 sont le coeur de cet ouvrage et détaillent les outils disponibles pour programmer efficacement avec R sur une machine multi-coeurs, d'une part nativement dans le langage R et d'autre part en utilisant des fonctions C++ appelées depuis R. Enfin le dernier chapitre aborde l'exploitation de clusters de calcul au travers de R. |
Sommaire : |
1 A la recherche de performances1 1.1 L’organisation de projet........................1 1.1.1 Ne jamais optimiser prématurément .............1 1.1.2 Le processus de développement................2 1.1.3 Bonnes pratiques de développement.............3 1.2 Les différentes approches enRpour gagner en performances . . . .9 1.2.1 Apprendre à mesurer les performances temps et mémoire .9 1.2.2 Améliorer/optimiser le codeR................. 15 1.2.3 Implémenter les points chauds de calcul avec des langages compilés.......... 21 1.2.4 Utiliser plusieurs unités de calcul............... 24 2 Fondamentaux du calcul parallèle25 2.1 Évolution des ordinateurs et nécessité du calcul parallèle...... 2 2.2 Les architectures parallèles...................... 2 2.2.1 Éléments de vocabulaire autour du processeur........ 28 2.2.2 Éléments de vocabulaire autour de la mémoire....... 29 2.2. Typologie des infrastructures de calcul............ 35 2.3 Le calcul parallèle........................... 37 2.3.1 Éléments de vocabulaire.................... 37 2.3.2 Penser parallèle......................... 39 2.4 Limites aux performances....................... 41 2.4.1 Loi d’Amdahl.......................... 41 2.4.2 Loi de Gustafson........................ 42 2.4.3 Et dans la vraie vie...................... 43 3 Calcul parallèle avecRsur machine multi-cœurs45 3.1 Principe général ............................ 45 3.2 Le package parallelet son utilisation................ 46 3.2.1 L’approche snow........................ 48 3.2.2 L’approche multicore..................... 55 3.2.3 foreach + doParallel.................... 60 3.2.4 Génération de nombres pseudo-aléatoires.......... 62 3.3 L’équilibrage de charge......................... 63 3.3.1 Durée des tâches connue et ordonnancement statique.... 65 3.3.2 Durée des tâches inconnue et ordonnancement dynamique .66 3.3.3 Granularité et équilibrage de charge............. 70 4 C++ parallèle interfacé avec R73 4.1 Principe général ............................ 73 4.2 open MP................................. 78 4.2.1 Les bases d’open MP...................... 78 4.2.2 Retopen MP........................... 82 4.3 Les threads de C++11.......................... 84 4.3.1 Les bases des threads de C++11................ 84 4.3.2 Ret les threads de C++11................... 85 4.4 RcppParallel.............................. 87 5 Calculs et données distribués avecRsur un cluster89 5.1 Cluster orienté HPC.......................... 89 5.1.1 Les bases de MPI........................ 90 5.1.2 R et MPI............................. 92 5.2 Cluster orientébig data........................ 100 A Notions complémentaires103 A.1 Problématique du calcul flottant................... 103 A.2 La complexité.............................. 104 A.3 Typologie des langages......................... 106 A.4 Les accélérateurs............................ 107 A.4.1 GP-GPU, General-Purpose computation on Graphic Proces-sing Unit......... 107 A.4.2 Carte many-cœurs....................... 109 A.5 Exemples d’utilisation de Rcpp avec la fonction cpp function du package inline Bibliographie Index |
Disponibilité (4)
Cote | Support | Localisation | Statut |
---|---|---|---|
MAT/846 | Livre | bibliothèque sciences exactes | Consultable |
MAT/846 | Livre | bibliothèque sciences exactes | Empruntable |
MAT/846 | Livre | bibliothèque sciences exactes | Empruntable |
MAT/846 | Livre | bibliothèque sciences exactes | Empruntable |