Параллельные вычислительные системы

Распараллеливание вычислений в многопроцессорных и параллельных структурах как способ повышения производительности. Увеличение количества ядер. Разница между графическим и центральным процессорами. Применение чипов для расчётов на графических ускорителях.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 02.02.2016
Размер файла 19,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Актуальность темы
  • 2. Увеличение количества ядер
  • 3. Технология NVIDIA CUDA
  • 4. Разница между CPU и GPU
  • 5. Первое применение расчётов на графических ускорителях
  • 6. Области применения параллельных расчётов на графических ускорителях
  • Заключение
  • Список использованной литературы
  • Введение
  • Распараллеливании вычислений - это разделение больших задач на более маленькие, которые могут выполняться одновременно. Обычно для параллельных вычислений требуются некоторые координированные действия. Параллельные вычисления бывают нескольких форм (на уровне инструкций, битов, данных, задач). Параллельные вычисления находили своё применение на протяжении многих лет в основном в высокопроизводительных вычислениях. Но ситуация в последнее время изменилась. Появился спрос на такие вычисление из-за физических ограничений роста тактовой частоты процессора. Параллельные вычисления стали доминирующей идеей в архитектуре компьютера. Она приобрела форму многоядерных процессоров.
  • Использование параллельных вычислительных систем обусловлено стратегическим направлениям развития в компьютерной индустрии. Главным обстоятельством послужило не только ограничение возможностей быстродействия машин, основанных на последовательной логике, сколь и наличием задач, для которых наличие вычислительной техники не является ещё достаточным. К задачам данной категории можно отнести моделирование динамических процессов.
  • Появление процессоров с несколькими ядрами явилось скачком развития эффективных супервычислений, которые могут похвастаться более высокими показателями производительность/стоимость, по сравнению с системами на базе супер ЭВМ. Использование многоядерных процессоров даёт гибкую возможность, в частности варьирования конфигураций, а также масштабирования мощности в вычислительных системах - начиная от PC, серверов, рабочих станций и заканчивая кластерными системами.
  • 1. Актуальность темы
  • В последние годы появилось большое количество дешевых кластерных параллельных вычислительных систем, которые привели к быстрому развитию параллельных вычислительных технологий, в том числе и в области высокопроизводительных вычислений. Большинство основных производителей микропроцессоров стали переходить на многоядерные архитектуры, что повлияло на изменение ситуации в области параллельных вычислительных технологий. Изменение аппаратной базы влечёт за собой изменение построений параллельных алгоритмов. Для реализации в многоядерных архитектурах вычислительных нужны новые параллельные алгоритмы, учитывающих новые технологии. Эффективность использования вычислительных ресурсов будет зависеть от качества собственно параллельных приложений и специализированных библиотек, ориентированных на многоядерные архитектуры.
  • Применение высокопроизводительной техники в моделировании реальных технических, экономических, и других процессов, описываемых системами обыкновенных дифференциальных уравнений большой размерности, не только оправдано, но и необходимо. Распараллеливании вычислений в многопроцессорных и параллельных структурах является эффективным способов повышения производительности. Так что, применение параллельных вычислительных систем довольно важное направление развития вычислительной техники.

2. Увеличение количества ядер

Первым процессором для массового использования был POWER4 с двумя ядрами PowerPC на одном кристалле. Выпущен компанией IBM в 2001 году.

Производители процессоров Intel, AMD, IBM, ARM признали увеличение число ядер как одно из приоритетных направлений увеличения производительности.

В 2011 году выпустили в производство 8-ядерные процессоры для домашних PC, и 16-ядерные для серверных систем.

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

2-х ядерные процессоры существовали ранее, например IBM PowerPC-970MP (G5Н). Но такие процессоры применялись в узком круге специализированных задач.

