commit:2014:10_09
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
commit:2014:10_09 [2014/10/09 13:15] – crutzen | commit:2014:10_09 [2016/03/30 15:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ======Commit 2014-10-09====== | + | =======Commit 2014-10-09======= |
- | =====Concurrence de la base de données DBSet===== | + | ======Concurrence de la base de données DBSet====== |
Ce commit s’inscrit dans la poursuite du travail de parallélisation du code METAFOR et //a fortiori// dans la chute drastique du temps CPU des simulations de profilage. | Ce commit s’inscrit dans la poursuite du travail de parallélisation du code METAFOR et //a fortiori// dans la chute drastique du temps CPU des simulations de profilage. | ||
- | ====Introduction==== | + | =====Introduction===== |
- | Pour rappel, le commit 2089 s’était concentré essentiellement sur les problèmes manifestes de performances de l’assemblage de la matrice de raideur structurale en parallèle, constatés | + | Pour rappel, le commit 2089 s’était concentré essentiellement sur les problèmes manifestes de performances de l’assemblage de la matrice de raideur structurale en parallèle, constatés |
La figure ci-dessous confirme le retour espéré des performances antérieures au commit 2071, tout du moins pour les simulations lagrangiennes de profilage. Le cas-test est le profilage du channel en formalisme lagrangien. Les courbes en trait plein sont relatives à la révision 2041 de Metafor (tel que présenté à la conférence ICOMP’14 et donc antérieur au commit 2071), les croix à la révision 2089. Le temps de référence du speedup est celui du job à 1 thread de la révision 2041. On peut remarquer des performances plutôt similaires entre les deux révisions de METAFOR, hormis le speedup du buildK en 12 threads désormais encore plus convaincant. | La figure ci-dessous confirme le retour espéré des performances antérieures au commit 2071, tout du moins pour les simulations lagrangiennes de profilage. Le cas-test est le profilage du channel en formalisme lagrangien. Les courbes en trait plein sont relatives à la révision 2041 de Metafor (tel que présenté à la conférence ICOMP’14 et donc antérieur au commit 2071), les croix à la révision 2089. Le temps de référence du speedup est celui du job à 1 thread de la révision 2041. On peut remarquer des performances plutôt similaires entre les deux révisions de METAFOR, hormis le speedup du buildK en 12 threads désormais encore plus convaincant. | ||
Line 15: | Line 15: | ||
Néanmoins, malgré ce regain de performances, | Néanmoins, malgré ce regain de performances, | ||
- | ====DBSet==== | + | =====DBSet===== |
Des analyses ont été menées avec l’Amplifier du Parallel Studio. Elles ont pointé des problèmes de performances vers la base de données, largement sollicitée par la convection désormais parallélisée. La synchronisation des threads par le spin mutex défini dans la méthode '' | Des analyses ont été menées avec l’Amplifier du Parallel Studio. Elles ont pointé des problèmes de performances vers la base de données, largement sollicitée par la convection désormais parallélisée. La synchronisation des threads par le spin mutex défini dans la méthode '' | ||
- | Désormais, le vecteur | + | Désormais, le vecteur '' |
* plusieurs threads peuvent agrandir la dimension du conteneur et ajouter de nouveaux éléments de manière concurrente; | * plusieurs threads peuvent agrandir la dimension du conteneur et ajouter de nouveaux éléments de manière concurrente; | ||
* agrandir le conteneur n’invalide pas les itérateurs et indices existants. | * agrandir le conteneur n’invalide pas les itérateurs et indices existants. | ||
Line 25: | Line 25: | ||
Les temps d’accès concurrents dans la base de données ne sont ainsi quasiment plus pénalisés. Toutefois, cela pourrait occasionner une légère dégradation inévitable pour un accès séquentiel par rapport au vecteur '' | Les temps d’accès concurrents dans la base de données ne sont ainsi quasiment plus pénalisés. Toutefois, cela pourrait occasionner une légère dégradation inévitable pour un accès séquentiel par rapport au vecteur '' | ||
- | A présent, le speedup global de la parallélisation est plus acceptable pour un petit-cas de profilage en formalisme ALE : environ 4.5 (voir figure ci-dessous). | + | A présent, le speedup global de la parallélisation est plus acceptable pour un petit cas-test de profilage en formalisme ALE : environ 4.5 (voir figure ci-dessous). Le speedup de la convection ALE s' |
{{ : | {{ : | ||
- | Une seconde option était le recours à un mutex read-write dans la DB au lieu du spin mutex. Les performances étaient cependant plus en retrait (voir figure ci-dessous). | + | Une seconde option était le recours à un mutex read-write dans la DB au lieu du spin mutex utilisé auparavant. Les performances étaient cependant plus en retrait |
{{ : | {{ : | ||
- | ====Divers==== | + | =====Divers===== |
* Le timer '' | * Le timer '' | ||
Line 39: | Line 39: | ||
* Correction d’un problème de visualisation sur les splines. | * Correction d’un problème de visualisation sur les splines. | ||
* Multiples inclusions de tbb dans les '' | * Multiples inclusions de tbb dans les '' | ||
+ | |||
+ | ===== Fichiers ajoutés/ | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | --- // | ||
+ | |||
commit/2014/10_09.1412853349.txt.gz · Last modified: 2016/03/30 15:22 (external edit)