Effectivement en OpenMP le coût de création des threads est significatif.
La première exécution de cette boucle coûte chère et les suivantes moins chères. Malheureusement même lors de l'appel des boucles suivantes on n'obtient pas un bon speedup pour plus de deux threads (les résultats des boucles suivantes en OpenMP sont assez proche de ceux obtenus avec les pthreads). J'essaierai de poster les temps obtenus en OpenMP dès que j'aurai de nouveau accès à la machine sur laquelle j'ai fait mes tests.
En utilisant des pthreads je ne vois pas de différence entre un premier appel et les appels successifs. Néanmoins c'est la première fois que j'utilise ces pthreads. Est-il possible de garder ces threads "actifs" afin d'accélérer le prochain appel ?
Je vais jeter un coup d'oeuil à hwloc. Je vous tiendrai au courant des résultats.
[^] # Re: creation des threads + cache
Posté par berti . En réponse au message Parallelisation d'une boucle (théoriquement) trivialement parallélisable. Évalué à 1.
La première exécution de cette boucle coûte chère et les suivantes moins chères. Malheureusement même lors de l'appel des boucles suivantes on n'obtient pas un bon speedup pour plus de deux threads (les résultats des boucles suivantes en OpenMP sont assez proche de ceux obtenus avec les pthreads). J'essaierai de poster les temps obtenus en OpenMP dès que j'aurai de nouveau accès à la machine sur laquelle j'ai fait mes tests.
En utilisant des pthreads je ne vois pas de différence entre un premier appel et les appels successifs. Néanmoins c'est la première fois que j'utilise ces pthreads. Est-il possible de garder ces threads "actifs" afin d'accélérer le prochain appel ?
Je vais jeter un coup d'oeuil à hwloc. Je vous tiendrai au courant des résultats.