В апреле 2005 года AMD представила 2-ядерный процессор Opteron. архитектура AMD64. предназначен для серверов. В мае 2005 года Intel представила процессор Pentium D. Архитектуры x86-64. Стал первым 2-х ядерным процессором для домашних PC.

В марте 2010 года AMD представила 12-ядерные серийные серверные процессоры Opteron 6100 (архитектура x86/x86-64).

В августе 2011 года AMD представила 16-ядерные серийные серверные процессоры Opteron серии 6200. Процессор Interlagos в одном корпусе содержит два 8-ядерных (4-модульных) чипа и является совместимым с платформой AMD Opteron серии 6100 (Socket G34).

3. Технология NVIDIA CUDA

Большое количество параллельных вычислений связано с трёхмерными играми. Параллельные векторные вычисления на универсальных устройствах с многоядерными процессорами используются в 3D-графике, достигая высокой пиковой производительности. Универсальным процессорам это не под силу. Максимальная скорость достигается только в ряде удобных задач, имея некоторые ограничения. Но всё равно такие устройства широко применяются в сферах, где изначально не предназначались. Например, процессор Cell, разработки альянса Sony-Toshiba-IBM в игровой приставке Sony PlayStation 3, или, современные видеокарты от компаний NVIDIA и AMD.

Ещё несколько лет назад начали появляться технологии неграфических расчётов общего назначения GPGPU для 3D видеоускорителей. Современные видеочипы имеют сотни математических исполнительных блоков, такая мощь может помочь для значительного ускорения множества вычислительно интенсивных приложений. Нынешние поколения GPU имеют гибкую архитектуру, которая вместе с программно-аппаратными архитектурами и высокоуровневыми языками даёт возможность делать их намного более доступными.

Появление достаточно быстрых и гибких шейдерных программ заинтересовало разработчиков создать GPGPU, которые способны выполнять современные видеочипы. Разработчики захотели на GPU рассчитывать не только изображения в игровых и 3D приложениях, но и применять в других областях параллельных вычислений. Для этого использовали API графических библиотек OpenGL и Direct3D. Данные в видеочип передавались в качестве текстур, расчётные программы помещались в виде шейдеров. Главным недостатком такого способа является значительная сложность программирования, низкий обмен данными между GPU и CPU, и некоторые другие ограничения.

Ведущие производители видеочипов NVIDIA и AMD представили платформы для параллельных вычислений - CUDA и CTM, соответственно. В видеокартах появилась аппаратная поддержка прямого доступа к вычислительным ресурсам. CUDA является расширением языка программирования С. CTM более похож на виртуальную машину, которая выполняет только ассемблерный код. Обе платформы убрали ограничениz предыдущих версий GPGPU, которые использовали традиционный графический конвейер, ну и конечно графические библиотеки Direct3D и Open GL.

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

Именно это постигнуло компанию NVIDIA выпустить платформу CUDA -- C-подобный язык программирования, наделённый своим компилятором, а также имеющий в наборе библиотеками для вычислений на GPU. Написание хорошего кода для видеочипов очень не простое занятие, но CUDA даёт больше контроля над аппаратными средствами видеокарты. CUDA появилась с видеокарт серии 8. Появилась CUDA версии 2.0, которая поддерживает расчёты с двойной точность в 32- и 64- битных ОС Windows, Linux, MacOS X.

4. Разница между CPU и GPU

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

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

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

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

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

Политика разработчиков CPU: добиться выполнения большего числа инструкций параллельно, для увеличения производительности. Поэтому, начиная с процессоров Intel Pentium, появилась технология суперскалярного выполнения, которая представляет собой выполнение 2-х инструкций за такт, а процессор Pentium Pro отличился внеочередным выполнением инструкций.

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

Другое отличие CPU от GPU: принцип доступа к памяти. В GPU Он связный и предсказуемы, т.к. если считались текстуры, значит через некоторое время придёт очередь соседних текстур. Поэтому организация памяти у видеокарты и центрального процессора разные. И видеочипу по этой причине не надо кэш-память большого размера, а для текстур требуются лишь около 128-256 кБ.

