Envoyé par
dinobogan
Pour le multi-thread, il y a une multitude d'approches différentes. C'est selon le développeur, selon le problème rencontré, selon les performances attendues, selon les ressources machines....
Tu ne dis rien sur le traitement effectué, mais ton approche de découpage n'est vraiment pas pratique car le code est spécifique pour chaque thread. Quand on commence à multi-threader, c'est parce qu'on a de véritables arguments sur l'apport de performances (en temps, en CPU, en RAM, en ce que tu veux). Dans le cas général, on ne sait pas combien de thread seront utiles pour faire le travail. C'est pratique de modifier facilement le nombre de threads durant la phase de bench.
On pourrais imaginer une solution beaucoup plus souple avec une zone mutex pour incrémenter la première variable "i". Chaque thread prend une valeur de "i" et l'incrémente dans la zone du mutex puis effectue son travail avec les boucles "j" et "k" de 0 à 65. L'avantage de cette technique est que tu peux utiliser pleins de threads, peu importe le nombre. Oui, c'est 65 thread max mais dans la grande majorité des cas, on n'utilise pas autant de threads.
Partager