Accueil > Logiciels > Modélisations et Simulations > Diffpack > - Les boîtes à outils    

DIFFPACK

LA NOUVELLE GENERATION
DE LOGICIEL
DE MODELISATION NUMERIQUE

 

Les boîtes à outils de Diffpack :

 

 

La Parallel Toolbox

Sans efforts, vous pouvez faire de votre simulateur DIFFPACK

un code exécutable sur machine parallèle

 

 

Une solution accessible et facile à mettre en oeuvre

De fait, le calcul parallèle a longtemps été réservé à une élite restreinte d’experts. Au coût prohibitif des ordinateurs nécessaires s’ajoutaient les difficultés pratiques de la programmation et son coût en temps de travail.

 

Avec le développement des réseaux à haut débit et des grappes de machines à faible coût, l’équipement nécessaire est devenu tout à fait accessible.

 

Et avec DIFFPACK, la programmation est, en plus, devenue chose facile ! Il suffit d’ajouter quelques instructions à votre programme puis d’assurer le lien avec la « Parallel Toolbox » : il devient alors exécutable dans un environnement multiprocesseurs.

 

Parallélisation des algorithmes d’algèbre linéaire

La « Parallel Toolbox » a été écrite pour parallèliser les algorithmes d’algèbre linéaire de résolution de votre système d’EDP. Ceci est fait en répartissant les données entre les processeurs. Cette répartition utilise au mieux les caractéristiques topologiques du maillage, ce qui assure des communications inter-processeur équilibrées et une grande vitesse d’exécution.

 

L’exemple suivant montre les résultats obtenus lors de la simulation, selon la méthode des éléments finis, d’un problème de la forme avec un maillage hautement non structuré.

 

Nb processeurs

CPU

seconde

Ratio de

vitesse

1

420

 

2

200

2,10

4

156

2,69

6

84

5,01

8

60

6,97

12

38

10,99

16

28

14,83

 

Ce problème a environ 130 000 degrés de liberté et il utilise la fonction BiCGStab comme solveur linéaire.

 

Flexible dans son utilisation

La démarche de parallélisation consiste à scinder le maillage en une matrice de sous-systèmes qui se recouvrent. Chaque processeur traite un sous-système. La contribution au système global de chaque sous-système est calculée, tandis que les nœuds communs du maillage permettent d’évaluer les dépendances entre les sous-systèmes.

 

Lors de l’écriture de la version parallèle de votre programme, vous pourrez utilisez la plupart des options disponibles en programmation séquentielle. Vous pourrez ainsi utiliser des maillages structurés, ou non, dans des espaces à 1, 2 ou 3 dimensions. Vous pourrez choisir parmi différents solveurs, différents pré-conditionneurs, etc.

 

Facile à configurer

Les options mises à votre disposition incluent la distribution des processus aux processeurs, les algorithmes de découpage du maillage et de calcul de la zone de recouvrement entre sous-systèmes.

Vous pouvez aussi choisir d’importer la définition de chaque sous-système à partir de fichiers ou de réaliser le découpage d’un maillage non structuré avec METIS ou votre algorithme personnel.

Enfin, des maillages structurés peuvent être construits en parallèle.

 

L’exemple suivant donne les résultats pour la résolution de l’équation de Poisson  en utilisant un maillage structuré créé en parallèle :

 

Nb processeurs

CPU

seconde

Ratio de

vitesse

1

1025

 

2

493

2,08

4

254

4,03

6

172

5,94

8

124

8,25

12

79

12,95

16

58

17,68

 

Le problème a environ 230 000 degrés de liberté et utilise le gradient conjugué comme solveur linéaire. La croissance quasi-linéaire de la vitesse d’exécution est due à des effets de caches.

 

Du PC en réseau aux machines dédiées

La « Parallel Toolbox » utilise le protocole de communication de MPI. Une fois MPI installé sur votre machine, vous pouvez paralléliser vos applications DIFFPACK sur une machine de calcul parallèle aussi bien que sur des processeurs reliés par un réseau.

 

La licence d’utilisation de la « Parallel Toolbox » est définie en nombre de processus et non en nombre d’utilisateurs comme c’est le cas pour les autres modules de DIFFPACK. Vous pouvez donc allouer l’ensemble des jetons à une seule application ou bien les partager entre plusieurs.

 

 

La Multilevel Toolbox

Cette boîte à outils est un environnement

complet de construction