Работа с памятью также различная. CPU имеют встроенные контроллеры памяти, у GPU обычно их по несколько, вплоть до восьми 64-бит каналов. Кроме того применяется очень быстрая память, следовательно, пропускная способность памяти выше, что является плюсом для параллельных расчётов, оперирующие с огромными потоками данных.

В CPU большое кол-во транзисторов уходит на буферы команд, аппаратное предсказание ветвления, огромные объёмы кэш-памяти. Все эти блоки нужны для ускорения немногочисленных потоков команд. В GPU транзисторы идут на массивы исполнительных блоков, разделяемую память малого объёма, управляющие потоками блоки, контроллеры памяти. Всё это не ускоряет выполнение отдельных потоков, но позволяет обрабатывать их в огромном количестве одновременно.

Кэширование. CPU использует кэш для уменьшения задержек доступа к памяти, следствие чего, происходит увеличение производительности. GPU использует кэш для увеличения пропускной способности. CPU снижает задержки доступа к памяти за счёт большого кэша и предсказания ветвлений кода. Эти аппаратные части являются большими ни чипе, следовательно, они потребляют много энергии. GPU решают проблему задержки доступа к памяти другим способом: исполнение тысяч потоков одновременно. Когда один поток ожидает данные, другой поток выполняет вычисления без ожидания и задержек.

В общем можно сделать следующий вывод: видеочипы предназначены для параллельных вычислений с большим объёмом данных и большим количество арифметических операций.

5. Первое применение расчётов на графических ускорителях

История применения чипов для математических расчётов началось давно. Самые первые попытки были примитивными и использовали некоторые функции из Z-буферизации и растеризации. Но с появлением шейдеров началось ускорение. В 2003г. на SIGGRAPH появилась новая секция под вычисления, и она получила GPGPU.

BrookGPU. Известный компилятор языка программирования Brook. Является потоковым. Был специально разработан для вычислений на GPU. Разработчики использовали API: Direct3D или OpenGL. Это существенной ограничивало применения GPU, т.к. шейдеры и текстуры применялись в 3D графике, а специалисты по параллельному программированию ничего знать не обязаны. Они используют тока потоки и ядра. Brook смог немного помочь в этой задачи. Расширения к языку С помогли скрыть от программистов трёхмерный API, и предоставить видеочип в качестве параллельного сопроцессора. Компилятор компилировал код и привязывал к библиотеке DirectX, OpenGL или x86.

6. Области применения параллельных расчётов на графических ускорителях

