Réponses:
Plusieurs processeurs permettent à votre ordinateur de faire littéralement deux choses à la fois (au lieu de ne faire apparemment que deux choses à la fois, mais en fait de permuter entre les tâches extrêmement rapidement).
Plusieurs cœurs sont identiques. L'avantage de plusieurs cœurs sur plusieurs processeurs est qu'ils partagent certains bits du processeur, par exemple le cache de deuxième niveau, ce qui leur permet de travailler encore plus efficacement s'ils ont des données partagées. Cela les rend beaucoup moins chers à fabriquer. Un seul processeur double cœur occupe également moins de place que deux processeurs simple cœur, ce qui est un facteur important de nos jours avec tout le monde qui passe aux ordinateurs portables.
Il peut y avoir des différences de performances, mais vous ne remarquerez probablement rien.
Voir cette image qui montre la différence entre Multi Processor, Hyper Threaded et Multi Core:
Vous devriez commencer avec des articles multicœurs et multithread sur Wikipedia.
Eh bien, il s'agit de redimensionner horizontalement plutôt que verticalement. Dans le passé, ils rendaient les processeurs de plus en plus rapides. Au fil du temps, la vitesse du processeur est passée d'une poignée de mégahertz à des vitesses allant jusqu'à 3 gigahertz. Cependant, lorsque la vitesse de 3 gigahertz a été atteinte, les fabricants de processeurs avaient trouvé une limite à la mesure dans laquelle ils pouvaient pousser la vitesse sur un seul cœur de processeur.
Pendant cette course à la vitesse, pour les applications qui avaient besoin de plus de puissance (comme les serveurs et les fermes de rendu CGI), les cartes mères CPU multi-socket ont été introduites. Cela a permis de placer plus d'un processeur (généralement deux) sur la carte mère. Les systèmes d'exploitation qui pouvaient utiliser plusieurs CPU à la fois pouvaient exécuter des logiciels qui tiraient parti de cette fonctionnalité en répartissant la charge sur ces deux CPU, augmentant ainsi la vitesse d'exécution.
Avance rapide à aujourd'hui. La limite de vitesse du processeur est quelque peu atteinte et au lieu de se mettre à l'échelle verticalement (ce qui la rend plus rapide), les fabricants de processeurs commencent à évoluer horizontalement en plaçant plusieurs cœurs sur une seule puce. Actuellement, les puces dual core sont très courantes et bientôt les quad core seront la norme. Imaginez maintenant que vous aviez placé deux cœurs quadruples sur une seule carte mère. Cela signifierait que le système d'exploitation aurait accès à 8 CPU, tous fonctionnant à environ 3 gigahertz.
Outre les processeurs multicœurs, il existe également un «faux» processeur double cœur qui utilise une technologie appelée «hyper-threading». Avec l'hyper-threading, le CPU émule la présence de deux CPU quand il n'y a en réalité qu'un seul cœur réel présent. Le CPU sait comment utiliser ce qui serait normalement un temps d'arrêt en planifiant les instructions d'une manière spécifique, pour gagner en efficacité.
Du point de vue du développement logiciel, il y a relativement peu de différence.
Certaines applications multi-thread incorrectement écrites peuvent accidentellement fonctionner sur un processeur multi-core, mais pas sur une carte mère multi-processeur, mais je ne perdrais pas trop de sommeil à ce sujet, car ... eh bien ... nous parlons incorrectement logiciel écrit.
La principale différence entre les deux scénarios pour le même nombre total de cœurs disponibles (par exemple, 1 processeur 4 cœurs contre 2 processeurs 2 cœurs) est que dans le cas du scénario multiprocesseur, il y a généralement une plus grande mémoire agrégée -largeur de bande. Cela signifie que pour toute charge de travail gourmande en mémoire, vous pouvez être mieux avec ce dernier. Notez cependant que les primitives de verrouillage peuvent en fait être un peu plus lentes (en fonction de l'implémentation matérielle), de sorte que les algorithmes qui utilisent beaucoup de synchronisation peuvent en fait être moins performants sur ce dernier.
Même ainsi, je ne m'inquiéterais pas trop de la différence même alors, car si vous travaillez dans un domaine où cette différence est importante, vous le savez probablement déjà (connaissances spécifiques au domaine).