Что дает количество ядер. Ядра процессора, их влияния и функции в пк

  • Tutorial

В этой статье я попытаюсь описать терминологию, используемую для описания систем, способных исполнять несколько программ параллельно, то есть многоядерных, многопроцессорных, многопоточных. Разные виды параллелизма в ЦПУ IA-32 появлялись в разное время и в несколько непоследовательном порядке. Во всём этом довольно легко запутаться, особенно учитывая, что операционные системы заботливо прячут детали от не слишком искушённых прикладных программ.

Цель статьи - показать, что при всём многообразии возможных конфигураций многопроцессорных, многоядерных и многопоточных систем для программ, исполняющихся на них, создаются возможности как для абстракции (игнорирования различий), так и для учёта специфики (возможность программно узнать конфигурацию).

Предупреждение о знаках ®, ™, в статье

Мой объясняет, почему сотрудники компаний должны в публичных коммуникациях использовать знаки авторского права. В этой статье их пришлось использовать довольно часто.

Процессор

Конечно же, самый древний, чаще всего используемый и неоднозначный термин - это «процессор».

В современном мире процессор - это то (package), что мы покупаем в красивой Retail коробке или не очень красивом OEM-пакетике. Неделимая сущность, вставляемая в разъём (socket) на материнской плате. Даже если никакого разъёма нет и снять его нельзя, то есть если он намертво припаян, это один чип.

Мобильные системы (телефоны, планшеты, ноутбуки) и большинство десктопов имеют один процессор. Рабочие станции и сервера иногда могут похвастаться двумя или больше процессорами на одной материнской плате.

Поддержка нескольких центральных процессоров в одной системе требует многочисленных изменений в её дизайне. Как минимум, необходимо обеспечить их физическое подключение (предусмотреть несколько сокетов на материнской плате), решить вопросы идентификации процессоров (см. далее в этой статье, а также мою заметку), согласования доступов к памяти и доставки прерываний (контроллер прерываний должен уметь маршрутизировать прерывания на несколько процессоров) и, конечно же, поддержки со стороны операционной системы. Я, к сожалению, не смог найти документального упоминания момента создания первой многопроцессорной системы на процессорах Intel, однако Википедия утверждает , что Sequent Computer Systems поставляла их уже в 1987 году, используя процессоры Intel 80386. Широко распространённой поддержка же нескольких чипов в одной системе становится доступной, начиная с Intel® Pentium.

Если процессоров несколько, то каждый из них имеет собственный разъём на плате. У каждого из них при этом имеются полные независимые копии всех ресурсов, таких как регистры, исполняющие устройства, кэши. Делят они общую память - RAM. Память может подключаться к ним различными и довольно нетривиальными способами, но это отдельная история, выходящая за рамки этой статьи. Важно то, что при любом раскладе для исполняемых программ должна создаваться иллюзия однородной общей памяти, доступной со всех входящих в систему процессоров.


К взлёту готов! Intel® Desktop Board D5400XS

Ядро

Исторически многоядерность в Intel IA-32 появилась позже Intel® HyperThreading, однако в логической иерархии она идёт следующей.

Казалось бы, если в системе больше процессоров, то выше её производительность (на задачах, способных задействовать все ресурсы). Однако, если стоимость коммуникаций между ними слишком велика, то весь выигрыш от параллелизма убивается длительными задержками на передачу общих данных. Именно это наблюдается в многопроцессорных системах - как физически, так и логически они находятся очень далеко друг от друга. Для эффективной коммуникации в таких условиях приходится придумывать специализированные шины, такие как Intel® QuickPath Interconnect. Энергопотребление, размеры и цена конечного решения, конечно, от всего этого не понижаются. На помощь должна прийти высокая интеграция компонент - схемы, исполняющие части параллельной программы, надо подтащить поближе друг к другу, желательно на один кристалл. Другими словами, в одном процессоре следует организовать несколько ядер , во всём идентичных друг другу, но работающих независимо.

Первые многоядерные процессоры IA-32 от Intel были представлены в 2005 году. С тех пор среднее число ядер в серверных, десктопных, а ныне и мобильных платформах неуклонно растёт.

В отличие от двух одноядерных процессоров в одной системе, разделяющих только память, два ядра могут иметь также общие кэши и другие ресурсы, отвечающие за взаимодействие с памятью. Чаще всего кэши первого уровня остаются приватными (у каждого ядра свой), тогда как второй и третий уровень может быть как общим, так и раздельным. Такая организация системы позволяет сократить задержки доставки данных между соседними ядрами, особенно если они работают над общей задачей.


Микроснимок четырёхядерного процессора Intel с кодовым именем Nehalem. Выделены отдельные ядра, общий кэш третьего уровня, а также линки QPI к другим процессорам и общий контроллер памяти.

Гиперпоток

До примерно 2002 года единственный способ получить систему IA-32, способную параллельно исполнять две или более программы, состоял в использовании именно многопроцессорных систем. В Intel® Pentium® 4, а также линейке Xeon с кодовым именем Foster (Netburst) была представлена новая технология - гипертреды или гиперпотоки, - Intel® HyperThreading (далее HT).

Ничто не ново под луной. HT - это частный случай того, что в литературе именуется одновременной многопоточностью (simultaneous multithreading, SMT). В отличие от «настоящих» ядер, являющихся полными и независимыми копиями, в случае HT в одном процессоре дублируется лишь часть внутренних узлов, в первую очередь отвечающих за хранение архитектурного состояния - регистры. Исполнительные же узлы, ответственные за организацию и обработку данных, остаются в единственном числе, и в любой момент времени используются максимум одним из потоков. Как и ядра, гиперпотоки делят между собой кэши, однако начиная с какого уровня - это зависит от конкретной системы.

Я не буду пытаться объяснить все плюсы и минусы дизайнов с SMT вообще и с HT в частности. Интересующийся читатель может найти довольно подробное обсуждение технологии во многих источниках, и, конечно же, в Википедии . Однако отмечу следующий важный момент, объясняющий текущие ограничения на число гиперпотоков в реальной продукции.

