Гибридная вычислительная система
Гибридная вычислительная система — система с гетерогенной аппаратной вычислительной структурой. Комбинация любых вычислительных устройств или блоков, например вычисления с помощью CPU и GPU совместно.[1][2]
История
Обычно основным вычислительным компонентом систем для высокопроизводительных вычислений, включая кластеры, является центральный процессор. Однако, уже начиная с процессоров Intel486DX в составе компьютеров появился такой элемент, как сопроцессор, что можно считать гибридизацией на аппаратном уровне.
В середине 2000-х для вычислительных целей начали использовать графический процессор (GPU).[1]
Основная проблема состоит в том, чтобы найти способы выполнять вычислительные задачи с помощью графического процессора. Осознав спрос на подобные вычисления, компания NVIDIA в 2007 году представила программно-аппаратную платформу CUDA, позволяющую запускать произвольный код на GPU. До появления CUDA, программистам приходилось строить гибридные системы из обычных видеокарт и программировать их, используя сложнейшие графические API.
Компания ATI разработала свои аналоги CUDA для GPGPU применений. Это технологии ATI Stream и Close to Metal.
Ожидалось, что новая архитектура Intel Larrabee будет поддерживать технологии GPGPU. Однако фактически выпущенный в рамках линейки Intel MIC продукт, Xeon Phi поддерживал только вычисления общего назначения (совместим с x86_64), лишившись возможностей графического процессора. Последующие варианты Xeon Phi реализовывались не только в виде карт расширения PCI Express, но и в виде единственного центрального процессора.
Технические особенности
GPU
Высокая вычислительная мощность GPU объясняется особенностями архитектуры. Если современные CPU содержат несколько ядер (на большинстве современных систем от 2 до 8х, 2018 г., на северных может встречаться максимум до 64х), графический процессор изначально создавался как многоядерная структура, в которой количество ядер измеряется сотнями(пример - Nvidia 1070 имеет 1920 ядер). Разница в архитектуре обусловливает и разницу в принципах работы. Если архитектура CPU предполагает последовательную обработку информации, то GPU исторически предназначался для обработки компьютерной графики, поэтому рассчитан на массивно параллельные вычисления.[3]
Каждая из этих двух архитектур имеет свои достоинства. CPU лучше работает с последовательными задачами. При большом объеме обрабатываемой информации очевидное преимущество имеет GPU. Условие только одно – в задаче должен наблюдаться параллелизм.
GPU уже достигли той точки развития, когда многие приложения реального мира могут с легкостью выполняться на них, причем быстрее, чем на многоядерных системах. Будущие вычислительные архитектуры станут гибридными системами с графическими процессорами, состоящими из параллельных ядер и работающими в связке с многоядреными CPU.[4]
Оригинальный текст (англ.)[показатьскрыть]GPUs have evolved to the point where many real-world applications are easily implemented on them and run significantly faster than on multi-core systems. Future computing architectures will be hybrid systems with parallel-core GPUs working in tandem with multi-core CPUs.[5]Профессор Джек Донгарра (Jack Dongarra)
Директор Innovative Computing Laboratory
Университет штата Теннесси
Cell
Процессоры IBM Cell, использовавшиеся в игровых приставках Sony PlayStation 3, содержали два типа ядер: PPE - ядро общего назначения, и массив из 8 SPE сопроцессоров.
Применение в распределенных вычислениях
Программа для GRID-вычислений BOINC поддерживает возможность использования графического процессора для выполнения вычислительных задач.[6]
Литература
- Э. Таненбаум, М. ван Стеен. Распределенные системы. Принципы и парадигмы. — СПб.: Питер, 2003. — 877 с. — («Классика computer science»). — ISBN 5-272-00053-6.
Ссылки
- Amar Shan. Heterogeneous Processing: a Strategy for Augmenting Moore's Law (англ.). Linux journal. Дата обращения: 13 сентября 2011. Архивировано 16 мая 2012 года.
Примечания
- Гибридные вычислительные системы на основе GPU
- // Bull.com
- Гибридные вычислительные системы на основе графических процессоров NVIDIA Tesla Архивная копия от 8 сентября 2011 на Wayback Machine
- Вычисления на GPU . Дата обращения: 13 сентября 2011. Архивировано 31 мая 2012 года.
- What is GPU Computing? (англ.). Дата обращения: 13 сентября 2011. Архивировано 31 мая 2012 года.
- BOINC. Use your GPU for scientific computing . Дата обращения: 13 сентября 2011. Архивировано 13 сентября 2011 года.