Приведём усреднённые цифры прироста производительности вычислений, полученные исследователями по всему миру. При переходе на GPU прирост производительности составляет в среднем в 5-30 раз, а в некоторых примерах доходит и до 100 раз (как правило это код, который непригоден для расчётов при помощи SEE.

Вот некоторые примеры ускорений:

· Флуоресцентная микроскопия - в 12 раз;

· Молекулярная динамика - в 8-16 раз;

· Электростатика (прямое и многоуровневое суммирование Кулона) - в 40-120 раз и 7 раз.

ядро процессор графический

Заключение

В реферате удалось рассмотреть параллельные вычисления на многоядерных процессорах, а также технологиях CUDA и CTM. Были рассмотрены разница между CPU и GPU, какие были сложности применения видеокарт в параллельных вычислениях без технологии CUDA, рассмотрены области применения.

В реферате не было рассмотрело применение параллельных вычислений в центральных процессорах с интегрированным видеоядром. Это процессоры фирмы AMD серии А (AMD A10, AMD A8, AMD A6, AMD A4) и процессоры фирмы Intel серии i3/i5/i7 со встроенным видеоядром HD Graphics.

Список использованной литературы

1. Сайт ixbt.com, владелец Byrds Research and Publishing, Ltd

2. Сайт wikipedia.org, владелец Фонд Викимедиа

3. Сайт nvidia.ru, владелец NVIDIA corporation

Размещено на Allbest.ru

...

Подобные документы

  • Пакетный метод как основной способ выполнения коммуникационных операций, его содержание и предъявляемые требования. Оценка трудоемкости операции передачи данных между двумя узлами кластера. Этапы разработки параллельных алгоритмов (распараллеливания).

    презентация [318,1 K], добавлен 10.02.2014

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

    презентация [1,1 M], добавлен 22.02.2016

  • Классификация параллельных вычислительных систем. Существенные понятия и компоненты параллельных компьютеров, их компоненты. Особенности классификаций Хендера, Хокни, Флинна, Шора. Системы с разделяемой и локальной памятью. Способы разделения памяти.

    курсовая работа [331,1 K], добавлен 18.07.2012

  • Математическая основа параллельных вычислений. Свойства Parallel Computing Toolbox. Разработка параллельных приложений в Matlab. Примеры программирования параллельных задач. Вычисление определенного интеграла. Последовательное и параллельное перемножение.

    курсовая работа [1,1 M], добавлен 15.12.2010

  • Развитие концепций и возможностей ОС. Параллельные компьютерные системы и особенности их ОС. Симметричные и асимметричные мультипроцессорные системы. Виды серверов в клиент-серверных системах. ОС для облачных вычислений. Кластерные вычислительные системы.

    лекция [1,8 M], добавлен 24.01.2014

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

    презентация [1,2 M], добавлен 10.02.2014

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

    контрольная работа [118,1 K], добавлен 02.06.2014

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

    дипломная работа [1,3 M], добавлен 09.09.2010

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

    курсовая работа [162,2 K], добавлен 21.06.2013

  • Однопроцессорные вычислительные системы не справляются с решением военно-прикладных задач в реальном времени, поэтому для повышения производительности вычислительных систем военного назначения используются многопроцессорные вычислительные системы (МВС).

    реферат [70,1 K], добавлен 30.05.2008

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

    реферат [280,6 K], добавлен 01.12.2010

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

    курсовая работа [669,3 K], добавлен 07.09.2015

  • Сравнение центрального и графического процессора компьютера в параллельных расчётах. Пример применения технологии CUDA для неграфических вычислений. Вычисление интеграла и сложение векторов. Технические характеристики ПК, применяемого для вычислений.

    курсовая работа [735,9 K], добавлен 12.07.2015

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

    презентация [8,3 M], добавлен 11.10.2014

  • Описание кластерных систем и характеристика библиотек параллелизма. Аналоги PVM. Организация параллельных вычислений. Описание оборудования и программного обеспечения кластера. Гипотеза Гольдбаха. Процесс компиляции собственной программы для работы с PVM.

    курсовая работа [847,2 K], добавлен 05.12.2014

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

    презентация [1,3 M], добавлен 10.02.2014

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

    курсовая работа [401,9 K], добавлен 18.06.2015

  • Понятие вычислительных систем, их классификация по различным признакам. Модели параллельных вычислений PGAS и APGAS. Разработка программного продукта для анализа информационных обменов в параллельных программах на языке IBM X10. Расчёт его себестоимости.

    дипломная работа [1,6 M], добавлен 10.06.2013

  • Главный недостаток систем с общей шиной. Использование матричного коммутатора в схемах. Соединения между процессорами с системах с распределенной памятью. Схема соединений процессоров в компьютере BBN Butterfly. Топологии типа гиперкуб. Архитектура NUMA.

    лекция [192,3 K], добавлен 22.10.2014

  • Создание и редактирование текстовых документов, содержащих таблицы, рисунки и другие мультимедийные объекты. Разница между текстовыми редакторами и текстовыми процессорами. Запуск Microsoft Word. Создание нового документа. Завершение работы в MS Word.

    презентация [306,6 K], добавлен 19.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.