Ограничения потоков
В каких случаях наличие «нечестной» многоядерности в виде HT оправдано? Если один поток приложения не в состоянии загрузить все исполняющие узлы внутри ядра, то их можно «одолжить» другому потоку. Это типично для приложений, имеющих «узкое место» не в вычислениях, а при доступе к данным, то есть часто генерирующих промахи кэша и вынужденных ожидать доставку данных из памяти. В это время ядро без HT будет вынуждено простаивать. Наличие же HT позволяет быстро переключить свободные исполняющие узлы к другому архитектурному состоянию (т.к. оно как раз дублируется) и исполнять его инструкции. Это - частный случай приёма под названием latency hiding, когда одна длительная операция, в течение которой полезные ресурсы простаивают, маскируется параллельным выполнением других задач. Если приложение уже имеет высокую степень утилизации ресурсов ядра, наличие гиперпотоков не позволит получить ускорение - здесь нужны «честные» ядра.

Типичные сценарии работы десктопных и серверных приложений, рассчитанных на машинные архитектуры общего назначения, имеют потенциал к параллелизму, реализуемому с помощью HT. Однако этот потенциал быстро «расходуется». Возможно, по этой причине почти на всех процессорах IA-32 число аппаратных гиперпотоков не превышает двух. На типичных сценариях выигрыш от использования трёх и более гиперпотоков был бы невелик, а вот проигрыш в размере кристалла, его энергопотреблении и стоимости значителен.

Другая ситуация наблюдается на типичных задачах, выполняемых на видеоускорителях. Поэтому для этих архитектур характерно использование техники SMT с бóльшим числом потоков. Так как сопроцессоры Intel® Xeon Phi (представленные в 2010 году) идеологически и генеалогически довольно близки к видеокартам, на них может быть четыре гиперпотока на каждом ядре - уникальная для IA-32 конфигурация.

Логический процессор

Из трёх описанных «уровней» параллелизма (процессоры, ядра, гиперпотоки) в конкретной системе могут отсутствовать некоторые или даже все. На это влияют настройки BIOS (многоядерность и многопоточность отключаются независимо), особенности микроархитектуры (например, HT отсутствовал в Intel® Core™ Duo, но был возвращён с выпуском Nehalem) и события при работе системы (многопроцессорные сервера могут выключать отказавшие процессоры в случае обнаружения неисправностей и продолжать «лететь» на оставшихся). Каким образом этот многоуровневый зоопарк параллелизма виден операционной системе и, в конечном счёте, прикладным приложениям?

Далее для удобства обозначим количества процессоров, ядер и потоков в некоторой системе тройкой (x , y , z ), где x - это число процессоров, y - число ядер в каждом процессоре, а z - число гиперпотоков в каждом ядре. Далее я буду называть эту тройку топологией - устоявшийся термин, мало что имеющий с разделом математики. Произведение p = xyz определяет число сущностей, именуемых логическими процессорами системы. Оно определяет полное число независимых контекстов прикладных процессов в системе с общей памятью, исполняющихся параллельно, которые операционная система вынуждена учитывать. Я говорю «вынуждена», потому что она не может управлять порядком исполнения двух процессов, находящихся на различных логических процессорах. Это относится в том числе к гиперпотокам: хотя они и работают «последовательно» на одном ядре, конкретный порядок диктуется аппаратурой и недоступен для наблюдения или управления программам.

Чаще всего операционная система прячет от конечных приложений особенности физической топологии системы, на которой она запущена. Например, три следующие топологии: (2, 1, 1), (1, 2, 1) и (1, 1, 2) - ОС будет представлять в виде двух логических процессоров, хотя первая из них имеет два процессора, вторая - два ядра, а третья - всего лишь два потока.


Windows Task Manager показывает 8 логических процессоров; но сколько это в процессорах, ядрах и гиперпотоках?


Linux top показывает 4 логических процессора.

Это довольно удобно для создателей прикладных приложений - им не приходится иметь дело с зачастую несущественными для них особенностями аппаратуры.

Программное определение топологии

Конечно, абстрагирование топологии в единственное число логических процессоров в ряде случаев создаёт достаточно оснований для путаницы и недоразумений (в жарких Интернет-спорах). Вычислительные приложения, желающие выжать из железа максимум производительности, требуют детального контроля над тем, где будут размещены их потоки: поближе друг к другу на соседних гиперпотоках или же наоборот, подальше на разных процессорах. Скорость коммуникаций между логическими процессорами в составе одного ядра или процессора значительно выше, чем скорость передачи данных между процессорами. Возможность неоднородности в организации оперативной памяти также усложняет картину.

Информация о топологии системы в целом, а также положении каждого логического процессора в IA-32 доступна с помощью инструкции CPUID. С момента появления первых многопроцессорных систем схема идентификации логических процессоров несколько раз расширялась. К настоящему моменту её части содержатся в листах 1, 4 и 11 CPUID. Какой из листов следует смотреть, можно определить из следующей блок-схемы, взятой из статьи :

Я не буду здесь утомлять всеми подробностями отдельных частей этого алгоритма. Если возникнет интерес, то этому можно посвятить следующую часть этой статьи. Отошлю интересующегося читателя к , в которой этот вопрос разбирается максимально подробно. Здесь же я сначала кратко опишу, что такое APIC и как он связан с топологией. Затем рассмотрим работу с листом 0xB (одиннадцать в десятичном счислении), который на настоящий момент является последним словом в «апикостроении».

APIC ID
Local APIC (advanced programmable interrupt controller) - это устройство (ныне входящее в состав процессора), отвечающее за работу с прерываниями, приходящими к конкретному логическому процессору. Свой собственный APIC есть у каждого логического процессора. И каждый из них в системе должен иметь уникальное значение APIC ID. Это число используется контроллерами прерываний для адресации при доставке сообщений, а всеми остальными (например, операционной системой) - для идентификации логических процессоров. Спецификация на этот контроллер прерываний эволюционировала, пройдя от микросхемы Intel 8259 PIC через Dual PIC, APIC и xAPIC к x2APIC .

В настоящий момент ширина числа, хранящегося в APIC ID, достигла полных 32 бит, хотя в прошлом оно было ограничено 16, а ещё раньше - только 8 битами. Нынче остатки старых дней раскиданы по всему CPUID, однако в CPUID.0xB.EDX возвращаются все 32 бита APIC ID. На каждом логическом процессоре, независимо исполняющем инструкцию CPUID, возвращаться будет своё значение.

