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.
--
Richard
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
> 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.
Merci n�anmoins de votre r�ponse.
--
Richard
D'après les vieilles docs
(comme http://msdn.microsoft.com/en-us/library/ms810434.aspx )
les sections critiques sont pourtant apparemment rapides..