commit:2015:08_12
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
commit:2015:08_12 [2015/08/12 10:49] – created boman | commit:2015:08_12 [2016/03/30 15:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 3: | ||
===== Portage MinGW ===== | ===== Portage MinGW ===== | ||
- | J'ai modifié le code pour pouvoir le compiler avec [[http:// | + | J'ai modifié le code pour pouvoir le compiler avec [[http:// |
__Quels sont les buts?__ | __Quels sont les buts?__ | ||
- | * Obtenir un **exécutable 32 bits**: c'est important pour pouvoir fournir Metafor aux étudiants ou aux industriels qui possèdent des vieilles machines sous XP, Vista ou Win7-x86. Depuis que Metafor utilise des fonctionnalités du C++11, c'est devenu un problème puisque la compilation de Metafor requiert un compilateur relativement récent tel que Visual Studio 2012, qui est impossible à installer sous XP - Windows XP étant le plus vieux système auquel on est toujours confronté). On a donc un problème pour générer une version 32 bits qui tourne partout! (les exe's Visual Studio générés sous Windows7-x86 ne sont pas totalement compatibles avec Vista et XP). | + | * Obtenir un **exécutable 32 bits**: c'est important pour pouvoir fournir Metafor aux étudiants ou aux industriels qui possèdent des vieilles machines sous XP, Vista ou Win7-x86. Depuis que Metafor utilise des fonctionnalités du C++11, c'est devenu un réel problème puisque la compilation de Metafor requiert un compilateur relativement récent tel que Visual Studio 2012, qui est impossible à installer sous XP (Windows XP étant le plus vieux système auquel on est toujours confronté). On a donc un problème pour générer une version 32 bits qui tourne partout! (les exe's Visual Studio générés sous Windows7-x86 ne sont pas totalement compatibles avec Vista et XP). Précédemment, |
- | * Ca permet de compiler le code avec un **compilateur supplémentaire** (et donc de trouver | + | * Ca permet de compiler le code avec un **compilateur supplémentaire** (et donc de trouver |
* MinGW étant **gratuit**, | * MinGW étant **gratuit**, | ||
- | Ci dessous, je liste les différents problèmes que j'ai dû résoudre pour ce portage. | + | Ci-dessous, je liste les différents problèmes que j'ai dû résoudre pour ce portage. |
===== Compilation des libs ===== | ===== Compilation des libs ===== | ||
Line 18: | Line 18: | ||
Le compilateur est [[http:// | Le compilateur est [[http:// | ||
- | En effet, c'est un peu déroutant au début: avec MinGW, on peut utiliser soit des "MinGW Makefiles" | + | C'est un peu déroutant au début: avec MinGW, on peut utiliser soit des "MinGW Makefiles" |
- | * Les premiers (" | + | * Les premiers (" |
- | * Les seconds ("MSYS Makefiles" | + | * Les seconds ("MSYS Makefiles" |
- | En pratique, il faut malheureusement jongler avec les 2 systèmes, du moins quand on veut compiler les libs. Une lib peut utiliser des "MinGW Makefiles" | + | En pratique, il faut malheureusement jongler avec les 2 systèmes, du moins quand on veut compiler les libs. En effet, une lib peut utiliser des "MinGW Makefiles" |
Cette subtilité comprise, j'ai essayé de ne compiler que ce qui était vraiment nécessaire pour Metafor en partant de l' | Cette subtilité comprise, j'ai essayé de ne compiler que ce qui était vraiment nécessaire pour Metafor en partant de l' | ||
Line 37: | Line 37: | ||
* bison/flex: installé via le synaptic de MSYS. | * bison/flex: installé via le synaptic de MSYS. | ||
- | Pour la batterie, il me manque triangle, tetgen et numpy. Mais comme je ne compte pas passer de batterie avec une version 32 bits, je ferai ça plus tard. | + | Pour la batterie, il ne me manque |
Petite remarque: les fichiers '' | Petite remarque: les fichiers '' | ||
Line 85: | Line 85: | ||
====== Perfs? ====== | ====== Perfs? ====== | ||
- | Quelles sont les perfs de cette nouvelle version? | + | Quelles sont les perfs de cette nouvelle version? |
- | Voilà ce que ça donne sur le cas test du tube. Pour cette première série de tests, je compare " | + | Voilà ce que ça donne sur le cas test du tube. |
- | * win7-msvc-x64: | + | |
+ | **Pour cette première série de tests**, je compare " | ||
+ | * win7-msvc-x64: | ||
* winxp-mingw32: | * winxp-mingw32: | ||
* ubuntu-gcc-x64: | * ubuntu-gcc-x64: | ||
Line 96: | Line 98: | ||
La version ubuntu est la plus rapide (67s), talonnée par la virtualbox win7-visual (71s) et loin derrière, on retrouve la nouvelle version 32 bits (102s). Petit détail amusant: le skyline est plus rapide dans la virtualbox win7 que sous ubuntu. Par contre toutes les autres routines sont plus efficaces sous ubuntu. | La version ubuntu est la plus rapide (67s), talonnée par la virtualbox win7-visual (71s) et loin derrière, on retrouve la nouvelle version 32 bits (102s). Petit détail amusant: le skyline est plus rapide dans la virtualbox win7 que sous ubuntu. Par contre toutes les autres routines sont plus efficaces sous ubuntu. | ||
- | En ce qui concerne la nouvelle version MinGW, le code est plus lent dans toutes les phases de résolution et principalement dans l' | + | En ce qui concerne la nouvelle version MinGW, le code est plus lent dans toutes les phases de résolution et principalement dans l' |
Il faudra donc tester cette version sur un système récent (win7 x64 p expl). Il faudra également faire des tests de comparaison MKL/ | Il faudra donc tester cette version sur un système récent (win7 x64 p expl). Il faudra également faire des tests de comparaison MKL/ | ||
- | Dans un second temps, je me suis demandé si le solveur MUMPS était utilisable avec MinGW puisqu' | + | **Dans un second temps**, je me suis demandé si le solveur MUMPS était utilisable avec MinGW puisqu' |
La série de tests suivante consiste à tester les différents solveurs sur la même machine. Par simplicité, | La série de tests suivante consiste à tester les différents solveurs sur la même machine. Par simplicité, | ||
Line 107: | Line 109: | ||
{{ : | {{ : | ||
- | Il y a visiblement un (gros) problème... On voit bien que la plupart des phases qui n' | + | Il y a visiblement un (gros) problème... On voit bien que la plupart des phases qui n' |
- | Si on regarde la résolution, | + | Si on regarde la résolution |
+ | |||
+ | Par contre, l' | ||
+ | |||
+ | ====== samcef.py ====== | ||
+ | |||
+ | Je me suis rendu compte que la licence actuelle de SAMCEF **ne donne plus accès à GHS3D**. Ca a peut être été dit, mais j' | ||
+ | |||
+ | Conséquence: | ||
+ | |||
+ | Le problème c'est que la manière dont j' | ||
+ | |||
+ | < | ||
+ | |||
+ | Remarque: il n'y a aucune raison de copier un '' | ||
- | Par contre, l' | ||
====== Remarques finales ====== | ====== Remarques finales ====== | ||
- | Cette version a du mal à démarrer (il faut compter entre 5 à 10 secondes pour voir apparaitre le splash screen de Metafor. | + | La version |
+ | |||
+ | Ci-dessous, un aperçu d'un run du " | ||
{{ : | {{ : | ||
- | On voit ci-dessus | + | On voit qu'il y a un gros travail de la part du système pour démarrer le code (la phase rouge au niveau du CPU). Est-ce dû au 32bits? à XP? à la virtualbox? Il faut que je tire ça au clair. |
+ | Pour info, voici le même graphe du même test avec MUMPS: | ||
+ | {{ : | ||
+ | On voit bien que Lilia a ajouté une belle chevelure au graphe de CPU, ainsi qu'un tapis rouge tout le long du calcul. A vue de nez (je n'ai pas ouvert les routines), il y a trop d' | ||
--- // | --- // |
commit/2015/08_12.1439369377.txt.gz · Last modified: 2016/03/30 15:22 (external edit)