Выяснение родственных связей
Значение APIC ID само по себе ничего не говорит о топологии. Чтобы узнать, какие два логических процессора находятся внутри одного физического (т.е. являются «братьями» гипертредами), какие два - внутри одного процессора, а какие оказались и вовсе в разных процессорах, надо сравнить их значения APIC ID. В зависимости от степени родства некоторые их биты будут совпадать. Эта информация содержится в подлистьях CPUID.0xB, которые кодируются с помощью операнда в ECX. Каждый из них описывает положение битового поля одного из уровней топологии в EAX (точнее, число бит, которые нужно сдвинуть в APIC ID вправо, чтобы убрать нижние уровни топологии), а также тип этого уровня - гиперпоток, ядро или процессор, - в ECX.

У логических процессоров, находящихся внутри одного ядра, будут совпадать все биты APIC ID, кроме принадлежащих полю SMT. Для логических процессоров, находящихся в одном процессоре, - все биты, кроме полей Core и SMT. Поскольку число подлистов у CPUID.0xB может расти, данная схема позволит поддержать описание топологий и с бóльшим числом уровней, если в будущем возникнет необходимость. Более того, можно будет ввести промежуточные уровни между уже существующими.

Важное следствие из организации данной схемы заключается в том, что в наборе всех APIC ID всех логических процессоров системы могут быть «дыры», т.е. они не будут идти последовательно. Например, во многоядерном процессоре с выключенным HT все APIC ID могут оказаться чётными, так как младший бит, отвечающий за кодирование номера гиперпотока, будет всегда нулевым.

Отмечу, что CPUID.0xB - не единственный источник информации о логических процессорах, доступный операционной системе. Список всех процессоров, доступный ей, вместе с их значениями APIC ID, кодируется в таблице MADT ACPI .

Операционные системы и топология

Операционные системы предоставляют информацию о топологии логических процессоров приложениям с помощью своих собственных интерфейсов.

В Linux информация о топологии содержится в псевдофайле /proc/cpuinfo , а также выводе команды dmidecode . В примере ниже я фильтрую содержимое cpuinfo на некоторой четырёхядерной системе без HT, оставляя только записи, относящиеся к топологии:

Скрытый текст

ggg@shadowbox:~$ cat /proc/cpuinfo |grep "processor\|physical\ id\|siblings\|core\|cores\|apicid" processor: 0 physical id: 0 siblings: 4 core id: 0 cpu cores: 2 apicid: 0 initial apicid: 0 processor: 1 physical id: 0 siblings: 4 core id: 0 cpu cores: 2 apicid: 1 initial apicid: 1 processor: 2 physical id: 0 siblings: 4 core id: 1 cpu cores: 2 apicid: 2 initial apicid: 2 processor: 3 physical id: 0 siblings: 4 core id: 1 cpu cores: 2 apicid: 3 initial apicid: 3

В FreeBSD топология сообщается через механизм sysctl в переменной kern.sched.topology_spec в виде XML:

Скрытый текст

user@host:~$ sysctl kern.sched.topology_spec kern.sched.topology_spec: 0, 1, 2, 3, 4, 5, 6, 7 0, 1, 2, 3, 4, 5, 6, 7 0, 1 THREAD groupSMT group 2, 3 THREAD groupSMT group 4, 5 THREAD groupSMT group 6, 7 THREAD groupSMT group

В MS Windows 8 сведения о топологии можно увидеть в диспетчере задач Task Manager.

Добрый день, уважаемые читатели нашего техноблога. Сегодня у нас не обзор, а некое подобие сравнения какой процессор лучше 2 ядерный или 4 ядерный? Интересно, кто круче себя показывает в 2018 году? Тогда приступим. Сразу скажем, что пальма первенства в большинстве случаев будет за устройством с большим числом физических модулей, но и чипы с 2 ядрами не так просты, как кажутся на первый взгляд.

Многие, наверное уже догадались, что рассматривать мы будем всех текущих представителей от Intel семейства Pentium Coffee Lake и народный «гиперпень» G4560 (Kaby Lake). Насколько модели актуальны в текущем году и стоит ли задуматься о покупке более производительных AMD Ryzen или тех же Core i3 с 4-мя ядрами.

Семейство AMD Godavari и Bristol Ridge намеренно не рассматривается по одной простой причине — оно не имеет никакого дальнейшего потенциала, да и сама платформа оказалась не самой удачной, как могло предполагаться.

Зачастую эти решения покупаются либо по незнанию, либо «на сдачу» в качестве какой-нибудь максимально дешевой сборки для интернета и онлайн-фильмов. Но нас такое положение вещей особо не устраивает.

Отличия 2-ядерных чипов от 4-ядерных

Рассмотрим основные моменты, которые отличают первую категорию чипов от второй. На аппаратном уровне можно заметить, что отличается только количество вычислительных блоков. В остальных случаях, ядра объединены высокоскоростной шиной обмена данными, общим контроллером памяти для плодотворной и оперативной работы с ОЗУ.

Зачастую кэш L1 каждого ядра — величина индивидуальная, а вот L2 может быть либо един для всех, либо также индивидуален для каждого блока. Однако в таком случае дополнительно используется уже кэш-память L3.

В теории 4-ядерные решения должны быть быстрее и мощнее в 2 раза, поскольку выполняют на 100% больше операций за такт (возьмем за основу идентичную частоту, кэш, техпроцесс и все прочие параметры). Но на практике ситуация меняется совершенно нелинейно.

Но здесь стоит отдать должное: в многопотоке вся сущность 4 ядер раскрывается в полной мере.

Почему 2-ядерные процессоры все еще популярны?

Если взглянуть на мобильный сегмент электроники, то можно заметить засилье 6−8 ядерных чипов, которые выглядят максимально органично и нагружаются параллельно при выполнении всех задач. Почему так? ОС Android и iOS — довольно молодые системы с высоким уровнем конкуренции, а потому оптимизация каждого приложения — залог успеха продаж девайсов.

С индустрией ПК ситуация иная и вот почему:

Совместимость. При разработке любого ПО разработчики стремятся угодить как новой, так и старой аудитории со слабым железом. На 2-ядерных процессорах делается больший акцент в ущерб поддержки 8-ядерных.

Распараллеливание задач. Несмотря на засилье технологий в 2018 году, заставить программу работать с несколькими ядрами и потоками ЦП параллельно все еще не просто. Если речь заходит за просчет нескольких совершенно разных приложений, то вопросов нет, но когда дело касается вычислений внутри одной программы — тут уже хуже: приходится регулярно просчитывать абсолютно разную информацию, при этом не забывая об успехе задач и отсутствии ошибок при вычислениях.

