Библиографическое описание:

Светличный А. Н. Краткий обзор достижений в области гетерогенных вычислений // Молодой ученый. — 2016. — №1. — С. 213-216.



 

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

Ключевые слова: гетерогенные архитектуры, энергоэффективность, параллельные вычисления, производительность процессоров, высокопроизводительные вычисления.

 

Архитектура и конструкция процессоров всегда были стремительно развивающимися областями для исследований. Первые поколения цифровых компьютеров были построены на электронных лампах и реле и имели сложные межсоединения. Второе поколение строилось на цифровых транзисторах, изобретенных в 1947 учеными Бардином, Браттейном и Шокли, за что они были удостоены нобелевской премии по физике в 1956 году [1]. Использование транзисторов позволяло очень значительно уменьшать размеры и увеличивать скорость логических элементов, делая компьютеры более компактными и энергоэффективными. В 1958 году Нойс и Кибли независимо друг от друга изобрели интегральную схему в 1958 году. В СССР первая полупроводниковая интегральная микросхема была создана на основе планарной технологии, разработанной в начале 1960 года в НИИ-35 (затем переименован в НИИ «Пульсар») коллективом, который в дальнейшем был переведён в НИИМЭ («Микрон») [2]. Появление интегральных схем привело к дальнейшему уменьшению габаритов, необходимого для появления компьютеров третьего поколения. Так же появление интегральных схем послужило началом для изобретения микропроцессора инженерами компании Intel в 1968 году. Тенденция к уменьшению размеров и энергопотребления сохраняется в электронике и по сей день. По мере уменьшения размеров и энергопотребления на логический элемент пропорционально им увеличивалась вычислительная мощность. Последние несколько десятилетий основными способами увеличения вычислительной мощности были увеличение числа транзисторов в единицу площади и увеличение частоты их работы.

В 1965, Гордон Мур предсказал что число транзисторов, размещенных на одном кристалле, будет удваиваться каждые два года и эта тенденция сохраниться на протяжении более тридцати лет [3]. С сегодняшними достижениями в производстве, с помощью 32нм техпроцесса возможно разместить 16 миллиардов транзисторов на одном кристалле и в настоящее время нет признаков, что экспоненциальный рост описанный Муром прекратиться.

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

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

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

Классификация гетерогенных систем

Введение описывает нынешние тенденции по увеличению производительности введением параллелизма, а не увеличением тактовой частоты. Поскольку параллелизм на уровне команд уже практически изжил себя то акценты при создании высокопроизводительных систем смещаются на многопроцессорный, многоядерный и многоконтекстный параллелизм. По классификации Флинна, предложенной Майклом Флинном в 1966 году и расширенной в 1972 году [4], архитектуры по параллелизму различают на 4 класса:

                    ОКОД — Вычислительная система с одиночным потоком команд и одиночным потоком данных (SISD, SingleInstructionstreamovera SingleData stream) — Последовательная вычислительная машина, которая не использует параллелизм. Один блок управления получает один поток набора инструкций из памяти. Затем блок управления генерирует соотвествующие сигналы управления для определенного обрабатывающего устройства для оперирования над одним потоком данных, т. е. одной операцией за один раз. Примерами SISD архитектуры являются традиционные однопроцессорные машины, такие как персональные компьютеры или старые мейнфреймы.

                    ОКМД — Вычислительная система с одиночным потоком команд и множественным потоком данных (SIMD, SingleInstruction, MultipleData) — Компьютеры которые используют один поток инструкций для нескольких потоков данных для выполнения операций, которые могут быть, естественно параллелизованы. Например, массив процессоров или графический процессор.

                    МКОД — Вычислительная система со множественным потоком команд и одиночным потоком данных (MISD, MultipleInstruction SingleData) — Множество команд оперируют над одним потоком данных. Редкая архитектура, которая, как правило, используется для обеспечения отказоустойчивости. Пример — компьютер управления полетом космического шаттла.

                    МКМД — Вычислительная система со множественным потоком команд и множественным потоком данных (MIMD, MultipleInstruction MultipleData) — Несколько автономных процессоров одновременно выполняют различные инструкции над различными данными. Распределенные системы, как правило, относятся к MIMD архитектуре. Многоядерный суперскалярный процессор это MIMD процессор.

MIMD класс так же делится на подклассы:

                    PMD (SingleProgramMultipleData) — Несколько автономных процессоров одновременно выполняют одну программу над различными данными.

                    MPMD (MultipleProgramsMultipleData) — описывает систему, а) где на одном процессоре MIMD-машины работает мастер-программа, а на других подчиненная программа, работой которой руководит мастер-программа (принцип master/slave или master/worker); б) где на разных узлах MIMD-машины работают разные программы, которые по-разному обрабатывают один и тот же массив данных (принцип coupledanalysis), большей частью они работают независимо друг от друга, но время от времени обмениваются данными для перехода к следующему шагу.

Гетерогенные архитектуры

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