de solveurs multi-grilles performants

 

 

Des solveurs fonctionnant à la vitesse optimale

Quand les solveurs multi-niveaux furent découverts dans les années 1970, de nombreux experts refusèrent simplement de croire que le calcul était en O(N) ! Aujourd’hui, des centaines de publications scientifiques ont établi un riche environnement théorique et l’optimalité de ces solveurs est bien comprise.

Etant des super-algorithmes, c’est à dire composés de sous-algorithmes complexes, les solveurs multi-niveaux sont non seulement les plus rapides et les plus adaptables mais aussi les plus compliqués de tous les types de solveurs linéaires.

Atteindre la solution d’un problème de grande taille requiert beaucoup de puissance de calcul, avec une forte dépendance au problème et à sa mise en forme. Les configurations optimales de problèmes spécifiques sont rarement obtenues par analyse. La mise au point de solveurs multi-niveaux rapides repose donc sur l’expérimentation, ce qui exige de grandes qualités de souplesse d’utilisation de la part des fonctionnalités du logiciel.

Un cadre de travail pour solveurs multi-grilles

La « Multilevel Toolbox » de DIFFPACK est un environnement complet de construction de solveurs multi-grilles performants car dédiés. Sa conception ouverte permet les extensions à d’autres solveurs multi-niveaux comme, par exemple, ceux fondés les techniques de décomposition de domaines.

L’exemple suivant donne le nombre d’itérations et le temps CPU pour la résolution de l’équation de Poisson  en utilisant des maillages structurés de tailles différentes.

 

 

GC/RILU

GC/MG

MG

Taille

#it

CPU

#it

CPU

#it

CPU

4 225

44

0,47

5

0,14

7

0,14

16 641

81

3,69

5

0,64

7

0,67

66 049

146

27,20

5

2,69

7

2,77

263 169

265

194,60

5

11,00

7

11,02

De la gauche vers la droite, les différents solveurs sont les gradients conjugués (GC) avec le pré-conditionneur RILU, GC avec le pré-conditionneur multi-grilles (MG) et un multi-grille seul. La configuration multi-grilles a été optimisée en utilisant la fonction « boucle multiple » (1) de DIFFPACK.

Simple à utiliser

Environ 10 lignes de code, voilà ce qui est nécessaire pour disposer, dans une application DIFFPACK existante, de l’ensemble des options multi-grilles de la boîte à outils. Quand vous convertissez votre programme en un code multi-grille, vous le munissez :

- d’un maillage rudimentaire et des système linéaire et solveur associés,

- d’une hiérarchie de maillage,

- de solveurs linéaires pour le pré- et le post-lissage,

- des opérateurs de transfert entre niveaux de maillage.

 Ces différents item peuvent être initialisés à partir d’un fichiers d’entrée ou à l’aide d’un menu à l’exécution.

 Facile à configurer

Vous pouvez sélectionner des maillages structurés, ou non, dans des espaces à 1, 2 ou 3 dimensions. La gestion de la hiérarchie des maillages supporte des environnements multi-grilles imbriqués ou non.

Vous pouvez choisir les pré- et post-lisseurs disponibles dans la librairie DIFFPACK ; vous pouvez tout aussi bien utiliser votre lisseur habituel.

 Vous avez la même liberté de choix quand vous gérez d’autres paramètres comme, par exemple, les projections, les résidus, les itérations de lissage, les « cycles V ou W », etc. A l’aide du menu système, vous pouvez définir des cas de calcul multiple, fonction de différents nombres d’itérations et « cycles V/W », pour optimiser les valeurs de ces paramètres pour un problème donné.

 Vous pouvez aussi utiliser les solveurs multi-grilles directement ou en tant que pré-conditionneurs pour d’autres solveurs itératifs comme, par exemple, les solveurs de Krylov qui sont inclus dans DIFFPACK.

Pour l’industrie aussi bien que pour la recherche

Evidemment, la « multilevel toolbox » offre des gains de temps considérables pour les applications industrielles à grande échelle.

Mais, grâce à souplesse d’ utilisation, la « multilevel toolbox » est aussi le parfait environnement de laboratoire pour ceux qui s’intéressent principalement à la recherche.

 

(1)Pour cet exemple particulier, la fonction boucle multiple de DIFFPACK a été utilisée pour tester :

- les candidats comme pré- et post- lisseurs,

- le nombre d’itérations pour les pré- et post- lisseurs,

