Bonjour,
J'ai multi thread� certaines parties d'un programme d'astronomie que je maintiens et dont certaines boucles de calculs �taient faciles � parall�liser. (simple grosse boucle for avec � l'int�rieur des calculs ind�pendants) J'ai donc utilis� un thread pool pour cela, adapt� � mon processeur et c'est g�nial, la partie que j'ai thread� va plus vite c�d qu'il faut moins de temps d'ex�cution pour r�aliser la tache demand�e. (sur un 4 core, je gagne entre 30% et 40% de temps d'ex�cution) Et j'en suis tr�s content car c'�tait le but initial de mon travail.
avant:
Pour chaque frame
- Fonction1
- Fonction2
- Fonction3
- Fonction4
- Fonction5
- Fonction6
- Fonction7
- Fonction8
- Fonction9
- Fonction10
Fin pour
maintenant:
Pour chaque frame
- Fonction1
- Fonction2 thread�e
--- un thread
--- un thread
--- un thread
--- un thread
- Fonction3
- Fonction4
- Fonction5
- Fonction6 thread�e
--- un thread
--- un thread
--- un thread
--- un thread
- Fonction7
- Fonction8
- Fonction9 thread�e
--- un thread
--- un thread
--- un thread
--- un thread
- Fonction10
Fin pour
J'ai environ 50 grosses fonctions et j'en ai parall�lis� 4. (forc�ment les plus gourmandes en temps)
Sauf que j'ai remarqu� apr�s que tout le reste de mon programme mettait plus de temps � s'ex�cuter. Je veux dire par la que les parties non thread�es, qui ne sont pas pas du tout li�es � ma partie thread�e s'ex�cutent entre 5% � 60% moins vite...
J'ai fais de nombreux tests de comparaison (50x, chacun, dans des conditions strict identiques) avant de vous �crire ce message. J'ai utilis� pour cela std::chrono afin de d�terminer le temps mis � l'ex�cution de toutes mes fonctions, thread�es ou non.
Aussi je suis perdu. Je ne vous ait pas mis de code car il y en a trop � lire pour rentrer dans le projet.
Est ce que ce que je vous d�cris peut exister (thread rapide mais reste devient plus lent) ou c'est moi qui ait fait une impl�mentation bancale ?
Ce sympt�me, s'il existe, a-t-il un nom ? (que je puisse demander � Google de m'aider !)
Merci pour votre aide !
Cordialement
Partager