В играх ситуация еще более интересная, поскольку объемы информации разделить на равные «доли» практически нереально. В итоге получаем следующую картину: один вычислительный блок маслает на 100%, остальные 3 — ждут своей очереди.

Преемственность. Каждое новое решение основывается на предыдущих наработках. Писать код с нуля не только дорого, но и зачастую невыгодно центру разработки, поскольку «людям и этого хватит, а пользователей 2-ядерных чипов все еще львиная доля».

Взять к примеру многие культовые проекты вроде Lineage 2, AION, World of Tanks. Все они создавались на базе древних движков, которые способны адекватно нагрузить лишь одно физическое ядро, а потому здесь основную роль при вычислениях играет только частота чипа.
Финансирование. Далеко не все могут позволить себе создать совершенно новый продукт, рассчитанный не 4,8, 16 потоков. Это слишком дорого, да и в большинстве случаев неоправданно. Взять к примеру ту же культовую GTA V, которая без проблем «съест» и 12 и 16 потоков, не говоря уже о ядрах.

Стоимость ее разработки перевалила за добрые 200 млн долларов, что само по себе уже очень дорого. Да, игра оказалась успешной, поскольку кредит доверия Rockstar в среде игроков был огромен. А если бы это был молодой стартап? Тут уже сами все понимаете.

Нужны ли многоядерные процессоры?

Давайте рассмотрим ситуацию с точки зрения простого обывателя. Большинству пользователей хватает 2 ядер по следующим причинам:

  • невысокие потребности;
  • большинство приложений работает стабильно;
  • игры — не главный приоритет;
  • низкая стоимость сборок;
  • процессоры сами по себе дешевые;
  • большинство покупает готовые решения;
  • некоторые пользователи понятия не имеют, что им продают в магазинах и чувствуют себя прекрасно.

Можно ли играть на 2 ядрах? Да без проблем, что с успехом несколько лет доказывала линейка Intel Core i3 вплоть до 7-го поколения. Также огромной популярностью пользовались Pentium Kaby Lake, в которые впервые в истории внедрили поддержку Hyper Threading.
Стоит ли сейчас покупать 2 ядра, пусть и с 4-мя потоками? Исключительно для офисных задач. Эпоха данных чипов постепенно уходит, да и производители начали массово переключаться на 4 полноценных физических ядра, а потому не стоит рассматривать те же Pentium и Core i3 Kaby Lake в долгосрочной перспективе. AMD так и вовсе отказалась от 2-ядерников.

Я рассказал, почему рост частоты процессоров застопорился на нескольких гигагерцах. Теперь же поговорим о том, почему развитие числа ядер в пользовательских процессорах также идет крайне медленно: так, первый честный двухядерный процессор (где оба ядра были в одном кристалле), построенный на архитектуре x86, появился аж в 2006 году, 12 лет назад - это была линейка Intel Core Duo. И с тех пор 2-ядерные процессоры с арены не уходят, более того - активно развиваются: так, буквально на днях вышел ноутбук Lenovo с процессором, построенном на новейшем (для архитектуры x86) 10 нм техпроцессе. И да, как вы уже догадались, этот процессор имеет ровно 2 ядра.

Для пользовательских процессоров число ядер застопорилось на 6 еще с 2010 года, с выходом линейки AMD Phenom X6 - да, AMD FX не были честными 8-ядерными процессорами (там было 4 APU), равно как и Ryzen 7 представляет собой два блока по 4 ядра, расположенные бок о бок на кристалле. И тут, разумеется, возникает вопрос - а почему так? Ведь те же видеокарты, будучи в 1995-6 годах по сути «одноголовыми» (то есть имевшими 1 шейдер), сумели к текущему времени нарастить их число до нескольких тысяч - так, в Nvidia Titan V их аж 5120! При этом за гораздо больший срок развития архитектуры x86 пользовательские процессоры остановились на честных 6 ядрах на кристалле, а CPU для высокопроизводительных ПК - на 18, то есть на пару порядков меньше, чем у видеокарт. Почему? Об этом и поговорим ниже.

Архитектура CPU

Изначально все процессоры Intel x86 строились на архитектуре CISC (Complex Instruction Set Computing, процессоры с полным набором инструкций) - то есть в них реализовано максимальное число инструкций «на все случаи жизни». С одной стороны, это здорово: так, в 90-ые годы CPU отвечал и за рендеринг картинки, и даже за звук (был такой лайфхак - если игра тормозит, то может помочь отключение в ней звука). И даже сейчас процессор является эдаким комбайном, который может все - и это же является и проблемой: распараллелить случайную задачу на несколько ядер - задача не тривиальная. Допустим, с двумя ядрами можно сделать просто: на одно ядро «вешаем» систему и все фоновые задачи, на другое - только приложение. Это сработает всегда, но вот прирост производительности будет далеко не двукратным, так как обычно фоновые процессы требуют существенно меньше ресурсов, чем текущая тяжелая задача.

Слева - схема GPU Nvidia GTX 980 Ti, где видно 2816 CUDA-ядер, объединенных в кластеры. Справа - фотография кристалла процессора AMD Ryzen, где видно 4 больших ядра.

А теперь представим, что у нас не два, а 4 или вообще 8 ядер. Да, в задачах по архивации и другим расчетам распараллеливание работает хорошо (и именно поэтому те же серверные процессоры могут иметь и несколько десятков ядер). Но что если у нас задача со случайным исходом (которых, увы, большинство) - допустим, игра? Ведь тут каждое новое действие зависит всецело от игрока, поэтому «раскидывание» такой нагрузки на несколько ядер - задача не из простых, из-за чего разработчики зачастую «руками» прописывают, чем занимаются ядра: так, к примеру, одно может быть занято только обработкой действий искусственного интеллекта, другое отвечать только за объемный звук, и так далее. Нагрузить таким способом даже 8-ядерный процессор - практически невозможно, что мы и видим на практике.

С видеокартами же все проще: GPU, по сути, занимается расчетами и только ими, причем число разновидностей расчетов ограничено и невелико. Поэтому, во-первых, можно оптимизировать сами вычислительные ядра (у Nvidia они называются CUDA) именно под нужные задачи, а, во-вторых - раз все возможные задачи известны, то процесс их распараллеливания трудностей не вызывает. И в-третьих, управление идет не отдельными шейдерами, а вычислительными модулями, которые включают в себя 64-192 шейдера, поэтому большое число шейдеров проблемой не является.

Энергопотребление

