Ядра процесора: чим більше, тим краще?


69

На даний момент у мене є двоядерний процесор на роботі та чотириядерний вдома. Я помітив, що обидва ПК досить рівні, що стосується запуску програм / серфінгу в Інтернеті.

Різниця, яку я бачу, полягає в тому, що мій двоядерний - 2,8 ГГц, а чотириядерний - 2,4 ГГц.

Чи краще мати двоядерний з швидкою тактовою частотою або чотирьохядерний з посередньою тактовою частотою?


5
"Швидкий" і "посередній" відносні. У вашому випадку квадроядер буде краще, оскільки різниця в тактовій частоті становить лише 400 МГц. Однак двоядерний 3 ГГц краще, ніж чотириядерний 1,5 ГГц, здебільшого.
Саша Чедігов

Не використовуйте ГГц для порівняння процесорів, використовуйте деякі результати тесту на швидкість / навантаження для порівняння ефективної швидкості процесора. Двоядерний процесор 3 ГГц може бути повільнішим, ніж 2,4 ГГц i7 (у i7 немає передньої шини, ...) ...
Ben

2
@Ben, повинно бути очевидно, що це була б однакова архітектура процесора (наприклад, 45nm Core 2 Duo vs Quad).
Mircea Chirea

Відповіді:


53

ПРИМІТКА. Ця відповідь була написана 8 років тому. Паралельне програмування з тих пір стало більш актуальним. Ймовірно, це пов'язано з властивими обмеженнями тактової частоти та швидкими наближеннями до розмірів транзистора.


Ваша основна проблема - це програмне забезпечення, не написане для багатоядерних.

Подивіться чудову статтю Джефа Етвуда про вибір двоядерного або чотирьохядерного .

для більшості програмного забезпечення ви потрапляєте до точки зменшення віддачі дуже швидко після двох ядер. У Quad-Core Desktop і Diminishing Returns я поставив під сумнів, наскільки ефективно сьогоднішнє програмне забезпечення може реально використовувати навіть чотири ядра процесора, набагато менше неминучих восьми і шістнадцяти ядер процесора, які ми побачимо через кілька років.

На вас тут відповіли (виділіть скопійовано зі статті Джеффа),

Однак тут були деякі сюрпризи, такі як Excel 2007 та налаштування "одночасних операцій" Lost Planet. Можливо, інженерія програмного забезпечення з часом перейде до того, що тактова частота має значення менше, ніж паралелізм. Або в кінцевому підсумку це може бути неактуальним, якщо нам не вдасться зробити вибір між більш швидкими тактовими частотами та більшою кількістю ядер процесора. Але тим часом тактова частота перемагає більшу частину часу. Більше процесорних ядер не краще автоматично . Типовим користувачам буде краще з найшвидшим двоядерним процесором, який вони можуть собі дозволити.


Питання автобуса передньої сторони (цей термін мене завжди забавляв).
З Негалемом все змінюється ... як говорив ArsTechnica минулого року.

Закон Мура змусив дизайнерів процесорів бентежити транзисторне багатство, і ніде це не видно, ніж у 45-нм-процесорі Nehalem від Intel. Дебютувавши в 4- і 8-ядерних варіантах пізніше цього року, Nehalem пакує тонну обладнання в один процесорний гніздо. (Ранні цифри ставлять кількість транзисторів чотирьохядерного Nehalem в 781 мільйон; жодних цифр для 8-ядерної моделі ще не з’явилося.) Але намагатися подати все це обладнання на існуючу архітектуру передньої шини платформи Intel було б глупо. Отже, що не менш важливо, Нехалем також звучить давно назрілим колінцем смерті для архітектури позитивно-геріатричної шини переднього фронту від Intel.

Корінна зміна ситуації в пропускній здатності системи Intel, що представляє новий QuickPath Interconnect (QPI) від Intel, є, мабуть, найбільшим фактором, що формував дизайн Негалема. Між QuickPath та інтегрованим контролером пам'яті Nehalem, процесор Nehalem отримає доступ до безпрецедентного обсягу сукупної пропускної здатності, особливо в двох- і чотирьох сокетних реалізаціях.

AMD перемістив контролер пам'яті в процесор раніше і використовував Hypertransport.


