Accès direct au contenu

LMT

Version anglaise

aide

LMT > Projets Transversaux

La Cellule Développement Logiciel

La Cellule a pour vocation de fédérer les développements informatiques du laboratoire. Elle est composée de deux personnes à temps complet mais collabore avec une trentaine de personnes (doctorants, post-doc ou permanents concernés par le développement de codes informatiques).
 
    La cellule a également vocation à organiser la définition des interfaces de programmation (API) et des schémas de pensée associés. Pour faciliter l'adoption de ces choix collectifs, elle prend par ailleurs la responsabilité du développement des librairies "charnières", d'utilité commune.
 
    Comparant avec une approche orientée objet, utilisée de façon basique, les technologies au centre des développements proposés permettent de pousser la modularité un cran plus loin, tout en garantissant les meilleurs temps d'exécution. Le paradigme qui sous-tend les développements est « l'évaluation paresseuse ». Le concept consiste à retarder l'exécution des opérations, pour réaliser automatiquement des optimisations en vitesse d'exécution (exécutions collaboratives, adaptation au contexte matériel, ...), mais aussi et surtout pour permettre des transformations de type calcul symbolique que la génération automatique de code accompagne de façon efficace. Il fournit un cadre central pour un certain nombre de travaux au LMT-Cachan, dont quelques uns portant sur « l'exploitation optimale du matériel grand public » ; la génération de code à la volée, associée aux graphes globaux construits par l'évaluation paresseuse permettent de transformer les programmes pour s'adapter aux processeurs des cartes graphiques, ainsi qu'aux évolutions significatives du matériel informatique actuel (augmentation du ratio flops/MBps, ...), y compris en changeant les algorithmes et les représentations intermédiaires, grâce au calcul symbolique.
Les routines proposées, dans bon nombre de cas, sont au final plus rapides que celles des logiciels du commerce, y compris dans leur domaine de prédilection. Ces technologies ont été utilisées notamment pour la résolution de problème éléments finis, et pour la corrélation d'images ou de volumes.
 
    Le calcul symbolique est de façon générale un atout considérable pour la simplicité et la modularité. En ne demandant que l'essentiel, quelques lignes suffisent en principe pour la définition des éléments, des formulations variationnelles ou des lois de comportement, mais surtout, la possibilité d'appliquer différentes transformations automatiques rend les descriptions indépendantes de la plateforme cible, ce qui assure un lien fort avec les codes industriels. Il est par exemple possible (à l'heure actuelle essentiellement pour des lois simples) de générer du code pour un UMAT Abaqus en C++ et pour la plateforme interne au laboratoire en assembleur à partir d'une même description de loi de comportement. On pourra citer la gestion automatique des discontinuités à quelque niveau que ce soit (pour la XFEM, les problèmes d'évolution de front, ...) comme autre exemple d'outil intégré à l'évaluation paresseuse favorisant la simplicité et la modularité. Les applications « mécaniques » couvrent une part importante des thèmes de recherche du laboratoire :
 
  •         vérification/validation/identification ;
  •         moyennes fréquences ;
  •         décomposition espace-temps ;
  •         décomposition de domaine (applications de la méthode LATIN, ...) ;
  •         solides/fluides/thermique/couplages, ... ;
  •         matériaux composites (modèles micro, ...) ;
  •         corrélation d'images ou de volume.


save-point

Plate-forme logicielle 1
Les étapes d'une décomposition cholesky pour génération de code pour GPU

I32-E0

plate-forme logicielle 2
Le déplacement calculé par corrélation de volumes assisté par mécanique au niveau voxel à partir d'une tomographie (crédits F. Hild, S. Roux)

En savoir plus

Contacter
Hugo LECLERC
Ingénieur de Recherche au CNRS