- les « cycles V ou W »,

- le solveur pour le maillage rudimentaire.

L’étude de convergence a mis en évidence la sensibilité particulière des résultats au choix du lisseur.

 

L'Adaptivity Toolbox

Le maillage adaptatif est la garantie d’obtenir

une solution de précision optimale,

pour les moyens de calcul disponibles

 

Le maillage adaptatif, c’est plus de précision

Pour la plupart des problèmes d’EDP, la précision de la solution dépend fortement de la taille mémoire de votre machine et du temps de calcul disponible. Un maillage adaptatif équilibrera vos calculs de façon à obtenir une meilleure précision, pour réduire le temps de calcul et la mémoire nécessaire. Et, de ce fait, vos programmes vous permettront de prendre de meilleure décision.

 Typiquement, la solution recherchée montre des singularités ou d’autres effets. Les régions critiques doivent être traitées avec un maillage fin tandis que les autres zones auront un maillage plus grossier. Pour les problèmes dépendants du temps, le maillage devra évoluer en fonction du temps, selon l’évolution de critères sensibles : gradients ou autres mesures.

 L’effet du maillage adaptatif peut être substantiel. Pour certains problèmes, il serait même impossible d’atteindre une solution significative sans lui.

 Une gestion souple, sans programmation supplémentaire

En combinant la souplesse des Méthodes aux Eléments Finis de l’environnement DIFFPACK avec la puissance de la « Adaptivity Toolbox », vous obtenez une gestion fine des techniques de maillage adaptatif au service de la qualité de vos simulations.

 En ajoutant quelques instructions à un simulateur DIFFPACK, vous avez immédiatement accès à des stratégies d’amélioration du maillage, pour des maillages structurés ou non, dans des espaces à 1, 2 ou 3 dimensions.

 La stratégie d’amélioration est divisée en trois étapes :

1. donner un poids à chaque élément du maillage,

2. marquer les éléments cibles selon les valeurs de poids,

3. calcul du maillage amélioré.

Un ensemble de fonctions d’assignation de poids est à votre disposition, basées sur les valeurs de champ ou les gradients par exemple. Vous pouvez aussi, facilement, définir vos propres fonctions de poids qui exploiteront au mieux les spécificités de votre problème.

Pour le marquage, vous pouvez utiliser des comparaisons entre les valeurs absolues ou les valeurs relatives des poids parmi votre sélection de valeurs seuils.

Pour les problèmes fonction du temps, vous pouvez choisir de démarrer une nouvelle amélioration à n’importe lequel des niveaux dans la hiérarchie des maillages.

 

La Datafilter Toolbox

Cette boîte à outils vous permet

de charger dans DIFFPACK

les maillages standards de l’industrie

 

Importation facile

En complément aux pré-processeurs disponibles dans l’environnement DIFFPACK, la « Datafilter Toolbox » permet d’importer aisément et en toute sécurité des maillages aux éléments finis obtenus avec des pré-processeurs externes.

Vous pouvez ainsi utiliser l’ensemble des fonctionnalités de votre pré-processeur favori et, ensuite, charger directement dans votre application DIFFPACK le maillage et les conditions aux limites ainsi obtenus.

La plupart des pré-processeurs commerciaux savent enregistrer leurs résultats selon au moins l’un des trois formats standards suivants :

- Abaqus

- Ansys

- Nastran

Pour assurer une large ouverture vers les pré-processeurs externes, la « Datafilter Toolbox » supporte ces trois formats.

Utilisable de deux manières

Vous pouvez utilisez la « Datafilter Toolbox » comme une librairie ou comme un ensemble de logiciels autonomes :

- Comme librairie, elle donne à vos applications DIFFPACK la capacité à analyser les fichiers de données et à importer directement maillage et conditions aux limites. Dans ce mode, les données lues à partir du fichier servent à construire un objet « maillage aux éléments finis » intégré à votre application.

- Comme ensemble de logiciels autonomes, elle accepte les fichiers de maillage externes en entrée et génère des fichiers de maillage DIFFPACK en sortie.

Autres outils pré-processeurs

Les pré-processeurs fournis avec l’environnement DIFFPACK supportent les treillis, … et possèdent des interfaces avec GeomPack et Triangle. 

La « Adaptivity Toolbox » permet un contrôle fin des améliorations à apporter aux maillages, ce qui accroît la  puissance  de l’ensemble.


Envoyer message

Plan du site    Contact