Présentation du logiciel didacticiel

Ce programme didactique est en partie une réalisation explicite d'une programmation effective de questions et de méthodes liées à l'Analyse Numérique. Mais n'a aucunement l'ambition de traiter le soubassement théorique de ces questions (autrement que par l'illustation) l'apprentissage doit être déjà fait. Sa base est constituée des TD d'analyse numérique réalisés au CNAM à Paris dans les années 1990-1994. Il en est ainsi pour le niveau A (premier cycle) que l'on qualifie quelquefois (à tort) de "petite" analyse numérique. Le niveau B et C consistent principalement à des développements ouverts de solutions numériques de problèmes types d'équations en 1D ,2D et 3D. L'objectif étant de présenter voire de comparer le plus grand nombre possible de méthodes numériques, classiques ou specialisées, et de qualifier une programmation que l'on espère structurée, robuste et performante (tout en restant dans le cadre séquentiel) et la plus générale qui soit; montrant par des exemples tirés de la physique ou des mathématiques appliquées les diverses façons d'atteindre le plus rapidement possible une solution numérique. Pour cela les sources sont accessibles tant des séquences relatives à un problème particulier (un module) que dans leur globalité.
La liste des modules F90 (.f), C (.c) et des procédures IDL (.pro) ainsi que le volume en nombre de lignes de code est accessible ici : liste des modules
Les deux corps principaux du programme sont accessibles ici : Cycle A , Cycles B & C

Mise en oeuvre du logiciel

Le code est écrit en Fortran 90 , il est découpé en modules généralement fonctionnels et est opérationnel sous quatre types de machines et d'environnements :

  1. Dec alpha EV6 processor sous OSF1 full product OSF1
  2. athlon i386 sous RedHat 9 GNU/Linux full product 1 GNU/Linux
  3. Dell XPS x86_64 sous Ubuntu GNU/Linux full product 2 GNU/Linux
  4. Linux CentOS 6.3 (centos-6.3_czo-calcup_20130128) 24 x Intel(R) Xeon(R) CPU X5680 @ 3.33GHz - 94.5 Go RAM x86_64 x86_64 x86_64 GNU/Linux full product 3 GNU/Linux
Les environnements doivent comprendre :

- un C natif ou GNU C - le mailleur EMC2 de l'INRIA
-IDL de Research Systems Inc. - un FORTRAN90 norme A.N.S.I.
- gnuplot

La compilation (et le link) se fait par la procédure bcompil - appels successifs aux deux makes : makefile1 (compilation principale)   puis   makefile2 (compilation complémentaire pour le runtime IDL) , elle peut être très longue (de l'ordre de l'heure) pour certains modules sources volumineux : module_fonctionsN3D.f, module_Fourier3D.f; d'où la nécéssité de conserver les .o de ces modules ainsi générés (qui sont statiques dans les faits). L'interface IDL/Fortran90 se fait à l'aide d'une bibliothèque dynamique partageable biblio_IDL.so que l'on doit générer lors de la compilation du source. Pour cela sous Linux on doit utiliser les librairies FORTRAN particulières au fortran d'INTEL qui sont stockées dans un sous-répertoire : lib livré avec les autres composantes du package logiciel. Dans l'autre cas ce sont des librairies standards du Fortran.
Le mailleur EMC2 est configurable en particulier pour les quatre types d'environnements et est livré sous sa forme opérationnelle dans les deux cas. On peut télécharcher le pack complet fourni par l'INRIA à partir duquel sont générés les differents exécutables : full EMC2 compatible
ou chercher des versions pré-compilées http://www.inria.fr/valorisation/logiciels/calcul.en.html Une documentation PostScript sur emc2 est fournie : documentation EMC2
Le logiciel didacticiel a été développé d'abord sur des Alpha, pour ensuite migrer début 2007 sur athlon i386 GNU/Linux puis sur Dell XPS x86_64 sous Ubuntu GNU/Linux en 2010 et pour cela il a fallu implanter un Fortran 90 ; cela a été fait avec le Fortran 90 d'INTEL libre pour des applications non-commerciales. Un autre Fortran libre possible serait celui du "récent" projet G95 (?)

Fortran90/95 pour l'architecture athlon i386 GNU/Linux :

  • www.intel.com...
  • g95 compiler

    Le lancement du code doit être nominalement effectué par la procédure shell : lancemoi qui gère le contexte du programme avant ou après son exécution (fichiers,appels ..). Un fonctionnement du logiciel en runtime IDL (exécution de procédures compilées (.sav) sans avoir besoin de la totalité de l'environnement IDL) est disponible; le shell de lancement est alors la procédure dédiée : lancemoi_rt .


    Sommaire
    page precedente home page page suivante