Envoyé par MarcXP
Voir le message
Basculer les tâches complètement autonomes sur des threads (donc coeurs) séparés est facile, et déjà fait. Mais bien exploiter les coeurs multiples impose de repenser complètement l'organisation des tâches et donc de casser profondément l'organisation de l'existant.
Il faut aussi (et parmis beaucoup d'autres contraintes) analyser les goulots d'étranglement qui seront générés par synchronisations entre threads (= attentes de résultats calculés par un autre thread), par les accès mémoires multiples, etc.
Par exemple, n'oubliez pas que tous les cœurs partagent la plus grosse partie de la mémoire (leur mémoire cache privée est microscopique) et qu'à chaque instant un seul d'entre eux peut y accéder pendant que les autres attendent.
Bref, transformer une appli pour en paralléliser au maximum les tâches est une opération extrêmement lourde. Sinon ce serait déjà fait depuis longtemps !
Commentaire