Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
developpement:activites:qualification:30ans1code [2019/12/16 17:53] equemene [Comparaison finale sur 30 de matériel] |
developpement:activites:qualification:30ans1code [2019/12/17 10:52] equemene |
||
---|---|---|---|
Ligne 14: | Ligne 14: | ||
(détournement de Tolkien...) | (détournement de Tolkien...) | ||
+ | |||
===== Résumé ===== | ===== Résumé ===== | ||
Ligne 105: | Ligne 106: | ||
* Multiplication des coeurs. Avant : les précédents. Après : le Northwood P4 et le AthlonX2 | * Multiplication des coeurs. Avant : les précédents. Après : le Northwood P4 et le AthlonX2 | ||
* Manipulation des GPU. Avant : tous les processeurs. Après : 10 ans d'évolution de GPU et GPGPU. | * Manipulation des GPU. Avant : tous les processeurs. Après : 10 ans d'évolution de GPU et GPGPU. | ||
- | |||
- | |||
=== Conditions expérimentales et exécution du code === | === Conditions expérimentales et exécution du code === | ||
Ligne 120: | Ligne 119: | ||
En fonction de la performance et de la mémoire disponible dans chaque système. | En fonction de la performance et de la mémoire disponible dans chaque système. | ||
+ | |||
+ | === Eléments de sortie === | ||
+ | |||
+ | Ces simulations ont pour objectif de "montrer" quelle serait l'apparence d'un disque d'accrétion gravitant autour d'un trou noir. Cependant, ce n'est pas une mais deux images que nous allons synthétiser : | ||
+ | * la première en **[https://fr.wikipedia.org/wiki/D%C3%A9calage_vers_le_rouge|z]]** | ||
+ | * la seconde en **[[https://fr.wikipedia.org/wiki/Flux_lumineux|flux]]** | ||
+ | |||
+ | Si le programme originel ne "produit" qu'une image en niveaux de gris normalisés sur la valeur maximale, le programme en Python exploite des "fausses couleurs" de manière équivalente à celle produite en avril dernier. | ||
+ | |||
+ | Voici une image en **décalage spectral** en fausses couleurs, pour un observateur situé 10° au dessus du disque. | ||
+ | |||
+ | {{ :developpement:activites:qualification:trounoirz_trajectopixel_device0_casimir_20191217_104144.png?500 |}} | ||
+ | |||
+ | Voici une image en **flux** dont l'émission du disque est une **raie monochromatique** (une unique couleur). | ||
+ | |||
+ | {{ :developpement:activites:qualification:trounoirf_trajectopixel_device0_casimir_20191217_104144.png?500 |}} | ||
+ | |||
+ | Voici une image en **flux** dont l'émission est un **spectre de corps noir** (une distribution de couleurs). | ||
+ | |||
+ | {{ :developpement:activites:qualification:trounoirf_trajectopixel_device0_casimir_20191217_104150.png?500 |}} | ||
=== Intégration du calcul flottant dans le processeur === | === Intégration du calcul flottant dans le processeur === | ||
Ligne 448: | Ligne 467: | ||
Ainsi, nous pouvons, au travers de ces diverses simulations, identifier une troisième frontière. La première est la limite calculatoire (Compute-bound), la seconde est la limite d'échange mémoire (Memory-bound), la troisième est la limite d'échange périphérique (IO-bound). | Ainsi, nous pouvons, au travers de ces diverses simulations, identifier une troisième frontière. La première est la limite calculatoire (Compute-bound), la seconde est la limite d'échange mémoire (Memory-bound), la troisième est la limite d'échange périphérique (IO-bound). | ||
- | ==== Comparaison finale sur 30 de matériel ==== | + | ==== Comparaison finale sur 30 ans de matériel informatique ==== |
+ | |||
+ | Nous avions présenté, au début de notre analyse, la distribution des processeurs en fonction de leur année de sortie et de deux paramètres définissant chacun d'eux : leur nombre de transistors et leur fréquence. Cela nous avait permis de conclure que, finalement, nous disposions d'une bonne répartition permettant de revenir à la loi de Moore "statique". Plus loin, nous nous étions rendu compte que, malgré la progression en nombre de transistors, nos performances n'augmentaient pas en conséquence et qu'il fallait modifier le programme pour mieux en exploiter les transistors, répartis sur plusieurs coeurs : la parallélisation du code, d'abord en OpenMP puis en OpenCL, a ainsi permis de largement mieux exploiter ces processeurs récents. | ||
- | Temps est venu de replacer tous nos processeurs et accélérateurs, toutes natures confondues, et de les replacer sur un unique graphique, mais en fonction de leur année de commercialisation. | + | Temps est venu de comparer tous nos 30 processeurs et accélérateurs, toutes natures confondues, et de les replacer sur un unique graphique, mais en fonction de leur année de commercialisation. |
{{ :developpement:activites:qualification:performancesyear_bb.png?600 |}} | {{ :developpement:activites:qualification:performancesyear_bb.png?600 |}} | ||
- | Pour les simulations BB, Les triangles jaunes (programme OpenCL) se placent bien au dessus des carrés bleus (programme séquentiel) voire des losanges oranges (programme OpenMP). L'échelle étant logatirthmique en ordonnée, nous voyons également émerger timidement quelques triangles verts (programme CUDA). | + | Pour les simulations BB, Les triangles jaunes (programme OpenCL) se placent bien au dessus des carrés bleus (programme séquentiel) voire des losanges oranges (programme OpenMP). L'échelle étant logarithmique en ordonnée, nous voyons également émerger timidement quelques triangles verts (programme CUDA). |
{{ :developpement:activites:qualification:performancesyear_mono.png?600 |}} | {{ :developpement:activites:qualification:performancesyear_mono.png?600 |}} | ||
Ligne 460: | Ligne 481: | ||
Pour les simulations Mono, la différence entre GPU et CPU est beaucoup plus marquée : les triangles verts (CUDA) se détachent beaucoup plus largement. Elément intéressant, ils assurent la continuité de progression en performance assurée, d'abord par les processeurs monocoeur (de 1989 à 2004), puis les multicoeurs (jusqu'à 2008) avant que les GPGPU (en OpenCL) ne proposent des performances supérieures. | Pour les simulations Mono, la différence entre GPU et CPU est beaucoup plus marquée : les triangles verts (CUDA) se détachent beaucoup plus largement. Elément intéressant, ils assurent la continuité de progression en performance assurée, d'abord par les processeurs monocoeur (de 1989 à 2004), puis les multicoeurs (jusqu'à 2008) avant que les GPGPU (en OpenCL) ne proposent des performances supérieures. | ||
- | Ainsi, l'exploitation du GPU a eu, dans l'histoire de l'informatique, le même caractère disruptif que l'intégration systématique de l'unité en virgule flottante dans les processeurs dès 1993. | + | Ainsi, l'exploitation du GPU a eu, dans l'histoire de l'informatique, le même caractère "disruptif" que l'intégration systématique de l'unité en virgule flottante dans les processeurs dès 1993. Grâce à l'exploitation de ces derniers, la loi de Moore "dynamique" (celle sur une performance mesurée) reste encore valable. |