Ca vaut le coup de tester OpenMP, ne serait-ce que pour comparer, car d'un autre coté:
-je crois déjà avoir programmé le plus dur pour ma gestion du multi-thread
-j'ai pas besoin de plus
-je peux toujours l'étendre moi-même comme je l'entends
-c'est portable (à condition d'être sous Windows ou d'avoir la libairie pthreads)
-je préfère une solution 100% C++
Dommage qu'OpenMP ce ne soit intégré que dans les compilos les plus récents car malheureusement je n'ai que:
-VC2003
-VC2005 Express
-GCC 3.4.4 (sous Windows). Les versions 4.x ne sont toujours pas disponibles sous Windows (depuis le temps!...)
Par contre j'ai ICL (Intel C++ compiler). La liste ne précise pas qu'elle version d'ICL intègre OpenMP, mais j'ai les versions récentes 8 et 9.
Je me demande quand même pourquoi Intel à pris la peine d'implémenter sa bibliothèque de multi-threading TBB (qui "concurrence" en quelque sorte OpenMP) si vraiment OpenMP était la panacée. TBB intègre des fonctions du genre parallel_for et parallel_reduce, mais est bien plus complète que la mienne à ce niveau (je trouve quand même leur syntaxe lourde).
Si ça te pose pas de problème au boulot, ok. merciPar contre j'ai un Athlon bicore au travail, je lancerai les tests la semaine prochaine. A voir aussi si un bench sur AMD Sempron 3400+ t'intéresse, c'est un monocore, mais ça pourrait permettre d'identifier des différences entre CPU & constructeurs.
PS: Je viens de faire l'essai avec ma version favorite d'ICL, la version 8.1, et OpenMP ne marche pas. Je ferai l'essai avec ICL 9 ou 9.1 (quand je les aurai installés) mais c'est mal parti pour que j'utilise OpenMP
Partager