Многоядерные процессоры с гетерогенной архитектурой — процессоры, ядра которых выполняют разные задачи. Например, микропроцессор «Эльбрус-2С+» (1891ВМ7Я) — гетерогенный многоядерный процессор компании МЦСТ с архитектурой «Эльбрус» на основе архитектуры широкого командного слова (VLIW). Содержит традиционный SISD двухъядерный процессор и 4 ядра MIMD цифровых сигнальных процессоров (DSP) производства ОАО НПЦ «Элвис». Основной сферой применения микропроцессора «Эльбрус-2С+» являются системы цифровой интеллектуальной обработки сигнала, такие как радиолокаторы, анализаторы изображений и т. п.

Графический процессор (graphicsprocessingunit, GPU) — процессор традиционно предназначенный для графического рендеринга. Выходными данными GPU является информация о пикселе. GPU использует набор ядер для параллельного вычисления цвета пикселей. Современные GPU имеют десятки SIMD ядер и используются для различных вычислительных задач, задача рендеринга для них является частным случаем применения. Теоретическая пиковая производительность графических процессоров в настоящее время близка к трем терафлопсам, что делает их привлекательными для высокопроизводительных вычислений. Однако, недостатком является то, что для коммутации графические процессоров с ЦПУ используется шина PCI Express, имеющая теоретические ограничения по пропускной способности примерно в 8 Гб/с.Сам по себе GPU является симметричным многомерным процессором, управляемым традиционным ЦПУ. В паре они образуют гетерогенную систему.

Со-процессор на базе программируемой пользователем вентильной матрицы (ППВМ, англ. Field-ProgrammableGateArray, FPGA). ППВМ — полупроводниковое устройство, состоящее из набора конфигурируемых логических блоков. Логические блоки конфигурируются путем изменения межсоединений, например, с помощью исходного кода на языке проектирования (типа VHDL). ППВМ является одной из архитектурных разновидностей программируемых логических интегральных схем (поэтому далее для обозначения ППВМ будет использоваться сокращение — ПЛИС). Конфигурация ПЛИС может быть изменена практически в любой момент в процессе их использования. Конфигурируемые логические блоки, из которых состоит ПЛИС, подобны переключателям с множеством входов и одним выходом (логические вентили или gates). В цифровых схемах такие переключатели реализуют базовые двоичные операции AND, NAND, OR, NOR и XOR. В большинстве современных микропроцессоров функции логических блоков фиксированы и не могут модифицироваться. Принципиальное отличие ПЛИС состоит в том, что и функции блоков, и конфигурация соединений между ними могут меняться с помощью специальных сигналов, посылаемых схеме. В некоторых специализированных интегральных схемах (ASIC) используются логические матрицы, аналогичные ПЛИС по структуре, однако они конфигурируются один раз в процессе производства, в то время как ПЛИС могут постоянно перепрограммироваться и менять топологию соединений в процессе использования. Однако, такая гибкость требует существенного увеличения количества транзисторов микросхемы. Конфигурация ПЛИС может содержать в себе имплементацию традиционных процессорных ядер, что делает ее гетерогенной саму по себе. Все вышеописанное позволяет использовать ПЛИС для эффективного решения широкого круга специфических задач. Но так же все это позволяет использовать ПЛИС в качестве со-процессора к традиционным процессорам для увеличения производительности и энергоэффективности для некоторых типов приложений. ПЛИС позволяют создавать пользовательский набор инструкций для данного приложения, и применить сотни или даже тысячи элементов обработки одновременно. Для приложений, требующих тяжелого манипулирования с битами, сложение, умножение, сравнение, свертки или преобразования, ПЛИС может выполнять эти операции над тысячью частями данных сразу, гораздо быстрее и с более низким энергопотреблением, чем обычные процессоры.

Конечно это далеко не полный список, гетерогенные архитектуры можно найти во многих облостях вычислительной техники:

                    Высокопроизводительные вычисленительные системы– суперкомпьютеры, такие как CrayXD1, SRC-6 и SRC-7.

                    Встраиваимые системы (DSP и мобильные платформы) — TexasInstrumentsOMAP, Analog Devices Blackfin, Nvidia Tegra, Samsung Exynos, Apple A series.

                    Реконфигурируемые вычисленительные системы– XilinxVirtex и Zynq, IntellStellatron (Atom + AlteraFPGA).

                    Сети — Intel IXP Network Processors, Netronome NFP Network Processors

                    Вычислительные системы общего назначения, игровые и мультимедийные системы — IBMCell, гибридные процессоры (APU) от AMD.

Выводы

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

 

Литература:

 

  1.                «The Nobel Prize in Physics 1956". Nobelprize.org. Nobel Media AB. Retrieved 7 December 2014.
  2.                Создание первой отечественной микросхемы. Chip News № 8, 2000 г..
  3.                G.Moore, Cramming more components onto integrated circuits, Electronics 38(8),1965.
  4.                Flynn, M. J.. «Some Computer Organizations and Their Effectiveness». IEEE Trans. Comput., September 1972.
  5.                John Shalf. The New Landscape of Parallel Computer Architecture.
  6.                Heterogeneous Processing: a Strategy for Augmenting Moore's Law. Linux Journal.

Обсуждение

Социальные комментарии Cackle