Je suis l'auteur d'un programme d'othello, disponible ici (y compris le
code source) :
http://abulmo.perso.neuf.fr/edax/4.0.beta/index.htm
Ce programme est écrit en C99 de façon relativement portable et compile
sous Linux, Mac OSX et MS-Windows (testé sous Vista 64 bits et Windows 7
64 bits). D'une manière assez curieuse, que je ne m'explique pas, les
performances sous Windows sont très en retrait par rapport aux autres
OS, avec une baisse de performance de l'ordre de 30%. J'ai testé
plusieurs compilateurs dont Visual C++ 2008 et 2010 (bêta), Mingw64, C
Pelles, PGO (Portland Group),... sans amélioration notable (Visual C++
et gcc sont assez proche, les autres compilateurs sont plus
significativement plus lents).
D'après mes investigations, il semblerait que MS-Windows soit
comparativement assez lent au niveau des Entrées/sorties, mais mon
programme n'est pas très bavard. Pour se chronométrer, il utilise et
surveille fréquemment GetTickCount(), mais j'ai cru comprendre que cette
fonction était plutôt rapide. Le programme est aussi multitâche et peut
faire appel aux fonctions multitâches natives de Windows et utilise
assez souvent les CRITICAL_SECTION. Quelqu'un aurait-t-il une idée de
l'impact de ces sections critiques sur les performances éventuelles du
programme ?
Ou une autre idée qui pourrait expliquer cette baisse de performance
assez importante ?
PS: Si vous voulez tester le programme, il suffit de taper dans une
console :
wEdax -l 60 -h 24 -n <x> -solve problem/fforum-40-59.scr.
en remplaçant <x> par le nombre de CPU/cores que vous désirer allouer au
programme.
Sous Linux remplacer wEdax par lEdax et sous Mac OS X par mEdax.
Avec un QuadCore Q6600 à 2.4Ghz, <x> remplacé par 4, le programme met
près de 13 min. sous Windows et moins de 9 minutes sous Linux.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
nico
Richard Delorme wrote:
Bonjour,
Je suis l'auteur d'un programme d'othello, disponible ici (y compris le code source) : http://abulmo.perso.neuf.fr/edax/4.0.beta/index.htm Ce programme est écrit en C99 de façon relativement portable et compile sous Linux, Mac OSX et MS-Windows (testé sous Vista 64 bits et Windows 7 64 bits). D'une manière assez curieuse, que je ne m'explique pas, les performances sous Windows sont très en retrait par rapport aux autres OS, avec une baisse de performance de l'ordre de 30%. J'ai testé plusieurs compilateurs dont Visual C++ 2008 et 2010 (bêta), Mingw64, C Pelles, PGO (Portland Group),... sans amélioration notable (Visual C++ et gcc sont assez proche, les autres compilateurs sont plus significativement plus lents).
Je suis l'auteur d'un programme d'othello, disponible ici (y compris le
code source) :
http://abulmo.perso.neuf.fr/edax/4.0.beta/index.htm
Ce programme est écrit en C99 de façon relativement portable et compile
sous Linux, Mac OSX et MS-Windows (testé sous Vista 64 bits et Windows 7
64 bits). D'une manière assez curieuse, que je ne m'explique pas, les
performances sous Windows sont très en retrait par rapport aux autres
OS, avec une baisse de performance de l'ordre de 30%. J'ai testé
plusieurs compilateurs dont Visual C++ 2008 et 2010 (bêta), Mingw64, C
Pelles, PGO (Portland Group),... sans amélioration notable (Visual C++
et gcc sont assez proche, les autres compilateurs sont plus
significativement plus lents).
Pour Visual, tu as testé les différents flags genre /O2 pour
l'optimisation ?
Il y a divers articles sur MSDN comme
http://msdn.microsoft.com/fr-fr/library/aa289168(VS.71).aspx
http://msdn.microsoft.com/en-us/library/aa289170(VS.71).aspx
Je suis l'auteur d'un programme d'othello, disponible ici (y compris le code source) : http://abulmo.perso.neuf.fr/edax/4.0.beta/index.htm Ce programme est écrit en C99 de façon relativement portable et compile sous Linux, Mac OSX et MS-Windows (testé sous Vista 64 bits et Windows 7 64 bits). D'une manière assez curieuse, que je ne m'explique pas, les performances sous Windows sont très en retrait par rapport aux autres OS, avec une baisse de performance de l'ordre de 30%. J'ai testé plusieurs compilateurs dont Visual C++ 2008 et 2010 (bêta), Mingw64, C Pelles, PGO (Portland Group),... sans amélioration notable (Visual C++ et gcc sont assez proche, les autres compilateurs sont plus significativement plus lents).
Je suis l'auteur d'un programme d'othello [...] D'une manière assez curieuse, que je ne m'explique pas, les performances sous Windows sont très en retrait par rapport aux autres OS, avec une baisse de performance de l'ordre de 30%.
Pour Visual, tu as testé les différents flags genre /O2 pour l'optimisation ?
Oui. Je me contente actuellement de /Ox /GL. J'ai essayé de jouer avec d'autres réglages, mais sans bénéfice notable.
Le PGO (deuxième lien) n'apporte pas non plus d'amélioration mesurable (avec les autres OS non plus d'ailleurs).
Je ne pense pas que le problème soit au niveau des options de compilation. Entre autre parce qu'avec le même compilateur (gcc) et les mêmes options, j'obtiens des résultats plutôt décevants sous Windows par rapport à Linux ou Mac OS X. Je m'orienterais plus vers des fonctions de la bibliothèques aux performances différentes, ou encore, à des particularités de l'OS incompatible avec mon approche du programme.
Merci néanmoins de votre réponse.
-- Richard
Le 14/11/2009 11:51, nico a écrit :
Richard Delorme wrote:
Je suis l'auteur d'un programme d'othello [...]
D'une manière assez curieuse, que je ne m'explique pas, les performances sous Windows sont très en retrait par rapport aux autres OS, avec une baisse de performance de l'ordre de 30%.
Pour Visual, tu as testé les différents flags genre /O2 pour l'optimisation ?
Oui. Je me contente actuellement de /Ox /GL. J'ai essayé de jouer avec
d'autres réglages, mais sans bénéfice notable.
Il y a divers articles sur MSDN comme
http://msdn.microsoft.com/fr-fr/library/aa289168(VS.71).aspx
http://msdn.microsoft.com/en-us/library/aa289170(VS.71).aspx
Le PGO (deuxième lien) n'apporte pas non plus d'amélioration mesurable
(avec les autres OS non plus d'ailleurs).
Je ne pense pas que le problème soit au niveau des options de
compilation. Entre autre parce qu'avec le même compilateur (gcc) et les
mêmes options, j'obtiens des résultats plutôt décevants sous Windows par
rapport à Linux ou Mac OS X. Je m'orienterais plus vers des fonctions
de la bibliothèques aux performances différentes, ou encore, à des
particularités de l'OS incompatible avec mon approche du programme.
Je suis l'auteur d'un programme d'othello [...] D'une manière assez curieuse, que je ne m'explique pas, les performances sous Windows sont très en retrait par rapport aux autres OS, avec une baisse de performance de l'ordre de 30%.
Pour Visual, tu as testé les différents flags genre /O2 pour l'optimisation ?
Oui. Je me contente actuellement de /Ox /GL. J'ai essayé de jouer avec d'autres réglages, mais sans bénéfice notable.
Le PGO (deuxième lien) n'apporte pas non plus d'amélioration mesurable (avec les autres OS non plus d'ailleurs).
Je ne pense pas que le problème soit au niveau des options de compilation. Entre autre parce qu'avec le même compilateur (gcc) et les mêmes options, j'obtiens des résultats plutôt décevants sous Windows par rapport à Linux ou Mac OS X. Je m'orienterais plus vers des fonctions de la bibliothèques aux performances différentes, ou encore, à des particularités de l'OS incompatible avec mon approche du programme.
Merci néanmoins de votre réponse.
-- Richard
marc
On 13 nov, 21:57, Richard Delorme wrote:
Le programme est aussi multitâche et peut faire appel aux fonctions multitâches natives de Windows et utilise assez souvent les CRITICAL_SECTION. Quelqu'un aurait-t-il une idée de l'impact de ces sections critiques sur les performances éventuelles du programme ?
On 13 nov, 21:57, Richard Delorme <abu...@nospam.fr> wrote:
Le programme est aussi multitâche et peut
faire appel aux fonctions multitâches natives de Windows et utilise
assez souvent les CRITICAL_SECTION. Quelqu'un aurait-t-il une idée de
l'impact de ces sections critiques sur les performances éventuelles du
programme ?
D'après les vieilles docs
(comme http://msdn.microsoft.com/en-us/library/ms810434.aspx )
les sections critiques sont pourtant apparemment rapides..
Le programme est aussi multitâche et peut faire appel aux fonctions multitâches natives de Windows et utilise assez souvent les CRITICAL_SECTION. Quelqu'un aurait-t-il une idée de l'impact de ces sections critiques sur les performances éventuelles du programme ?