Débat: processeurs Dual Core ou Quad Core?

C’est marrant.

Il n’y a pas si longtemps que ça on avait exactement les meme schémas de discussions entre mono-core et dual-core.
et c’etait exactement les mêmes arguments qui tombaient dans un sens comem dans l’autre.

Z’avez pas l’impression de vous répéter ?

tu a raison le poilu
se sera pareil avec un 4 core ou 8 core etc… :sleep:

Sauf que si toutes les applis étaient optimisées multicoeurs et pas juste 2 coeurs ou 4 coeurs on ne se poserait sans doute pas la question. Après c’est sûr qu’il y a une limite dans le nombre de threads par appli, mais se contenter de 2 ou 4 juste parce que les 8 coeurs n’existe pas encore c’est un peu réducteur :neutre:

Les processus ça ne se multiplie pas comme les petits pains :neutre:

Si les mecs avaient trouvé le moyen magique de générer autant de processus que de cœurs d’execution ils l’auraient fait depuis longtemps.
Sauf que pour l’instant on sait à peine séparer quelques processus qui peuvent l’être (par ex l’IA et le moteur graphique d’un jeu, ou le correcteur d’orthographe de word).
Et je doute qu’on puisse facilement aller au-delà de 4 dans les processus qui n’ont jamais été vraiment prévu pour.
Il suffit de voir, les appli pour lesquels c’est “facilement” faisable le font depuis des lustres et même avant l’apparition des multicoeurs (Rendu3D, calcul scientifique, serveur BdD, etc), donc ce n’est pas non plus comme si on partait de rien. C’est juste que c’est bien plus compliqué que ce qu’AMD et Intel veulent nous faire croire.
Il ne faut pas non plus focaliser sur le tout parallèle, parfois le parallèle est une perte de temps totale: attente d’un processus sur l’autre, séparation des traitements entrainant un besoin de communication supplémentaire entre cœur (malgré toutes les optimisations des derniers CPU de ce type, ça reste des latences supplémentaires), etc.

Le problème est donc global et est le même qu’à l’époque des premier Double-cœur: Qu’est-ce qui peut-être mis en parallèle pour que l’on y gagne ? Tout ce qui répond à cette question sera alors à même d’exploiter 2, 4, 8 ou 128 cœurs s’il le faut.

La programmation multithread ce n’est pas magique, ça s’apprend, tous les algos ne sont pas “multithreadable” mais c’est quand même souvent le cas et je pense que c’est le cas en physique. Là où je bosse on a réussi à fortement paralléliser un algo qui n’était pas facilement parallélisable, et le nombre de threads est ajustable (et fonction du nombre de coeurs de la machine). Je pense que pour la physique d’un jeu vidéo où les calculs sont très répétitifs (plus ou moins les mêmes pour chaque objet je suppose) ça doit être facilement faisable.

Le problème, et je m’en suis rendu compte depuis que je bosse, c’est que peu de personnes maitrisent réellement et de manière efficace la programmation parallèle. :confused:

Ce n’est pas ça faire du multithread, ça c’est facile et ça ne remet pas en cause les algos maison.

Non, mais tu parles d’applis qui tournent depuis longtemps sur des machines professionnelles très puissantes souvent multiprocesseurs, donc les développeurs connaissent très bien la programmation parallèle.

Bien sûr, mais c’est comme tout, ça s’apprend, c’est surtout une manière de penser les algos.

Ca arrive quand c’est mal fait justement, maitriser la programmation parallèle suppose de maitriser les systèmes de synchro entre threads, comment les rendre efficaces, comment s’en passer (car moins il y en a mieux c’est), savoir bien utiliser des sémaphores et autres mutex, gérer les deadlocks…

Ca va prendre du temps, mais les choses évoluent petit à petit (le truc c’est que les développements sont plus longs ce qui est souvent incompatible avec la logique commerciale dans le monde du jeu vidéo qui consiste à sortir le jeu le plus rapidement possible quitte à le patcher ensuite)
Edité le 28/08/2008 à 16:09

