Многоядерные и многопроцессорные вычислительные системы
Корпорация IBM первой интегрировала в кристалл два процессорных ядра — в технологии Power4. При создании этой архитектуры компания ориентировалась прежде всего на рынок высокопроизводительных серверов и суперкомпьютеров, поддерживающих 32-процессорные SMP-системы (Symmetric Multiprocessing System — SMP). Это симметричные многопроцессорные системы, в которых центральные процессоры имеют одинаковые… Читать ещё >
Многоядерные и многопроцессорные вычислительные системы (реферат, курсовая, диплом, контрольная)
Появление многоядерных процессоров является началом новой эры «настольных вычислений». Компании, производящие процессоры, практически подошли к порогу повышения производительности вычислений. Устаревший способ повышения производительности путем увеличения тактовой частоты приводит к росту энергопотребления. Переход на все более тонкие технологии производства микросхем обостряет проблему утечки электрического тока (при сокращении размеров транзисторов ее вероятность возрастает) и нагрева самого процессора. Поэтому уже в первое десятилетие XXI в. появилась необходимость в развитии методов, повышающих производительность процессора в результате увеличения количества вычислительных ядер в одном корпусе и инструкций программного кода, выполняемых за один такт. Для решения данной проблемы было предложено реализовать параллельное исполнение на уровне инструкций (Instruction Level Parallelism — ILP) или потоков (Thread Level Parallelism — TLP) [3].
Распараллеливание на уровне потоков TLP, в отличие от ILP, управляется программно. Виртуальная многопоточность создается в результате выделения в одном физическом процессоре двух или более логических процессоров. Классическим примером такого подхода стала технология Hyper-Threading (НТ) компании Intel[1]. Вследствие того, что в течение такта, как правило, не все исполнительные модули процессора задействованы, их можно загрузить параллельным потоком заданий. Понятно, что вдвое производительность не увеличится, поскольку параллельные потоки используют общие память, кэш и т. д. (к тому же возникают потери из-за синхронизации и распараллеливания инструкций), но она в целом возрастает на 35−50%. Минусом использования технологии TLP является возникновение конфликтов, когда одному потоку требуются результаты выполнения другого, что приводит к ожиданию и росту количества тактов, необходимых для выполнения инструкций.
Очевидно, во избежание описанных выше проблем нужно изолировать в пределах одного процессора выполнение различных потоков инструкций. Причем каждый из них должен посылать команды на свое ядро, т. е. для реализации процесса параллельного выполнения задач следует интегрировать два ядра или более в одном центральном процессоре. Помимо прочего, такая многопроцессорная конфигурация на одном кристалле обеспечивает более высокую скорость обмена между ядрами, чем использование внешних шин, коммутаторов и т. п.
Корпорация IBM первой интегрировала в кристалл два процессорных ядра — в технологии Power4. При создании этой архитектуры компания ориентировалась прежде всего на рынок высокопроизводительных серверов и суперкомпьютеров, поддерживающих 32-процессорные SMP-системы (Symmetric Multiprocessing System — SMP). Это симметричные многопроцессорные системы, в которых центральные процессоры имеют одинаковые права для доступа ко всем системным ресурсам и управлению ими. Задачи между процессорами распределяет операционная система. Оперативная память для них является разделяемым ресурсом.
Двухъядерный процессор — это фактически два процессора в одном корпусе чипа. Преимущество такого процессора над одноядерным проявляется прежде всего при работе с многопоточными приложениями (рис. 5.4).
Многопоточные задачи работают быстрее на двухъядерных процессорах, потому что операционная система может распределять программные потоки отдельно по каждому ядру, в то время как па одноядерных процессорах задачи меняются по мере выполнения, т. е. по очереди. Применение этой технологии позволяет повысить производительность процессоров нового поколения и одновременно избежать роста потребления энергии, которое накладывает ограничения на развитие одноядерных процессоров. Кроме того, чем выше частота процессора, тем больше он теряет производительность при обращении к памяти. Использование двух ядер эффективнее, чем одного, так как в этом случае легче обеспечить процессор данными для обработки. Так как производительность памяти увеличивается медленнее, чем скорость процессоров, повышение производительности путем использования нескольких ядер выглядит более предпочтительным, чем наращивание частоты.
Рис. 5.4. Симметричная многоядерная или многопроцессорная система.
Имеющаяся процессорная архитектура компании Advanced Micro Devices (AMD) [amd.com] позволила, например, интегрировать на тот же кристалл второе ядро при переходе на технологический процесс 90 нм. В процессорах архитектуры AMD64 с двумя ядрами дублированию подвергнуто само вычислительное ядро и кэш-память, в то время как контроллер памяти и контроллер HyperTransport остаются в двухъядерных процессорах в неизменном виде. В связи с этим ключевое значение начинает играть блок System Request Interface (SRI), на который возлагается обязанность арбитража потоков команд и данных между двумя ядрами [4].
Не отстает от AMD и корпорация Intel. Мультиядерность в современном понимании Intel — это один из трех возможных вариантов:
- 1. Независимые процессорные ядра, каждое со своей кэш-памятью, расположены на одном кристалле и просто используют общую системную шину. Это 90-нанометровый Pentium D на ядре Smithfield.
- 2. Похожий вариант — когда несколько одинаковых ядер расположены на разных кристаллах, но объединены вместе с одном корпусе процессора (многочиповый процессор). Таким будет 65-нанометровое поколение процессоров семейств Pentium и Хеоn на ядрах Presler и Dempsey.
- 3. Наконец, ядра могут быть тесно переплетены между собой на одном кристалле и использовать некоторые общие ресурсы кристалла (например, шину и кэш-память). Таким является ближайший Itanium на ядре Montecito. А также мобильный Yonah, выход которого ожидается в недалеком будущем.
В отличие от многоядерных систем, где некоторые вычислительные процессы могут быть «прошиты» в архитектуре ядер и ядра (по очереди или одновременно) используют общие ресурсы, многопроцессорные вычислительные системы ориентированы главным образом па многопоточные вычислительные схемы с разделяемым использованием ресурсов. Так, технология Hyper-Threading (НТ) была создана корпорацией Intel (intel.com) в целях повышения производительности и эффективности серверных систем.
Она дополнила традиционную многопроцессорность, обеспечивая более высокий параллелизм и запас производительности для программного обеспечения (ПО) с поддержкой тредов при работе как на многоядерных, так и на многопроцессорных системах (рис. 5.5). Вообще говоря, Hyper-Threading стала одной из форм синхронной многопоточной технологии SMT (Simultaneous Multi-Threading), где множество потоков, создаваемых программными приложениями, могут выполняться одновременно на одном процессоре.
Рис. 5.5. Схема обработки потоков на двухъядерном процессоре Intel или на двухпроцессорной системе с применением технологии Hyper-Threading.
Широкое распространение мультиядерных и мультипроцессорных систем — это следующий этап развития компьютерных технологий, который преобразит существующую вычислительную среду. В приведенном перечне приведены основные выгоды, получаемые от внедрения таких технологий:
- 1. Для коммерческого рынка. Корпоративные ИТ-системы заметно повышают производительность, используя оптимизированные мультипоточные приложения. Внедрение новых процессоров позволяет создавать более сложные системы с минимальными вложениями, опираясь на существующую инфраструктуру. Кроме того, такие системы отличаются простым управлением, упрощенным менеджментом, низкой совокупной стоимостью владения, высокой эффективностью и производительностью.
- 2. Для конечных пользователей. Указанные технологии способны существенно увеличить объем выполняемой работы в задачах, требующих интенсивных вычислений, например таких, как мультимедиа, создание цифрового контента и эффективное управление им, обеспечение безопасности и пр. Используя двухъядерные процессоры, можно оценить преимущества истинной многозадачности, обрабатывая большие объемы данных и производя параллельно сложные расчеты.
- 3. Для разработчиков. Разработчики программного обеспечения теперь не ограничены возможностями одного процессора. Новые процессоры дают максимальное быстродействие и позволяют задействовать новые алгоритмы, обрабатывающие данные одновременно. Новейшие средства разработки ускорят процесс компиляции и позволят создавать более сложные проекты, в которых нуждается заказчик.
- [1] Мир ПК. 2002. № 2. С. 10.