Одной из причин отказа от дальнейшей гонки частот - резкое увеличение энергопотребления. Как я уже объяснял в статье с замедлением роста частоты CPU, тепловыделение процессора пропорционально кубу частоты. Иными словами, если на частоте в 2 ГГц процессор выделяет 100 Вт тепла, что в принципе можно без проблем отвести воздушным кулером, то на 4 ГГц получится уже 800 Вт, что возможно отвести в лучшем случае испарительной камерой с жидким азотом (хотя тут следует учитывать, что формула все же приблизительная, да и в процессоре есть не только вычислительные ядра, но получить порядок цифр с ее помощью вполне можно).

Поэтому рост вширь был отличным выходом: так, грубо говоря, двухядерный 2 ГГц процессор будет потреблять 200 Вт, а вот одноядерный 3 ГГц - почти 340, то есть выигрыш по тепловыделению больше чем на 50%, при этом в задачах с хорошей оптимизацией под многопоточность низкочастотный двухядерный CPU будет все же быстрее высокочастотного одноядерного.


Пример испарительной камеры с жидким азотом для охлаждения экстремально разогнанных CPU.

Казалось бы - это золотое дно, быстро делаем 10-ядерный процессор с частотой в 1 ГГц, который будет выделять лишь на 25% больше тепла, чем одноядерный CPU с 2 ГГц (если 2 ГГц процессор выделяет 100 Вт тепла, то 1 ГГц - всего 12.5 Вт, 10 ядер - около 125 Вт). Но тут мы быстро упираемся в то, что далеко не все задачи хорошо распараллеливаются, поэтому на практике зачастую будет получаться так, что гораздо более дешевый в производстве одноядерный CPU с 2 ГГц будет существенно быстрее гораздо более дорогого 10-ядерного, но с 1 ГГц. Но все же такие процессоры есть - в серверном сегменте, где проблем с распараллеливанием задач нет, и 40-60 ядерный CPU с частотами в 1.5 ГГц зачастую оказывается в разы быстрее 8-10 ядерных процессоров с частотами под 4 ГГц, выделяя при этом сравнимое количество тепла.

Поэтому производителям CPU приходится следить за тем, чтобы при росте ядер не страдала однопоточная производительность, а с учетом того, что предел отвода тепла в обычном домашнем ПК был «нащупан» уже достаточно давно (это около 60-100 Вт) - способов увеличения числа ядер при такой же одноядерной производительности и таком же тепловыделении всего два: это или оптимизировать саму архитектуру процессора, увеличивая его производительность за такт, или же уменьшать техпроцесс. Но, увы, и то и другое идет все медленнее: за более чем 30 лет существования x86 процессоров «отполировано» уже почти все, что можно, поэтому прирост идет в лучшем случае 5% за поколение, а уменьшение техпроцесса дается все труднее из-за фундаментальных проблем создания корректно функционирующих транзисторов (при размерах в десяток нанометров уже начинают сказываться квантовые эффекты, трудно изготовить подходящий лазер, и т.д.) - поэтому, увы, увеличивать число ядер все сложнее.

Размер кристалла

Если мы посмотрим на площадь кристаллов процессоров лет 15 назад, то увидим, что она составляет всего около 100-150 квадратных миллиметров. Около 5-7 лет назад чипы «доросли» до 300-400 кв мм и... процесс практически остановился. Почему? Все просто - во-первых, производить гигантские кристаллы очень сложно, из-за чего резко возрастает количество брака, а, значит, и конечная стоимость CPU.

Во-вторых, возрастает хрупкость: большой кристалл может очень легко расколоть, к тому же разные его края могут греться по-разному, из-за чего опять же может произойти его физическое повреждение.


Сравнение кристаллов Intel Pentium 3 и Core i9.

Ну и в-третьих - скорость света также вносит свое ограничение: да, она хоть и велика, но не бесконечна, и с большими кристаллами это может вносить задержку, а то и вовсе сделать работу процессора невозможной.

В итоге максимальный размер кристалла остановился где-то на 500 кв мм, и вряд ли уже будет расти - поэтому чтобы увеличивать число ядер, нужно уменьшать их размеры. Казалось бы - та же Nvidia или AMD смогли это сделать, и их GPU имеют тысячи шейдеров. Но тут следует понимать, что шейдеры полноценными ядрами не являются - к примеру, они не имеют собственного кэша, а только общий, плюс «заточка» под определенные задачи позволила «выкинуть» из них все лишнее, что опять же сказалось на их размере. А CPU же не только имеет полноценные ядра с собственным кэшем, но зачастую на этом же кристалле расположена и графика, и различные контроллеры - так что в итоге опять же чуть ли не единственные способы увеличения числа ядер при том же размере кристалла - это все та же оптимизация и все то же уменьшение техпроцесса, а они, как я уже писал, идут медленно.

Оптимизация работы

Представим, что у нас есть коллектив людей, выполняющих различные задачи, некоторые из которых требуют работы нескольких человек одновременно. Если людей в нем двое - они смогут договориться и эффективно работать. Четверо - уже сложнее, но тоже работа будет достаточно эффективной. А если людей 10, а то и 20? Тут уже нужно какое-то средство связи между ними, в противном случае в работе будут встречаться «перекосы», когда кто-то будет ничем не занят. В процессорах от Intel таким средством связи является кольцевая шина, которая связывает все ядра и позволяет им обмениваться информацией между собой.

Но даже и это не помогает: так, при одинаковых частотах 10-ядерный и 18-ядерный процессоры от Intel поколения Skylake-X различаются по производительности всего на 25-30%, хотя должны в теории аж на 80%. Причина как раз в шине - какой бы хорошей она не была, все равно будут возникать задержки и простои, и чем больше ядер - тем хуже будет ситуация. Но почему тогда таких проблем нет в видеокартах? Все просто - если ядра процессора можно представить людьми, которые могут выполнять различные задачи, то вычислительные блоки видеокарт - это скорее роботы на конвейере, которые могут выполнять только определенные инструкции. Им по сути «договариваться» не нужно - поэтому при росте их количества эффективность падает медленнее: так, разница в CUDA между 1080 (2560 штук) и 1080 Ti (3584 штуки) - 40%, на практике же около 25-35%, то есть потери существенно меньше.


Чем больше ядер, тем хуже они работают вместе, вплоть до нулевого прироста производительности при увеличении числа ядер.

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