Merçi pour toutes ces précision forts appréciables de notre culture informatique ! Car là a rentrer dans le domaine de la programmation, thread etc…même si je comprend le principe, ça reste du charabiat !

Ceci étant dit… Almalexia tu dit que “moins il y en a mieux c’est” : donc c’est pas un mal si le Nehalem se dote du système d’overclocking automatique! Quand l’application demande 2 coeurs max, les deux autres s’éteindront pour s’ajouter au 2 premiers :super: et ainsi créer deux coeurs performants!

Après est-ce que cela sera bien gérer … :yeux4:

Je parlais des systèmes de synchro entre threads, pas des threads :wink:

Bon après désolé pour la dérive par rapport au sujet initial :jap: (mais avec Le_poilu on aime bien partir dans des débats passionnés :D)
Edité le 28/08/2008 à 16:19

En faite je me demande si a l’apparition des proco 6 cores et 12 cores de chez amd seront utile en 2009 et si surtout on sera capable de les utiliser. Pour l’instant on a les duals core qui sont plutot en tête et qui occupe une bonne place sur le marché :o mais on annonce que les quads sont l’avenir ( d’ailleur je suis partit sur un 9950be pour ca :stuck_out_tongue: ) enfin on a pour l’instant pas trop de réponse sur les applications multi thead mais vu que certain calcules ont besoin qu’un autre calcule est terminé pour pouvoir se terminé lui même ca risque d’être handicapant :o

Il n’y a pas tant de dérive que celà, même si on touche là aux technique de programmation, ça reste dans la logique du multithread / milticoeur. Et puis, je préfère voir une discussion là dessus plutôt qu’un truc réducteur du style “le dual c’est mieux que le quad pour les jeux”. :jap:

Après, je crois effectivement que comme l’a dit almalexia, c’est surtout un problème de fond, on en reviendra toujours au même truc:

L’évolution logicielle est d’une lenteur assez incroyable (il y a une raison, je vais y venir), alors que les cpu, cartes graphiques et autres sont régulièrement plus puissant on se rend compte que les logiciels n’utilisent jamais toutes les possibilités du matériel (c’est vrai pour les cpu dont les plusieurs cores ne sont pas réellement exploités, mais c’est vrai aussi pour les instructions 64 bits par exemple.).

Ensuite, effectivement il y a trois “petits” soucis principaux (du moins selon moi, il y en a surement d’autres qui ne me viennent pas à l’esprit):

  • Le premier, comme l’as dit Almalexia, c’est que les techniques de programmation (et surtout la manière de “penser” la programmation) sont différentes pour faire du “vrai” multithreading efficace et là dessus, sauf dans certains domaines bien spécifiques (calcul 3d, scientifique, etc … - Mais cela a été dit - ) les développeurs n’en sont qu’au début.

  • Le deuxième, évoqué lui aussi par Almalexia, c’est le temps de développement des programmes (et notamment des jeux) qui rend délicat le changement de technique de programmation dans le but d’améliorer le multitaches par exemple dès lors qu’un projet est commencé.

  • Ensuite, et c’est le troisième point, c’est assez simple à comprendre, l’un des autres grand freins à l’évolution logicielle selon moi c’est la compatibilité, ou plutôt la rétro compatibilité. (Et elle existe dans les deux sens aussi bien matérielle que logiciel, mais restons sur le soft pour l’instant).
    C’est bien simple à comprendre, lorsque sort une nouvelle version de Windows (par exemple mais c’est l’exemple le plus frappant), il faut bien entendu que la nouvelle version soit compatible le plus possible avec les logiciels existant (c’est logique bien sur), mais le fait d’assurer cette compatibilité fait que parfois les développeurs se retrouvent bien embarrassés avec des parties de codes obsolètes et qui gênent les développements de codes plus évolués.

