Відповіді:
Кілька процесорів дозволяють вашому комп'ютеру робити буквально дві речі одночасно (замість того, щоб, здавалося б, робити дві речі одночасно, але насправді просто міняти між завданнями дуже швидко).
Кілька ядер однакові. Перевага декількох ядер над декількома процесорами полягає в тому, що вони діляться деякими бітами ЦП, наприклад кеш-пам'ять другого рівня, що дозволяє їм працювати ще ефективніше, якщо вони мають деякі спільні дані. Це робить їх значно дешевшими у виробництві. Одноядерний процесор також займає менше місця, ніж два одноядерних процесора, що є важливим фактором сьогодні, коли кожен переходить на ноутбуки.
Можливо, є деякі відмінності в продуктивності, але ви нічого, ймовірно, не помітите.
Почати слід з багатоядерних та багатопотокових статей у Вікіпедії.
Ну, це про масштабування горизонтально, а не вертикально. За старих часів вони робили процесор швидшим і швидшим. З часом швидкість процесора зросла лише з декількох мегагерців до супершвидкісних до 3 гігагерц. Однак, досягнувши швидкості 3 гігагерца, виробники процесорів виявили обмеження, наскільки вони можуть натиснути швидкість на одному ядрі процесора.
Хоча ця швидкість гонки відбувалася, для тих додатків, які потребували більшої потужності (як, наприклад, сервери та CGI візуалізації ферм), де були представлені материнські плати з декількома розетками. Це дозволило розмістити на материнській платі більше одного процесора (як правило, двох). Операційні системи, які в змозі використовувати декілька процесорів одночасно, можуть запускати програмне забезпечення, яке скористалося цією функцією, розподіляючи навантаження на ці два процесора, тому збільшуючи швидкість виконання.
Швидкий перехід до сьогодні. Межа швидкості процесора дещо досягнута, і замість того, щоб масштабувати вертикально (роблячи це швидше), виробники процесора починають масштабувати горизонтально, розміщуючи кілька ядер на одному мікросхемі. В даний час двоядерні чіпи є дуже поширеними, і незабаром чотирьохядерні ядра стануть еталоном. А тепер уявіть, що ви розмістили два квадроядерні ядра на одній материнській платі. Це означає, що операційна система матиме доступ до 8 процесорів, які працюють на рівні близько 3 гігагерців.
Окрім багатоядерних процесорів, існує також "підроблений" двоядерний процесор, який використовує технологію, відому як "гіпер-нарізка". За допомогою гіпернарізки ЦП емулює наявність двох процесорів, коли насправді присутній лише одне фактичне ядро. Центральний процесор знає, як використати те, що, як правило, простоюється, запланувавши інструкції певним чином, щоб отримати більшу ефективність.
З точки зору розробки програмного забезпечення різниця є порівняно незначною.
Деякі неправильно написані багатопотокові програми можуть випадково працювати на багатоядерному процесорі, але не на багатопроцесорній материнській платі, але я не втрачу надто багато сну через це, оскільки ... ну ... ми говоримо неправильно письмове програмне забезпечення.
Основна відмінність двох сценаріїв для однакової загальної кількості доступних ядер (наприклад, 1x 4-ядерний процесор проти 2x 2-ядерного процесора) полягає в тому, що у випадку багатопроцесорного сценарію зазвичай є більша сукупна пам'ять -смуга. Це означає, що при будь-якому навантаженні, яке займає пам'ять, вам може бути краще з останнім. Однак зауважте, що блокування примітивів насправді може бути дещо повільнішим (залежно від апаратної реалізації), тому алгоритми, що використовують багато синхронізації, насправді можуть погіршувати останні.
Незважаючи на це, я б не переживав за різницю навіть тоді, якщо ви працюєте в тій області, де ця різниця має значення, то ви, швидше за все, вже знаєте про це (знання, що стосується домену).