|
Bas de page | |
---|---|
Auteur | Sujet : Boost::thread => perte de perf |
Publicité | Posté le 25-11-2011 à 15:50:40 |
Joel F Real men use unique_ptr | quelle qté de donnée par thread, cb de thread ? gaffe au false sharing et au acces cache foiruex |
Lightness1024 | franchement plus simple en openmp ce cas la.
|
T'CHATTE |
|
T'CHATTE | Je viens de regarder un peu le false sharing (du coup je vois mieux le rapport avec MESI) et donc en fait faire des copies locales pour chaque thread pourrait résoudre le problème apparemment ... mais je trouve que la parallélisation perd de son intérêt dans ce cas. Il n'y a pas de méthode un peu plus jolie pour contourner ca ? Et est ce que OpenMP gère ca tout seul ? |
Un Programmeur |
--------------- The truth is rarely pure and never simple (Oscar Wilde) |
Lightness1024 | oui le tout est de juger l'overhead. tu peux aussi faire l'essai en charge pleine (avec 100000) et mesurer le temps pris avec une boucle sans thread, par rapport a ta version 8 threads.
--------------- http://projets.6mablog.com/ |
T'CHATTE | Bon je viens de tester quelques trucs (copie locale, utilisation d'itérateurs, ordre de parcours des vecteurs, ...) mais rien y fait : je pers toujours du temps quand j'augmente le nb de threads ...
|
Un Programmeur | Tu as combien de core? Avoir plus d'une thread par core n'a aucune chance d'etre interessant. --------------- The truth is rarely pure and never simple (Oscar Wilde) |
Lightness1024 | sachant qu'il a aussi raison, a partir du moment où le jeu de donnée dépasse le cache L2 des coeurs, il faut aussi que le bus soit accessible en parallele. ce qui n'est pas le cas sur les quad core Qxxxx par exemple. mais seulement sur les Xeon et les core i7. chez AMD ca l'a toujours été par contre, c'est la raison de la grande adoption des opterons sur les serveurs.
--------------- http://projets.6mablog.com/ |
Publicité | Posté le 28-11-2011 à 12:49:53 |
T'CHATTE | Désolé je n'avais pas vu les réponses
|
in_your_phion | En fait comment est ce que tu mesures que c'est plus lent ? |
T'CHATTE | Avec time. Les tests que j'ai fait duraient une 12-aine de minutes et j'avais environ 35 - 40s d'écart (tout à fait reproductible, à 5s près) quand je faisais avec ou sans thread. |
theshockwave I work at a firm named Koslow | gaffe à ne pas créer tes threads et les détruire àchaque fois que tu en as besoin. Si ca entre dans ta mesure, tu dois pouvoir te débrouiller avec un pool de threads.
Message édité par theshockwave le 22-12-2011 à 00:03:07 --------------- last.fm |
T'CHATTE | oui j'ai fait attention à ça. Ailleurs dans mon code j'ai imposé la condition :
|
theshockwave I work at a firm named Koslow | mmh, c'est sympa de te plaindre de la lenteur de tes threads dans un contexte différent de celui que tu nous présente. Dans ma boule de cristal, je ne vois pas plus de choses que ce que j'ai dit plus haut.
--------------- last.fm |
Sujets relatifs | |
---|---|
Multithread générique | [prog réseaux]serveur multithread et variable globales |
FTP multithread | Multithread/core avec Qt |
[JAVA] Caster un objet a une classe generique ? | SpinnerAdapter générique |
Quelles opérations courantes sont sûres en multithread ? | Templates et tableau générique |
question sur static et multithread | |
Plus de sujets relatifs à : Boost::thread => perte de perf |