Pour ce dernier point, un exemple Windows 95 / 98 ne prenait pas en charge 2 cpu (bon il y avait de toute manière le point commercial, mais passons.) parce que la compatibilité MSDos (le fameux mode réel qui se chargeait avant Windows) l’en empêchait.
Et c’est comme ça pour bien des points aujourd’hui encore que ce soit pour la prise en charge matérielle ou logicielle.:jap:

Moi je dit le dual quad-core [:shy]

[:tbirdtheyuri]

je sors :paf:

sans déconné, ca dépend ce que l’on fait avec un PC… c’est sur que un photoshop + illustrator, un petit quad serait mieu :paf:

Faire un petit post-it pour expliquer à quoi sert le cache, le FSB, bus speed … et la différence dual-quad les + et les -. Ca ne serait pas possible ?

Je pense que tout est dit ! :smiley:
:super: ton post.
(c’est pas ironique hein, je clap my hands chez moi , c’est clair, net et précis et totalement imparrable.)

Pour ceux qui m’accusent de fanatisme : non, je ne le suis pas =p j’ai l’esprit ouvert, pour preuve, si quelqu’un vient me demander une config pour faire beaucoup de rendu 3D, je leur conseille volontier un Q6600, ou mieux, un Q9550 (Le Q9450, avec même pas 10€ de différence sur materiel.net, est plus vraiment de la partie). Mais si l’utilisation principale est le jeu, je vois pas pourquoi j’irai conseiller un Q6600 :neutre: Juste pour comparer, dans le PCU n°36 de Juillet/Août 08, on a eu droit à un comparatif d’à peu près tous les procs actuellement sur le marché, et pour ce qui est de l’encodage vidéo, un E8400 meilleur qu’un Q6600 pour encoder des Divx/Xvid, et moins pour de l’encodage H264 sous Mainconcept (genre 20 secondes sur 110, pas de quoi fouetter un chat, les deux sont excellents). Pour la production Photoshop CS3/Winrar, bah, contrairement aux idées reçus, aucun gain avec plus de 2 cores : un E8500 est meilleur qu’un Q9550 sous winrar, et légèrement moins bon sous Toshop. Enfin, pour le rendu 3D, c’est vraiment bien multithreadé : un “petit” Phenom X4 9500 (celui avec le bug du TBL là) est meilleur qu’un E8500.

Donc oui, le quad est utile, mais seulement pour certains domaines.

PS : même dans Supreme Commander, un Q6600 ne bat pas un E8400 (+2 FPS en faveur du E8400). Donc à moins de voir des quad à même fréquence qu’un dual et le tout à un prix pas trop élevé (par exemple, +33% me semble raisonnable, là c’est plus du +100% …), les quad ne sont pas encore prêts à débarquer massivement dans des machines à destination de gamers purs.

