Table of Contents

Commit 2010-03-18

Début de mon boulot fabuleux.

Modifs

Portage "Intel C++ compiler"

Je suis en train de regarder par où commencer la parallélisation du code. La première étape est une parallélisation sur machine SMP, c'est-à-dire la possibilité d'utiliser plusieurs CPUs sur une même machine. Suivra une parallélisation avec MPI lorsqu'on aura acheté notre super cluster.

Pour la première étape, voici mes premières conclusions:

Bref, j'ai installé Parallel Studio et j'ai compilé Metafor avec le compilateur d'intel. Surprise: ca marche presque tout seul!! (mise à part une chiée de nouveaux warnings).

Au niveau de la batterie, par contre, ça n'a pas vraiment marché tout seul: j'ai dû faire des modifs dans l'élément de contact thermomec du second degré en défo défo, dans la création des matrices défo-défo.

:!: Il reste au moins un BUG: le test newac.tests.enim.enimWear2D plante au pas 324 en optimisé… Il faudra donc le débuguer avant de pouvoir utiliser le compiateur intel pour la batterie (ma batterie est donc toujours VC++).

Suppression Google sparsehash

J'ai remplacé les sets hachés de Google par leur équivalent Qt dans les objets Locinv et DofSet. Ceci dans le but de faciliter la compilation du code. On peut donc supprimer cette lib du projet. Il est toujours possible de compiler sans ces sets (il suffit de supprimer la définition de _WITH_QHASH_). On se retrouve alors avec les implémentations du Visual C++ ou du gcc. Par contre la google hash n'est plus disponible.

Au niveau des perfs, on constate rapidement que les hash de google sont plus légères: les tests paramétriques sont fortement pénalisés (CPUx2!). Pour les autres tests, les diffs ne sont pas énormes (parfois on gagne, parfois on perd). Il faudra voir si les tables de hashage de l'intel c++ sont intéressantes.

Projet

Intel C++

Aucune obligation d'utiliser le compilateur d'intel à la place du Visual C++, d'autant plus que la batterie ne passe pas complètement avec ce compilateur.

Si vous voulez le faire quand même (avec mes encouragements):

Conversion du projet

QHash

Pour utiliser QHash et QSet:

Les projets linux sont déjà modifiés.

→ Faut-il merger _WITH_QHASH_ avec _WITH_GUI_?? … ben c'est ce que je suis en train de me demander… (et tant qu'on y est on mergerait _WITH_ZLIB_ aussi)… A discuter.

Fichiers ajoutés/supprimés

(j'ai supprimé les résultats de la batterie alpha-linux)



Romain BOMAN 2010/03/18 09:00