3
Інша проблема, яку слід розглянути, - це ефективність автобуса на передній стороні При такій кількості ядер, стільки пам’яті та таких великих програм доступ до пам'яті стає критичним! Якщо процесору доведеться не вдатися до основної пам'яті, це зашкодить продуктивності. Чим більше ви багатозадачність, тим більше шансів, що це теж станеться, незалежно від того, наскільки непристойно великим є кеш чіпів.
geoffc

1
За 8 років з моменту відкриття цього питання в 2009 році все змінилося. Тепер програмне забезпечення набагато краще скористатися багатьма ядрами, і ця тенденція буде тільки продовжуватися.
Контанго

1
@Contango Погодився, цю відповідь потрібно оновити, щоб відобразити сучасні тенденції.

18

На мій досвід, велика користь від продуктивності від одного до двох ядер. Раптом одна програма з високим процесором не замикає вашу машину і не робить її не надто повільною. Масова різниця.

Але два-чотири? Для 99% людей це не змінить. Вам доведеться запускати багато програм одночасно або використовувати програми, які можуть скористатися більш ніж двома ядрами (і реально їх не так багато). Деякі медіа-кодери приходять до тями.

У цьому відношенні є також різниця між Intel Core 2 і AMD Phenoms. AMD використовує Hypertransport, який є протоколом «точка-точка», тому кожне ядро ​​має виділену пропускну здатність. Intel Core 2s (але не Core i7s та інші процесори на базі Niehalem) використовують шину передньої сторони, яка має спільну пропускну здатність, щоб у вас було більше ядер, що конкурують за ту саму пропускну здатність.

Це потенційно може зробити одне і те ж чотирьохядерне годинникове (в незначній мірі) повільніше за деяких обставин. Співвідношення ціни та якості все ще має подвійні ядра IMHO. За словами, у мене є чотирьохядерний.


1
Nehalem використовує QPI (QuickPathInterconnect), який знаходиться в тому ж парку, що і Гіпертранспорт.
nik

10

Мені подобається, як Дональд Кнут підсумовує це :

Мені це здається більш-менш схожим на те, що у дизайнерів апаратних засобів не вистачає ідей, і що вони намагаються перекласти провину за майбутнє зменшення закону Мура на розробників програмного забезпечення, передавши нам машини, які працюють швидше лише на кількох ключові орієнтири! Я взагалі не здивуюсь, якщо ціла багатопотокова ідея виявиться флопом, гіршою за підхід "Itanium", який повинен був бути таким приголомшливим - поки не з'ясувалося, що бажані компілятори в основному неможливо написати .

Дозвольте сказати так: За останні 50 років я написав понад тисячу програм, багато з яких мають значні масштаби. Я не можу придумати навіть п'ять програм, які були б помітно розширені паралелізмом чи багатопоточністю. Напевно, наприклад, кілька процесорів не допомагають TeX.

Для деяких застосувань дуже просто скористатися декількома ядрами. Але деякі інші програми від них ніколи не отримають користі, тоді як інші можуть отримати користь, якщо розробники їх оптимізують (що дуже важко).


4
Взагалі я погоджуюся, що багатоядерні не допоможуть самій TeX. Але це буде великим виграшем для графічного редактора TeX, який неодноразово викликає TeX для оновлення дисплея під час редагування документа.
KeithB

3
Це одне з тих місць, де моє серце йде за Кнут, але мій розум зовсім не згоден.
nik

5

Для свого основного робочого столу у свого роботодавця я використовую двоядерний чотирьохядерний апарат Xeon з 8 ГБ оперативної пам’яті.

Коли я програмую, і в мене є Internet Explorer, Chrome, TweetDeck, Visual Studio 2008 (або 2010) та локальний екземпляр Sql Server Express ... все гуде разом.

Порівняно, раніше у мене було подвійне ядро, і все почало б сканувати лише за допомогою запущених Visual Studio, Chrome та Sql Express.

Справа в тому, що ви робите з машиною. Якщо ви є користувачем енергії, який буде редагувати відео, тривимірне моделювання або програмувати зі значними ресурсами .. тоді так, вам буде потрібно чотирьохядерний і багато оперативної пам’яті.


1

Для щоденного використання та програм, які не оптимізовані багатоядерними, швидкий двоядерний битиме повільніше чотирьохядерний.

З плином часу і належним чином багатопотокові програми стануть нормою чотирьохядерних ядер висуваються вперед.

З точки зору вашої доларової перспективи, двоядерні сердечники все ще мають зручну перевагу.


1

Це залежить. Якщо ви робите речі, які краще використовуватимуть кожне ядро ​​4 ядра, то краще (редагування відео, візуалізація тощо). Більшість людей на даний момент краще знайдуть два швидких ядра, оскільки написано не так багато додатків, щоб повною мірою використовувати 4 ядра


1

Зауважте, що останні процесори i7 можуть фактично збільшувати тактову частоту на активних ядрах, коли не всі вони потрібні; Наприклад, якщо у вас чотирьохядерний на частоті 2,4 ГГц, але для запуску програмного забезпечення потрібні лише 2 ядра, воно може автоматично набирати частоту до 2,8 ГГц (не фактична цифра, лише приклад).

І останнє покоління i7, я думаю, може створити 3 або 4 бункера, якщо потрібні лише одне або два ядра. Таким чином, він може не закінчитися таким самим вигідним, як це є зараз ...


1

За інформацією Anandtech.com :

Це все зводиться до TDP мікросхеми або до точки термічного проектування. Чим більше TDP обмежена платформою, тим більше ви можете виграти від Turbo режиму Intel. Дозвольте сказати іншим способом; для того, щоб встановити чотири ядра в TDP 130 Вт, кожне ядро ​​повинно працювати з меншою тактовою частотою, ніж якщо б у нас було одне ядро ​​в тому ж TDP.

При більш високих TDP, як правило, достатньо теплового запасу для роботи окремих ядер досить високо. При нижчих TDP виробники процесорів повинні здійснювати компроміс між кількістю ядер та їх тактовою швидкістю - саме тут ми можемо повеселитися.

Це все в контексті необхідності вибору між ядрами (або потоками) та частотою серцевини.


Це буде більш доречним для розігнання інтересів? Гарна стаття все одно.
nik

0

У вашому випадку чотириядерний буде краще. Пам'ятайте, чим більше ядер у вас є, тим більше паралельної обробки ви можете зробити. Таким чином, у вашому двоядерному ядрах ви зможете запустити один додаток швидше, ніж на квадратику, але квадратик може запустити 4 додатки швидше, ніж у вас подвійний. Крім того, якщо додаток написано для обробки паралельно (багатопотокове), програма буде працювати краще в багатоядерній архітектурі.

Це все відносно, хоча чотириядерний, що працює на 100 МГц, не збирається виконувати двоядерний 4 ГГц. Взагалі кажучи, чим більше ядер, тим краще.


Ви припускаєте, що програма, яка може працювати на двох ядрах, також зможе скористатися чотирма ядрами. Це не завжди так.
nik

@nik Ні, я ні, я заявив, що багатопотокове додаток буде краще працювати в багатоядерній архітектурі. Я нічого не вказував про пропорційне збільшення над кількістю ядер у вас.
Йосип

0

Залежить від того, що ви робите, та можливостей вашої ОС та додатків.

Якщо у вас легка ОС та працює одне додаток, пов’язане з процесором, яке може використовувати лише один процесор, то кращий вибір будуть двома процесорами з більшою швидкістю.

В іншому випадку, якщо ОС може ефективно запланувати всі ядра, і ви запускаєте багато додатків або додатків, які можуть використовувати більш ніж один процесор, більш повільний чотирьохядерний, тоді можна було б очікувати кращих показників для зниження енергоспоживання і, отже, меншої віддачі тепла.


0

Якщо ви робите багато кодування відео, 3d-рендерінга або розподіляється вихідний код, то чим більше ядер, тим краще. Під час переміщення від 1 до 2 до 4 до 8 ядер ви побачите помітну різницю в продуктивності для цих типів додатків.

Інакше запущені стандартні програми дійсно не отримають користі від більшої кількості ядер. Навіть ігри справді так багато не використовуватимуть декілька ядер. IMO, вам краще витратити гроші на кращу відеокарту.


0

Залежить.

Дуже так.

Ви можете легко знайти чотирьохядерний, використовуючи лише два ядра. Частково це стосується ОС та дизайну програмного забезпечення. Тим більше, вони все ще діляться всім іншим, зокрема пам'яттю, диском та пристроями.

Ви знаєте, що ОС не завантажуватиметься (помітно) швидше, і веб-сторінки не завантажуватимуться швидше (вони можуть малювати швидше).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.