Так что в итоге, как видим, что наращивание частоты, что наращивание числа ядер - задача достаточно сложная, а игра при этом зачастую не стоит свеч. И в ближайшем будущем вряд ли что-то серьезно изменится, так как ничего лучше кремниевых кристаллов пока еще не придумали.

Для того чтобы выбрать ноутбук правильно, необходимо определить, как будет использоваться это устройство. Дело в том, что именно то, какое программное обеспечение вы планируете на нем запускать, определяет то, какую модель вам необходимо выбрать. Если вы не проанализируете это заранее, то можете столкнуться либо с тем, что возможностей ноутбука вам будет катастрофически не хватать, и вы не сможете использовать его по своему назначению. Также вы рискуете переплатить большую сумму за те функции, которые вам совсем не нужны.

Как узнать технические параметры ноутбука

Определяющими параметрами ноутбука являются его технические характеристики. Узнать их вы можете в тех паспорте устройства, который можно попросить у консультантов в магазине. Также можно узнать необходимую информацию из специального буклета, размещаемого рядом с ценником. В интернет-магазинах эта информация располагается в описании каждой модели.

Тип и частота процессора

Процессор является главным комплектующим любого устройства, определяющим быстроту его работы и его энергопотребление. Основными производителями на рынке ПК являются известные компании Intel и AMD. Процессоры Intel стоят более дорого, однако их продукция нередко оказывается настоящим технологическим прорывом в IT-технике.

Процессоры AMD позиционируются как недорогое и экономичное решение. Этот производитель в борьбе за рынок стремится к сохранению производительности, сравнимой с продукцией Intel, и низкой стоимости. В настоящее время улучшение скорости процессоров идет по пути увеличения числа ядер, а также оптимизации их взаимодействия.

Наиболее распространенными в ноутбуках и нетбуках в настоящее время являются одно- и двуядерные процессоры. Однако в последнее время все большую популярность приобретают шести- и восьми ядерные архитектуры, которые когда то устанавливались только в настольные ПК.

Количество ядер процессора

Основные технические параметры процессора – это количество ядер, тактовая частота, объем кэш-памяти, частота шины. Некоторое время назад увеличение производительности процессоров достигалось производителями при помощи лишь увеличения тактовой частоты, что приводило к их перегреву. В результате разработчики были вынуждены искать новый путь увеличения мощности устройств, решением стало использование нескольких ядер, что позволило повысить производительность системы, выполняя несколько потоков программ одновременно.

Преимущества многоядерных процессоров во многом связано с используемым программным обеспечением. Старые приложения, не рассчитанные на многоядерность, используют дополнительные ядра весьма ограниченно, поэтому при работе со старыми программами производительность одноядерных процессоров может быть более высокой. Современные приложения рассчитаны на использование в устройствах с многоядерными процессорами, а операционные системы автоматически распределяют нагрузку между ядрами.

Технические характеристики процессора

Тактовая частота ЦП представляет собой то, насколько быстро процессор будет выполнять те или иные вычисления. Это величина измеряется в гигагерцах и прямо влияет на его вычислительную мощность. В настоящее время, когда все новые модели процессоров являются многоядерными, тактовая частота не является основной характеристикой производительности.

Кэш-память - сверхбыстрая память, объем которой составляет от 1 до 8 Мбайт. Располагается на кристалле процессора. Большой объем кэш-памяти необходим для ускорения работы программ для редактирования видео, игр и просмотров фильмов.

Частота системной шины - количество тактов за секунду, которые совершает системная шина и магистральный канал, необходимый для обмена данными между процессором с ОЗУ и другим устройствами.

Оперативная память

При выборе ноутбука очень важно не совершить весьма распространенную ошибку, которую делают многие неопытные пользователи. Это заблуждение связано с тем, что многие считают ОЗУ основной характеристикой, определяющей быстродействие компьютера.

На самом деле, оперативная память никак не сможет улучшить скорость выполнение операций компьютером, если остальные комплектующие не позволяют этого сделать. К примеру, Мощный многоядерный процессор будет практически бесполезным, если установить его в устройство с 512 Мб оперативной памяти, в то время как ресурсоемкие приложения, которым требуется 4 Гб ОЗУ, не смогут работать на слабом процессоре.

Кроме того, учтите, что оперативная память – это та характеристика, которая может быть увеличена, тогда как процессор и материнская плата не могут быть заменены. Поэтому хорошим решением может быть приобретение, к примеру, ноутбука 2 Гб ОЗУ, но с материнской платой, позволяющей увеличить ее до 16 Гигабайт.

Учтите, что не стоит приобретать ноутбук с ОЗУ более 4 Гб, если вы собираетесь установить на него 32- битные Windows XP и Windows Vista, так как эти операционные системы просто не «увидят» больший объем памяти.

Объем жесткого диска

В настоящее время существует два типа жестких дисков, отличающихся друг от друга по технологии внутренних накопителей – HDD и SDD. Жесткий магнитный диск (HDD) является наиболее распространенным. Такие диски более дешевы, однако имеют ряд других недостатков. Вследствие того, что вся информация на них хранится в виде намагниченных ячеек и считывается специальной подвижной головкой, устройства очень легко повреждаются в результате падений или воздействия на них магнитных полей.

Твердотельные накопители (SSD) основаны на технологии флеш-памяти. Эту же технологию можно увидеть в USB флешках. Они более быстры, стойки к ударам, а также абсолютно бесшумны вследствие отсутствия в них движущихся частей. Установка операционной системы на твердый накопитель позволит включать устройство за несколько секунд. Максимальный объем SSD на данный момент уступает HDD: 2 Тбайт против 512 Гбайт.

В настоящее время крупнейшими производителями графических контроллеров на рынке являются компании NVidia и AMD. Данные производители постоянно конкурируют между собой за лидерство, поэтому вопрос о том, выбрать видеокарту NVidia или AMD, является некорректным. Каждая из компаний периодически предлагает пользователям новые функциональные и производительные продукты. Поэтому для сравнения, необходимо анализировать устройства, относящиеся к конкретным семействам видеокарт.

Если вы собираетесь использовать ноутбук для запуска на нем современных 3D игр, в обязательном порядке обратите внимание на видеокарту (тип графического контроллера) устройства. В настоящее время в ноутбуках можно встретить два вида графических контроллеров: встроенный, когда контроллер встроен в процессор, дискретный, когда контроллер является отдельным устройством. В некоторых устройствах имеется и встроенный, и дискретный контроллеры сразу.