Déja, le PCU 36 est à conseillé à tous ceux qui veulent un bon gros comparatif de tous les procos du marché, ou presque.
Je confirme ces chiffres, ils sont véridiques.
Mais ça en revient à ce qu’on dit depuis le début, le E8400 gagne le duel avec le Q6600 sur la plupart des applis, et donc, sur court/moyen terme il est plus interessant d’acheter ce type de processeur.
D’un autre côté, les applications utilisants plus de 2 core vont se multiplier (que d’optimisme ^^") et la durée de vie du Q6600 s’allongera.

Ce qui m’amuse ce sont les différences généralement insignifiante entre Quad et Dual sur la plupart des applis. Il est clair que y a de gros efforts à faire. Mon E8200 non O/c arrive au même niveau que le Q6600 dans bien des cas (à 1% prêt quoi…), alors qu’il n’a que deux coeurs 2.66Ghz, contre 4 pour l’autre (sans parler des différences de gravure etc). C’est quand même triste qu’a fréquence égale la différence soit si mince.

Avec les années de développement des logiciels, le soucis c’est qu’il faudra attendre que les quad soient bien implantés pour que des développeurs commencent DES LE DEPART à coder pour ces procos. Dans 2 ans, les jeux qui sortiront n’enen tireront pas forcemment partis, puisqu’au début de leur développement les quad n’étaient pas majoritaires.

Conclusion ; On achète tous des Octo dès l’année prochaine pour avoir des programmes optimisés Octocore dans 5 ans :D:MDR

+1 avec toi, mais précisons un peu pourquoi il n’y a pas 36.000 prog multicoeurs. Codés pour des CPU à X Core c’est difficile. Vous savez tous que le processeur attribue à une adresse quelque chose, mais si le coeur 1 attribue à l’adresse 1024 le chiffre 2 et que le coeur 2 prend le 2, fait une opération avec et re-stocke le résultat (10 par exemple) toujours à l’adresse 1024, et là, le coeur 1 a besoin du 2 qui était dans 1024, et il trouve 10 o_O! Erreur!!!
Donc codé des progs multicoeur c’est imaginés des moyens de communication, de stockage et de partage d’adresse mémoires, de variables entre les différents coeurs. Quand il n’y a que 2 coeurs, c’est déjà chaud mais quand il y en a 4 :s

Voila, j’espere vous avoir un peu éclairée!

Lol et bien résultat des courses : achetez du 2 coeur :super: C’était déjà la même rengaine entre les CPU mono et les double cœurs lors de leurs annoncent… Ce qui me fera rire (ou pas), c’est les gens qui se dise payer un E8400 maintenant à prix très intéressant :slight_smile: alors que bcp le changeront dans moins d’un an…pour un quad! Quel investissement! => Les Core 2 duo de maintenant c’est de la performance en fin de cycle de vie…

Je me demande prk Intel et AMD sort des QUads … ils sont fous !!! : " attentions les jeux ne sont pas optimisés pour 4 cœurs :heink: " Décidément vu les merveilles qu’ils nous sortent, ils sont bien à plaindre les programmeurs de jeux vidéos ! Criez au scandale, faite un procès pour que l’on se stabilise au 2 coeurs :super:

Remarque moi j’ai pas à me plaindre avec mon simple cœur : Athlon Xp 2600+ :smiley:

Comprendront ceux qui veulent comprendre :slight_smile:
Edité le 29/08/2008 à 21:20

Peut-etre parce qu’il n’y a pas que le jeu vidéo dans la vie et qu’un PC ça peut servir à plein d’autres choses :sarcastic:

Le débat entre mono/dual et dual/quad est différent à mon avis. À l’époque, je comprend même pas comment on pouvait conseiller le mono, le dual apportant un gain de réactivité en multi-tâche (essayez de lancer guild wars tout en surfant sur internet avec un monocore, vous comprendrez votre douleur Xx). Là, tout n’est question que de performance, le dual étant devant le quad dans la majorité des applications, il n’y a pas d’intérêt particulier au quad …

PS : mettre 150€ maintenant dans un Q6600, pourquoi pas … mais pourquoi mettre 150€ dans un processeur qui n’est même pas le plus performant pour son prix ? (en dehors du rendu 3D, ok, je le concède). Autant profiter à fond de son E8400, et passer à un quad i7 si on en a envie dans un an.

Quelle phrase saillante…le jeux apposé à la vie wouahhh :super: Quel est le rapport ?

Mais sur le principe, oui tout a fait le Pc sert à plein d’autre choses : et vu l’état de ma config je suis le premier à en être témoin :smiley: : m’amuse follement en ce moment avec Audiosurf 8)

Oui mais pourquoi changer complètement de platforme dans un ans, si tu achète un nouveau pc présentement???
Tu changerais carte mère, processeur et mémoire dans un ans???
Logiquement non!!! En tous cas la plupart des gens, non!!!:neutre:
Habituellement, une configuration peut durer 3ans a peu pret, avec peu-etre un changement de carte graphique!!!
Donc a ce moment la, je me dis pourquoi pas prendre tous de suite un quad, et être tranquile.
Et le Q6600, s’overclock a 3,2ghz sans forcer, pour le moment sais plus que suffisant… même si moi a stock, il ne fesait pas laguer mes jeux!!! Dans le pire des cas, j’avais 65fps au lieux de 70fps…:neutre: