Боюся, що відповідь все ще є, як це було завжди, "це залежить від того, що ти робиш".
Так, зменшується віддача від додавання все більше ядер, і завжди буде, якщо ви запускаєте лише одну програму за раз .
Навіть у добре складеному багатопотоковому додатку багато завдань, які виконуються за допомогою потоку, виконуються так, щоб дочекатися найповільніших компонентів машини - жорсткого диска, мереж - не впливаючи на уявну продуктивність для користувача. Вони не можуть бути покращені більшою паралелізацією, тому будь-яке теоретичне обмеження швидкості недоступне для практичних цілей.
Варто зауважити, що є кілька «великих» додатків, які не мають багатопотокових запитів (просто перевірте еквівалент диспетчера завдань ОС; він повинен мати можливість сказати, скільки належить до кожного процесу - мій Firefox зараз використовує 31, наприклад ).
Звичайно, запуск декількох не взаємозалежних додатків не настільки обмежений цими межами. Коли ви додаєте більше ядер, ви можете запускати більше додатків одночасно з невеликим зниженням продуктивності обробки (проте жорсткий диск, мережа тощо), однак, ефективність не настільки добре. На практиці навіть це також піддається зменшенню віддачі, оскільки неминучі накладні витрати на управління розподілом роботи між сердечниками, трубопроводами зв'язку тощо.
Наприклад, цей апарат Tom's Hardware (з 2009 р.) Намагається переглянути ефективність декількох багатоядерних процесорів під одночасними програмами - запускаючи гру поряд зі скануванням AVG (обидва вони, ймовірно, багатопотокові). Чотири-, три- та двоядерні процесори працюють аналогічно лише грі, але додають одночасне сканування AVG, а продуктивність (вимірюється середнім FPS) падає на 22%, 40% та 59% відповідно.
Отже, хоча чотирьохядерний ядра не пропонував підвищення продуктивності над подвійним ядром при запуску однієї інтенсивної програми, як тільки з'явилася інша інтенсивна задача, вона в кінцевому підсумку виявилася вдвічі більш ефективною. На жаль, я не можу знайти багато іншого, що досліджує, наскільки добре це масштабування з більш ядрами та більш інтенсивними завданнями.
І тоді ви повинні взяти до відома сучасні особливості процесорів, такі як Intel Turbo Boost / AMD Turbo Core. Ці особливості дозволяють багатоядерному процесору паркувати ядра (вводити їх у більш повільний режим з низькою потужністю) і використовувати запасну енергію для розгону ядер, які залишаються активними - дозволяючи процесору оптимізувати себе, щоб забезпечити максимальну потужність процесора якомога більше для кількості завдань, з якими вона представлена.