hello les geeks !
l’avènement du multicore est proche ! le dual-core devient la norme et le quad core va montrer le bout de son nez à la fin de l’année.
je me posais une questions qu’elle est con: est-il possible d’écrire un code optimisé multi-core qui s’adapte automatiquement au nombre de core de son processeur ? un truc qui fonctionnera bien avec les core2duo et qui fonctionneront encore mieux avec les core… euh… 4quatro B) et qui dans 2 ans fonctionnera encore mieux quand des procos encore plus balèzes sortiront.
Bah l’approche de base c’est : plus t’as de threads concurrents, mieux tu exploiteras un processeur multicore. Après, tu peux faire ça de differentes façons : lancement de nouveaux processus, fork, nouveau threads dans ton processus. C’est assez dur pour application existante de l’optimiser pour le multicore. D’ailleurs AMD travaille sur une technologie integrée au processeurs pour executer un thread sur plusieurs cores en même temps, pas trop de nouvelles depuis un moment mais si ça sort un jour, ça risque de pas mal changer la donne.
Euh non, c’est pas “au plus de threads au mieux”, l’idée pour utiliser le truc au mieux, c’est d’avoir un thread par core. Ceci dit, mieux vaut un peu trop qu’un peu trop peu. Quelques context switches valent mieux qu’un core qui se tourne les pouces. Mais bon, c’est tellement dépendant du contexte qu’il est difficile d’avoir une réponse claire.
Plus de threads qui s’attendent les uns les autres, c’est 50 fois pire que un seul thread qui fait son truc peinard sans etre locké ou embetté. C’est pas rare qu’une appli optimisee au poil pour 2 ou 4 CPU/core, s’effondrent a des performance pire que sur un seul CPU (!) quand on passe a 8 pour donner un exemple.
Et bien il y a interet à vite trouver une solution aux “problèmes” du multi-core :
[quote]Lors de son Intel Developer Forum, le fondeur a levé le voile sur ses travaux en cours, avec en avant-première un prototype de puce intégrant pas moins de 80 cœurs. Cadencés à 3,16 GHz, chacun peut échanger un téraoctet de données par seconde.[/quote] [right]D’après ZDNet
[/right]
Ca fait un peu 40 ans qu’on est sur le probleme B). Y a pas de solution miracle. Les cray et autre super ordinateurs sont depuis des decenies des ordinateurs massivement paralleles, ca a malheureusement ou heureusement c’est selon, rien de nouveau, et il y a pas de truc qu’on decouvrira un bon matin ou tout le monde fera “ha mais oui c’est genial”.