Основные характеристики видеокарт

Интегрированная в системную плату компьютера видеокарта использует для обработки графики ресурсы центрального процессора и ОЗУ. Такой контроллер является намного менее мощным, по сравнению с внешним, однако он и стоит намного меньше. Если вы не собираетесь использовать ноутбук для 3D игр, редактирования фото и видео, а также хотите сэкономить на его стоимости, встроенный графический контроллер – это ваш выбор. Встроенная видеокарта вполне справляется с выводом не ресурсоемких игр и даже позволяет смотреть HD фильмы. Также она позволяет запускать старые игры, где не использовалась 3D графика.

Дискретная графическая система характеризуется наличием собственного процессора, предназначенного специально для вывода графической информации. Кроме того, в ней имеется отдельная оперативную память (видеопамять). Дискретная память намного дороже и мощнее встроенной.

Вес и габариты устройства

В зависимости от того, как вы собираетесь использовать ноутбук, необходимо обратить внимание на его массу и размеры. Если вы часто путешествуете и планируете брать устройство в свои поездки, то для вас важным моментом будет являться то, насколько удобно перевозить ноутбук вместе с собой.

Однако ради более комфортабельной транспортировки придется пожертвовать мощностью устройства. У небольшого устройства, предназначенного для постоянно перевозки, диагональ экрана не превышает 15 дюймов, вес менее 2 килограмм, матовая поверхность, которую сложно поцарапать. Для особо частых поездок, где вы не планируете запускать игры и ресурсоемкие приложения, гораздо выгоднее будет приобретение нетбука или даже планшета.

Если вы планируете использовать ноутбук исключительно дома, то вам стоит сосредоточиться на технических характеристиках устройства, так как его вес и габариты не будут играть для вас особого значения.

Мощность аккумулятора и длительность автономной работы

Если вы планируете использовать ноутбук в поездах и электричках, где отсутствуют розетки электропитания, то вам просто необходимо выбрать модель, работающую без подзарядки максимальное время.

При выборе ноутбука по времени автономной работы необходимо очень тщательно проанализировать всю имеющуюся информацию. Нередко технические параметры, заявленные производителем, совершенно не совпадают с результатами тестов. Поэтому если время автономной работы устройства является для вас очень важной характеристикой устройства, прочитайте независимые обзоры ноутбука в компьютерных журналах. Кроме того, полезную информацию можно узнать на специализированных форумах.

Как увеличить длительность автономной работы ноутбука

На длительность работы без подзарядки влияет несколько параметров: мощность процессора, емкость аккумулятора, емкость аккумулятора, яркость дисплея, производительность, использование дополнительных устройств. Существует несколько способов повышения длительности работы устройства, однако все они связаны с различными ограничениями (снижение яркости дисплея, отказ от работы с ресурсоемкими приложениями, отключение сетевой карты или беспроводных адаптеров и т.д.). Но самый простой способ увеличения длительности работы ноутбука – это приобретение запасного аккумулятора, который можно просто возить с собой.

В последних моделях ноутбуков применяется энергосберегающие технологии Intel Speed-Step и AMD PowerNow!, которые регулируют тактовую частоту процессора.

Съемные накопители

Несмотря на широкое распространение интернета и флеш-технологий, некоторую информацию до сих пор удобнее хранить на CD и DVD дисках, преимущество которых составляет низкая стоимость и возможность перезаписи.

Вместе с тем, многие производители отказываются от использования оптических приводов, так как это позволяет уменьшить габариты и вес устройства. Поэтому ультрапортативные компьютеры, как правило, приводами не комплектуются. Однако если вы планируете постоянно устанавливать на ноутбук новые игры и смотреть фильмы без использования DVD привода вам не обойтись.

Операционная система

Как правило, ноутбуки продаются с предустановленными в них операционными системами. Наиболее распространенными ОС в настоящее время являются системы семейства Windows: XP, Vista, 7, которых вполне хватит для потребностей большинства пользователей. Однако данные системы требуют лицензии и потому повышают стоимость ноутбука, поэтому если у вас есть возможность приобрести по более низкой цене ноутбук с аналогичными техническими параметрами, но неподходящей вам операционной системой, смело покупайте его, а нужную ОС вы сможете поставить самостоятельно.

Ноутбуки от Apple поставляются с фирменной операционной системой Mac OS и комплектом всех необходимых для работы приложений. В этом случае вам не придется ничего переустанавливать. Чаще всего пользователи отказываются от систем на основе Linux/Unix, которые требуют большей квалификации, не подходят для запуска игр, а также ряда других приложений.

…в процессе развития количество ядер будет становиться всё больше и больше.

(Разработчики Intel )

Ещё core , да ещё core , да ещё много, много core !..

…Ещё совсем недавно мы не слышали и не ведали о многоядерных процессорах, а сегодня они агрессивно вытесняют одноядерные. Начался бум многоядерных процессоров, который пока – слегка! – сдерживают их сравнительно высокие цены. Но никто уже не сомневается, что будущее – именно за многоядерными процессорами!..

Что такое ядро процессора

В центре современного центрального микропроцессора (CPU – сокр. от англ. central processing unit – центральное вычислительное устройство) находится ядро (core ) – кристалл кремния площадью примерно один квадратный сантиметр, на котором посредством микроскопических логических элементов реализована принципиальная схема процессора, так называемая архитектура (chip architecture ).

Ядро связано с остальной частью чипа (называемой «упаковка», CPU Package ) по технологии «флип-чип» (flip-chip , flip-chip bonding – перевернутое ядро, крепление методом перевернутого кристалла). Эта технология получила такое название, потому что обращённая наружу – видимая – часть ядра на самом деле является его «дном», – чтобы обеспечить прямой контакт с радиатором кулера для лучшей теплоотдачи. С обратной (невидимой) стороны находится сам «интерфейс» – соединение кристалла и упаковки. Соединение ядра процессора с упаковкой выполнено с помощью столбиковых выводов (Solder Bumps ).

Ядро расположено на текстолитовой основе, по которой проходят контактные дорожки к «ножкам» (контактным площадкам), залито термическим интерфейсом и закрыто защитной металлической крышкой.

Первый (естественно, одноядерный!) микропроцессор Intel 4004 был представлен 15 ноября 1971 г. корпорацией Intel. Он содержал 2300 транзисторов, работал на тактовой частоте 108 кГц и стоил $300.

