1 ENVOL2008 Logiciels en environnement de recherche
ENVOL2008 Logiciels en environnement de recherche 1. Quel code développe-t-on? 2. Quelle organisation pour développer? 3. Comment s assurer de la qualité? 4. Comment diffuser? 2
années 1980 : le code est intégré dans un projet métier années 1990 : le code est un projet de développement années 2000 : le code est au cœur d un réseau logiciel 3
La simulation numérique des années 80 : les organisations Les organisations d entreprises sont structurées par métier et non par discipline : chacun fait son code pour son problème Pas de distinction franche Utilisateur / Développeur L innovation naît naturellement dans les métiers code A code B code A code B VAL ISO >-5.63E+02 < 9.61E+02-5.51E+02-4.79E+02-4.08E+02-3.36E+02-2.65E+02-1.94E+02-1.22E+02-51. 21. 92. 1.63E+02 2.35E+02 3.06E+02 3.78E+02 4.49E+02 5.20E+02 5.92E+02 6.63E+02 7.35E+02 8.06E+02 8.77E+02 9.49E+02 AMPLITUDE DEFORMEE 5.00E+03 4 Fin 80 s : 5 codes EF pour la mécanique des structures à EDF R&D
La simulation numérique des années 80 : les développeurs Un développeur unique : partage et transfert des compétences faible Lisibilité du source : il est son propre et unique lecteur! Son métier est souvent la physique, pas l informatique. Il sait programmer en FORTRAN beaucoup moins dans des langages complexes Certaines technos sont complexes, chères ou immatures : le graphisme, l architecture objet, la gestion mémoire. Et donc souvent négligées. Beaucoup d énergie gaspillée en réinventant la roue 5
La simulation numérique des années 80 : les utilisateurs Le développeur est souvent son propre utilisateur Peu d efforts sur la documentation IHM pauvre ou inexistante (lecture data dans fichier texte) Un environnement informatique dédié (donc fruste) 6
Les enjeux des codes actuels 7
Motifs de réécriture des codes de simulation dans les années 90 : EVOLUTIVITE : architecture rigide trop coûteuse à modifier, interdit l ajout de fonctionnalités nouvelles COMMUNICATION : architectures et formats d échange hétérogènes, interdit les couplages et l interopérabilité ERGONOMIE : absence d interface utilisateur conviviale MACHINES : les codes doivent suivre les progrès du hardware [parallélisme, multi-cœurs, cartes graphiques] 8
1989 2008 L exemple de Code_Aster 9
Exemple Code_Aster / Salomé-Méca : EVOLUTIVITE : 2000 1800 1600 1400 millier de lignes code nb tests nb pages doc x 10 Version 8 déc. 2006 1200 nb Utilisateurs 1000 800 Heures CPU x100 mise en libre Version 6 nov. 2002 Version 7 déc. 2004 600 400 Version 2 oct. 93 Version 4 avr. 98 Version 5 oct. 2000 200 Version 3 juin 96 10 0 07/89 07/90 07/91 07/92 07/93 07/94 07/95 07/96 07/97 07/98 07/99 07/00 07/01 07/02 07/03 07/04 07/05 07/06
Exemple Code_Aster / Salomé-Méca : COMMUNICATION : format MED/HDF : modèle d échange de données [maillages et champs] Langage haut niveau Python Plate-forme Salomé et YACS Couplage et interopérabilité : Interaction fluide/structure CFD Interaction sol/structure Thermo-hydro-mécanique Dynamique rapide Traitements mathématiques Électro-magnétisme 11
Exemple Code_Aster / Salomé-Méca : ERGONOMIE : Langage haut niveau Python Plate-forme intégrée Salomé - graphisme Déclinaison métier : Salomé-Méca 12
Exemple Code_Aster / Salomé-Méca : MACHINES : Renouvellement machines fréquent Ne pas créer d adhérence logiciel / hardware Plus de calculs / Plus de cœurs par calcul 13
Maillages Gibi Ideas Ensight Aster version 5 Résultats Gibi Ideas Ensight 14
Pré-post Autres physiques Saturne Carmel Europlexus Miss Lmgc90 Salomé Aster Mumps METIS ZMAT Python Salomé Gibi Ideas Ensight GMSH Salomé Version 8 Salomé Boîte à outils numérique Homard OpenTurns NumPy Salomé 15
Les enjeux des codes de demain 16
Expression de besoins pour les codes scientifiques de 2010 (et au delà) : Capacité à accueillir des travaux de R&D sans remettre en cause l usage industriel Architecture développable et attractive Recours généralisé aux simulations non linéaires Pilotage des algorithmes Performances Robustesse Rapports d échelle : Cohérence des logiciels simulation fine de la physique (VER béton, ab initio, endommagement) composants globaux (avion complet, réacteur nucléaire, bâtiments) 17
Expression de besoins pour les codes scientifiques de 2010 (et au delà) : Recours généralisé à la simulation 3D Couplage de codes : Physiques différentes Taille de modèles Performances Architecture souple Ergonomie des codes Échelles différentes temps et espace 18
Expression de besoins pour les codes scientifiques de 2010 (et au delà) : Moins de calcul déterministe : Démultiplication des calculs stochastique, méthodes probabilistes, fiabilité Contrôle qualité des résultats Outils numériques Certification utilisateurs Visu ergonomique 19
Expression de besoins pour les codes scientifiques de 2010 (et au delà) : Product Lifecycle Management Usine numérique Recours à la CAO et au maillage lors de la phase calcul adaptation de maillage, corrélation calcul-mesure, ajout/ablation de matière Environnement CAO MESH VISU intégré 20
Comment y parvenir? Normalisation soutenue par une politique logicielle forte au niveau de l entreprise, du labo Constitution de core-team de développement aux compétences variées : architecture code, physique, analyse numérique, informatique système, études (!) Des développeurs modestes (on renonce à tout faire soi-même) et ambitieux à la fois (fin des codes mono-tâche et mono-utilisateur) Approche par composants : et non par discipline. Impact sur les technologies logicielles, impact sur les organisations. 21
Comment y parvenir? [suite] Adoption systématique de standards : Description et échange de données : IGES, MED/HDF, UNV, MPI Langages et architecture : python, Fortran, C++ Recours aux bibliothèques : Qt, Numeric Python, PETSc, R Avec une difficulté nouvelle importante : bien maîtriser ces pré-requis vis-à-vis du versionnement, de l installation. Nouveau métier d ensemblier logiciel et non plus simplement développeur Logiciel libre! Au service de l économie du partage. Formalisation des services aux utilisateurs 22 contractualisation du service