Troisième commit d'optimisation du transfert de données par FVTM. Deux “petites” modifs dans ce commit :
J'ai continué d'extraire des routines de calculs des boucles imbriquées.
Ensuite, lors de la recherche de l'élément qui correspond à une position donnée, je sauvegarde le bon élément de l'itération précédente et teste d'abord si cet élément correspond avant de boucler sur tout le maillage.
Chaque modif réduit encore d'une dizaine de pourcents la durée du transfert.
Pour ceux qui sont intéressés par le transfert de données, voici une idée des améliorations des temps de calcul pour le cas-test de backwardExtrusion en 3D, avec 3584 éléments et une étape de remaillage, introduites par ce commit et les deux précédents.
Global
est le temps total, Integration
regroupe le temps de l'intégration temporelle, Remeshing
le temps des opérations de remaillage, transfert de données et rééquilibrage, et Other
le reste. Pour info, j'ai réduit le temps normal d'intégration temporelle, donc le ratio réel intégration/remaillage est plus favorable.
Times | Original | Opti 1 | Opti 2 | Opti 3 |
Global User CPU Time | 1769.0 | 327.1 | 262.5 | 213.4 |
Integration User CPU Time | 101.6 | 99.6 | 102.3 | 101.8 |
Remeshing User CPU Time | 1665.4 | 225.5 | 158.1 | 109.5 |
Other User CPU Time | 2.0 | 2.0 | 2.1 | 2.1 |
A : R :
A : R :
— Pierre Joris 2015/12/11