Salut Patrick,
Le code est multi-threadé ?
As tu testé le code generé sur une machine sur l'autre ?
Car si cela se trouve, ton code fait des erreurs d'ecriture et c'est
lié à l'archi de la machine (cache, nb de core, topologie).
J'ai deja vu ca.
Une astuce, execute le code en serie (OMP_NUM_THREADS=1 si c'est de
l'OpenMP) et valide le code serie vs parallel avant de changer de
machine.
A++
Jerome
On Wed, 13 Nov 2024 16:32:50 +0100
Patrick Dupre <pdupre@???> wrote:
> Bonjour,
>
> Je ne sais si vous avez des idees.
> Mais je ne sais plus dans quelle direction rechercher.
> Voila.
> Un meme programme (gcc/g++) sur 2 machines differentes (i7 et i5) donnent des results
> differents lorsque j'utilise une procedure d'integration de la bibliotheque
> gsl (liee en dynamique, option -lgsl).
> Le Makefile est strictement le meme sur les 2 machines qui sont installees
> avec les memes mise-a-jour (et meme OS).
> Si je n'integre pas, les 2 machines donnent le meme resultats.
> Si je compile sur une machine (A) et que je copie le code sur l'autre (B),
> je resultat est identique a celui de la machine (A).
> Donc, j'en conclue que c'est le code genere par gcc/g++ qui differe selon la machine
> (les tailles sont legerement differentes).
> Pourquoi sur les machines i7 et i5 les codes sont differents ?
> La difference entre les integrales semble etre proportionnelle aux valeurs calulees,
> le facteur etant ~ 1/37000000 (2.7e-8).
> D'ailleurs quel est le bon resultat ?
>
> Ou est l'erreur ?
>
> Merci.
>
>
> ===========================================================================
> Patrick DUPRÉ | | email: pdupre@???
> ===========================================================================
>
>
--
Jérôme Kieffer