La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Plateforme H2OLAB Plateforme H2OLAB Réunion Projet MICAS Equipe SAGE

Présentations similaires


Présentation au sujet: "Plateforme H2OLAB Plateforme H2OLAB Réunion Projet MICAS Equipe SAGE"— Transcription de la présentation:

1 Nadir SOUALEM - nadir.soualem@irisa.fr
Plateforme H2OLAB Plateforme H2OLAB Réunion Projet MICAS Equipe SAGE Nadir SOUALEM -

2 Plan Portage Windows-Linux Outil de génération Cmake
Problèmes Rencontrés Applications portées sous Linux Outil de génération Cmake Exemple d’utilisation Configuration Génération Ctest Travaux en cours et objectifs Plateforme H2OLAB

3 Portage: problèmes rencontrés
Problèmes de références sur les objets void FOO ( Point & A); Point (double a1, double a2); Erreurs Syntaxiques: Template de template error: '>>' should be '> >' within a nested template argument list Mauvaise utilisation FOO(Point(a1,a2)); Bonne utilisation Point A=Point(a1,a2); FOO (A); Plateforme H2OLAB Mauvaise utilisation vector<Point<int>> u(20); Bonne utilisation vector<Point<int> > u(20);

4 Portage: problèmes rencontrés
Méthodes non paramétrées d’une classe mère appelée dans une classe fille template <class T> class Base { int f(); }; template < class T> class Derived : Base<T> { int g() { return f(); }; Plateforme H2OLAB Solution this->f() ou Base<T>::f()

5 Portage: problèmes rencontrés
Erreurs liées aux conversions de type size_t m = size_t(-1); //Plus grand entier codable en machine double n = m; 32 bits m= n = 64 bits m= n= Plateforme H2OLAB

6 Portage: problèmes rencontrés
Headers non-standard:conio.h, tchar.h, _mkdir, _chdir , _ getch int _getch() { struct termios oldt, newt; int ch; tcgetattr( STDIN_FILENO, &oldt ); newt = oldt; newt.c_lflag &= ~( ICANON | ECHO ); tcsetattr( STDIN_FILENO, TCSANOW, &newt ); ch = getchar(); tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); return ch; } Problèmes liés à l’exécution: outil logiciel Valgrind Fuite mémoire: valgrind --leak-check=yes prog arg1 arg2 Variables non initialisées: --track-origins=yes Exemple de rapport présent sur la forge Plateforme H2OLAB L’un des problèmes rencontré fut de traiter également les fichiers d’en tetes ou headars si vous préférez: évitez d’utiliser des librairies non standard: du type conio.h ou tchar.h, les fonctions _mkdir, _chdir ou _getch ne sont pas les meme sous linux. On doit alors redéfinir des alias sous Unix: on voit par exemple que pour des fonctions telles que getch, on est obligé de faire appel à des structures bas niveaux tels que les entrées sorties des terminaux de commande …. Enfin, on rencontre des problèmes liés à l’éxecution, des erreurs de segmentation peuvent apparaitre: Il peut y avoir des fuites mémoires comme par exemple des problème d’allocation dynamique Il peut y avoir des cas de v ariables non initialisées, du coup ces variables peuvent prendre n’importe quels valeurs. Je pense que ces des choses qui doivent etre constamment vérifiées.

7 Portage des applications
Logiciels portés sous Linux Ensemble des librairies PARADIS MP_FRAC_D2 MP_FRAC_D2_FLOW MP_FRAC_D3 MP_FRAC_D3_FLOW MS_FRAC Ajout dans la forge de SDK-eclipse Software Eclipse 3.4.1 Plugin SVN intégré Documentation d’installation Introduction de CMake Plateforme H2OLAB L’ensemble des librairies a été porté sous Linux, y compris les composants logiciels suivants à savoir ……. Les fichiers modifiés ont été commits sous la forge, et sont donc utilisées par les autres utilisateurs, j’ai également ajouté une version très récente D‘eclipse avec un nouveau plugin subversion, enfin j’ai également introduit l’outil CMake

8 Outils Logicels: Cmake
C'est un logiciel qui est: développé par Kitware Opensource Multiplatforme (Unix/Mac/Windows) Principe: génération de fichiers de construction standards Makefiles sous Unix/Linux/Mac Projet Visual Studio C++sous Windows Plateforme H2OLAB Cmake est un logiciel open source développé par la société KitWare et qui fonctionne sous différentes plateformes Unix/mac et windows, le principe de cmake est de générer l’ensemble des fichiers de constructions standard, ce dernier va créer l’ensemble des makefiles sous Unix et mac et les projets visual studio c++ associés.Nous allons voir un exemple simplifé de l’utilisation de CMake

9 Cmake Exemple: projet FEM
SOLVER EDP SIMULATION simulation1.{cpp,h} simulation2.{cpp,h} simulation.cpp main() solver1.{cpp,h}, solver2.{cpp,h} libSolver edp1.{cpp,h}, edp2.{cpp,h} libEdp Plateforme H2OLAB Link Simulation

10 Configuration : CMakeLists.txt
FEM - CMakeLists.txt PROJECT(FEM) SUBDIRS(SOLVER EDP SIMULATION) INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/SOLVER ${CMAKE_SOURCE_DIR}/EDP ${CMAKE_SOURCE_DIR}/SIMULATION) SET(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/ lib) SOLVER - CMakeLists.txt ADD_LIBRARY(Solver solver1.cpp solver2.cpp) EDP - CMakeLists.txt ADD_LIBRARY(Edp edp1.cpp edp2.cpp) SIMULATION - CMakeLists.txt ADD_EXECUTABLE(Simulation simulation1.cpp simulation2.cpp) TARGET_LINK_LIBRARIES(Solver Edp) Plateforme H2OLAB

11 Génération: librairies et executables
En mode Debug cmake . DCMAKE_BUILD_TYPE=Debug make En mode Release cmake . DCMAKE_BUILD_TYPE=Release Possibilité d’installation Out-Sourcing (à discuter) make install Plateforme H2OLAB

12 Outils Logiciels: Ctest
Inclus dans CMake Execution de tests Couverture de code g++ -fprofile-arcs -ftest-coverage Couplage avec Valgrind FEM - CMakeLists.txt PROJECT(FEM) SUBDIRS(SOLVER EDP EXEMPLE) ENABLE_TESTING() SIMULATION - CMakeLists.txt ADD_EXECUTABLE(Simulation simulation1.cpp simulation2.cpp) TARGET_LINK_LIBRARIES(Solver Edp) ADD_TEST(test1 Simulation) ADD_TEST(test2 Simulation) Plateforme H2OLAB

13 Automatisation des tests
Création d’un script testing.sh avec authentification ssh #!/bin/bash cd $HYDROLAB_ROOT/svn svn update cmake . make ctest -D Experimental Automatisation à l’aide de crontab(Unix) ou Taches planifiées(Windows) 30 19 * * sh /udd/nsoualem/testing.sh Plateforme H2OLAB

14 Travaux en cours et objectifs
Passage définitif à gcc 4.3 Portage d’Isthmus Rédaction d’une documentation développeur Unix/Windows avec l’introduction des Règles de codage Objectifs Ctest pour les tests de non-régression (à définir) Visualisation OPENGL Portage de Porous Fracture Paramétrage de Cmake pour Windows Mise à jour des librairies extérieures Mise a jour de blas->GotoBlas Ajouter CholMod(SuiteSparse) Userguide (tutorial) Plateforme H2OLAB


Télécharger ppt "Plateforme H2OLAB Plateforme H2OLAB Réunion Projet MICAS Equipe SAGE"

Présentations similaires


Annonces Google