Требования к вычислительной мощности центрального микропроцессора постоянно росли и продолжают расти. Но если раньше производителям процессоров приходилось постоянно подстраиваться под текущие насущные (вечно растущие!) запросы пользователей , то теперь чипмейкеры идут с бо-о-о-льшим опережением!

Долгое время повышение производительности традиционных одноядерных процессоров в основном происходило за счет последовательного увеличения тактовой частоты (около 80% производительности процессора определяла именно тактовая частота) с одновременным увеличением количества транзисторов на одном кристалле. Однако дальнейшее повышение тактовой частоты (при тактовой частоте более 3,8 ГГц чипы попросту перегреваются!) упирается в ряд фундаментальных физических барьеров (поскольку технологический процесс почти вплотную приблизился к размерам атома: сегодня процессоры выпускаются по 45-нм технологии, а размеры атома кремния – приблизительно 0,543 нм):

Во-первых, с уменьшением размеров кристалла и с повышением тактовой частоты возрастает ток утечки транзисторов. Это ведет к повышению потребляемой мощности и увеличению выброса тепла;

Во-вторых, преимущества более высокой тактовой частоты частично сводятся на нет из-за задержек при обращении к памяти, так как время доступа к памяти не соответствует возрастающим тактовым частотам;

В-третьих, для некоторых приложений традиционные последовательные архитектуры становятся неэффективными с возрастанием тактовой частоты из-за так называемого «фон-неймановского узкого места» – ограничения производительности в результате последовательного потока вычислений. При этом возрастают резистивно-емкостные задержки передачи сигналов, что является дополнительным узким местом, связанным с повышением тактовой частоты.

Применение многопроцессорных систем также не получило широкого распространения, так как требует сложных и дорогостоящих многопроцессорных материнских плат. Поэтому было решено добиваться дальнейшего повышения производительности микропроцессоров другими средствами. Самым эффективным направлением была признана концепция многопоточности , зародившаяся в мире суперкомпьютеров, – это одновременная параллельная обработка нескольких потоков команд.

Так в недрах компании Intel родилась Hyper-Threading Technology (HTT ) – технология сверхпоточной обработки данных, которая позволяет процессору выполнять в одноядерном процессоре параллельно до четырех программных потоков одновременно. Hyper-threading значительно повышает эффективность выполнения ресурсоемких приложений (например, связанных с аудио- и видеоредактированием, 3D -моделированием), а также работу ОС в многозадачном режиме.

Процессор Pentium 4 с включенным Hyper-threading имеет одно физическое ядро, которое разделено на два логических , поэтому операционная система определяет его, как два разных процессора (вместо одного).

Hyper-threading фактически стала трамплином к созданию процессоров с двумя физическими ядрами на одном кристалле. В 2-ядерном чипе параллельно работают два ядра (два процессора!), которые при меньшей тактовой частоте обеспечивают бо льшую производительность, поскольку параллельно (одновременно!) выполняются два независимых потока инструкций.

Способность процессора выполнять одновременно несколько программных потоков называется параллелизмом на уровне потоков (TLP thread-level parallelism ). Необходимость в TLP зависит от конкретной ситуации (в некоторых случаях она просто бесполезна!).

Основные проблемы создания процессоров

Каждое ядро процессора должно быть независимым, – с независимым энергопотреблением и управляемой мощностью;

Рынок программного обеспечения должен быть обеспечен программами, способными эффективно разбивать алгоритм ветвления команд на четное (для процессоров с четным количеством ядер) или на нечётное (для процессоров с нечётным количеством ядер) количество потоков;

По сообщению пресс-службы AMD , на сегодня рынок 4-ядерных процессоров составляет не более 2% от общего объема. Очевидно, что для современного покупателя приобретение 4-ядерного процессора для домашних нужд пока почти не имеет смысла по многим причинам. Во-первых, на сегодня практически нет программ, способных эффективно использовать преимущества 4-х одновременно работающих потоков; во-вторых, производители позиционируют 4-ядерные процессоры, как Hi-End -решения, добавляя к оснастке самые современные видеокарты и объемные жесткие диски, – а это в конечном счете ещё больше увеличивает стоимость и без того недешёвых

Разработчики Intel говорят: «…в процессе развития количество ядер будет становиться всё больше и больше…».

Что ждёт нас в будущем

В корпорации Intel уже говорят не о «Мультиядерности» (Multi-Core ) процессоров, как это делается в отношении 2-, 4-, 8-, 16- или даже 32-ядерных решений, а о «Многоядерности» (Many-Core ), подразумевая совершенно новую архитектурную макроструктуру чипа, сравнимую (но не схожую) с архитектурой процессора Cell .

Структура такого Many-Core -чипа подразумевает работу с тем же набором инструкций, но с помощью мощного центрального ядра или нескольких мощных CPU , «окруженных» множеством вспомогательных ядер, что поможет более эффективно обрабатывать сложные мультимедийные приложения в многопоточном режиме. Кроме ядер «общего назначения», процессоры Intel будут обладать также специализированными ядрами для выполнения различных классов задач – таких, как графика, алгоритмы распознавания речи, обработка коммуникационных протоколов.

Именно такую архитектуру представил Джастин Раттнер (Justin R. Rattner ), руководитель сектора Corporate Technology Group Intel , на пресс-конференции в Токио. По его словам, таких вспомогательных ядер в новом многоядерном процессоре может насчитываться несколько дюжин. В отличие от ориентации на большие, энергоемкие вычислительные ядра с большой теплоотдачей, многоядерные кристаллы Intel будут активизировать только те ядра, которые необходимы для выполнения текущей задачи, тогда как остальные ядра будут отключены. Это позволит кристаллу потреблять ровно столько электроэнергии, сколько нужно в данный момент времени.

В июле 2008 г. корпорация Intel сообщила, что рассматривает возможность интеграции в один процессор нескольких десятков и даже тысяч вычислительных ядер. Ведущий инженер компании Энвар Галум (Anwar Ghuloum ) написал в своем блоге: «В конечном счете, я рекомендую воспользоваться следующим моим советом… разработчики уже сейчас должны начать думать о десятках, сотнях и тысячах ядер». По его словам, в настоящий момент Intel изучает технологии, которые смогли бы масштабировать вычисления «на то количество ядер, которые мы пока не продаём».

По мнению Галума, в конечном счете успех многоядерных систем будет зависеть от разработчиков, которым, вероятно, придется изменить языки программирования и переписать все существующие библиотеки.



Просмотров