Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2010:12_01

Commit 2010-12-01

Portage Mac OS X

...mais pourquoi?

C'est ça un Mac (et une aspiratrice FNRS)

Grâce à Damien Watrin qui démarre un projet FNRS sur le couplage fluide structure, le source Metafor est compilable sous Mac OS X. Le code a dû être légèrement modifié à deux endroits:

  • L'instanciation de templates dans des fichiers d'entête de mtShapeFunctions ne posaient pas de problème sous les autres plateformes. C'est évidemment quelque chose qui faut éviter puisque cela aurait dû conduire à du code “multiply defined” au link. Les instanciations problématiques ont été déplacées dans les fichiers “.cpp” adéquats.
  • La lecture (type POSIX) de l'adresse MAC ne fonctionnait pas sous Mac (ahaha, elle est bonne!). J'ai dû réécrire un code adapté au Mac (système BSD).

Deux configs cmake ont été créées:

  • CMake/cocoa.cmake: compilation en ligne de commande (Makefiles)
  • CMake/cocoaX.cmake: génération du projet XCode

Si j'ai bien compris, Cocoa désigne une sorte de .NET version Mac, c'est à dire un framework permettant d'accéder au réseau, au multimédia, etc.

Préparation du système

  1. Télécharger/installer MKL MACOSX:
    • dispo dans “Intel C++ composer XE” (anciennement “Intel C++ compiler prof edition”)
  2. Télécharger/installer Qt:
  3. Télécharger/installer CMake précompilé
  4. [python (2.6.1) est deja installé]
  5. Télécharger sources VTK
    • dézipper dans /Developer/VTK
    • mouliner les sources VTK ⇒ /Developer/VTKB
    • activer les options classiques (ne pas oublier GUISUPPORT et GL2PS)
    • make -j 4
    • sudo make install ⇒ installe dans /usr/local/lib et /usr/local/include
  6. Télécharger les sources SWIG (une vieille version de swig (1.3.31) est deja installée)
    • dezipper dans /Developer
    • SWIG requiert “PCRE - Perl Compatible Regular Expressions”
      • télécharger le src de PCRE
      • compiler/installer PCRE (configure/make/make install)
    • compiler/installer SWIG (configure/make/make install) ⇒ !! /usr/local/bin/swig
  7. Configurer dyld (équivaut à ldd sous linux):
    • dans ~/.profile:
      • DYLD_LIBRARY_PATH=/usr/local/lib/vtk-5.6/:/opt/intel/mkl/lib

Compilation Metafor proprement dite

  1. [svn/ssh sont deja installés]
  2. faire un co du source Metafor.
  3. créer répertoire oo_metaB a coté de oo_meta
  4. dans oo_metaB: cmake -C ../oo_meta/CMake/cocoa.cmake ../oo_meta

Ca donne quoi?

En gros ça marche plutôt bien. Au niveau perfs, le tube (voir image ci-dessous) a même tourné plus vite que sur mon PC. A mon avis, vu le système de type “Linux” en dessous de la couche graphique, on peut s'attendre à des perfs similaires à celles qu'on a sous Linux (c'est-à-dire meilleure que sous windows).

Le projet “Xcode” semble OK. Il inclut une interface pour SVN qui a l'air de fonctionner correctement (c'est pas aussi clair que TortoiseSVN mais c'est utilisable).

Qq perspectives

  • Idéalement il serait intéressant de passer une batterie. C'est difficile aujourd'hui vu que certains trucs n'ont pas été compilés (numpy, interface python/vtk/triangle/tetgen/gmsh). De plus, je ne sais pas si une version de Samcef existe sous mac.
  • On pourrait également envisager à terme de créer un installeur si certains étudiants veulent travailler sous Mac dans le futur.
  • Compilation de oo_nda: je n'ai pas fait vu que Damien n'en a pas besoin a court terme.
  • Utilisation du compilateur Intel (actuellement gcc), peut-être plus rapide.
  • Utilisation des MKL version multi-threads (actuellement séquentiel).
  • gestion correcte du ${OutDir} sous Xcode (actuellement cocoaX.cmake produit un projet “Release” uniquement).

Metafor sous Mac OS X

Romain BOMAN 2010/12/01 10:08

commit/2010/12_01.txt · Last modified: 2016/03/30 15:23 (external edit)