Українська   English
ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

Одним из основных стратегических направлений развития современной компьютерной индустрии является применение высокопроизводительных параллельных вычислительных систем (ВС). Эта тенденция во многом обусловлена принципиальным ограничением максимально возможного быстродействия обычных последовательных машин, а также постоянным появленим новых вычислительных задач, для решения которых возможностей существующих средств вычислительной техники всегда оказывается недостаточно. Моделирование реальных многомерных динамических процессов, описываемых системами обыкновенных дифференциальных уравнений (СОДУ) представляет собой один из классов задач, для решения которых использование параллельных суперкомпьютеров не только оправдано, но и необходимо. Об этом свидетельствует известный список большой вызов, в котором такие задачи занимают одно из ведущих мест [1].

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

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

1. Актуальность темы

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

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

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

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

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

2. Цель и задачи исследования, планируемые результаты

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

Основные задачи исследования:

  1. Рассмотреть подходы к параллельной реализации неявных блочных методов решения задачи Коши;
  2. Провести анализ платформы CUDA в качестве инструмента для решения данной задачи;
  3. Создать программные средства для реализации представленных методов на платформе CUDA;
  4. Провести аналогичную работу для альтернативных платформ;
  5. Выполнить анализ резуьтатов, полученных в ходе экспериментов;
  6. Провети сравнительный анализ различных платформ для решения данного класса задач, дать оценку эффективности и сформировать соответствующие выводы.

Объект исследования: многоядерные процессоры как инструмент для параллельного решения задачи Коши.

Предмет исследования: параллельные численные неявные блочные методы решения задачи Коши и их реализации на различных платформах для использования аппаратного параллелизма.

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

  1. Эффективность реализации неявных блочных методов решения задачи Коши на различных платформах параллельного программирования;
  2. Создание механизма тестирования для оценки различных реализаций.

3. Обзор исследований и разработок

3.1 Обзор международных источников

Хайрер Е. и Ваннер Г., известные европейские математики, в своих работах [45] представляют полную картину современного состояния теории и практики численного решения обыкновенных дифференциальных уравнений. В работах описываются основные теоретические результаты. Хорошо представлены наиболее употребляемые численные методы, дается большое количество примеров практических применений в физике и прикладных науках. В дополнение ко всему представлены тексты программ, реализующих многие рассмотренные методы.

Полноценное сочетание учебного пособия и справочника по методам численной алгебры представляет собой книга [6] известных американских математиков–вычислителей, Голуба Дж. и Ван Лоун Ч. Изложение сжатое, в рецептурной формы, без доказательств. Книгу отличают методические преимущества: каждый раздел содержит задания для читателей–студентов, и обзор научной литературы — для специалистов. Для математиков–вычислителей, инженеров, студентов математических и технических специальностей.

В книге Дж.Холла [7] представлен полный набор лучших из существующих алгоритмов решения, а также обзор последних достижений теории как для начальных, так и краевых задач. Книга адресована широкому кругу специалистов, интересующихся численными методами.

3.2 Обзор национальных источников

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

Учебные пособия Гергеля В.П. [3] содержат материалы для работы в области параллельного программирования. Дается краткая характеристика принципов построения параллельных вычислительных систем, рассматриваются математические модели параллельных алгоритмов и программ для анализа эффективности параллельных вычислений, приводятся примеры конкретных параллельных методов для решения типовых задач вычислительной математики.

3.3 Обзор локальных источников

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

Профессор Фельдман Л.П. и доцент Назарова И.А. (ДонНТУ) в [9] рассмотрели параллельный алгоритм решения систем ОДУ, ориентированный на системы с SIMD-архитектурой. Были получены характеристики алгоритма, такие как время выполнения, ускорение и эффективность параллельной реализации.

Профессор Петренко А.И. (КПИ), доцент Дмитриева О.А. (ДонНТУ) и профессор Фельдман Л.П. (ДонНТУ) в [10] подробно осветили современные численные методы решения систем дифференциальных уравнений, в том числе и жестких. Особое внимание уделено практической реализации методов.

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

4. Использование многоядерных процессоров

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

Классификация архитектур вычислительных систем по М.Флинну

Рисунок 1 — Классификация архитектур вычислительных систем по М.Флинну

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

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

В качестве наиболее перспективной технологии сейчас рассматривается программирование на GPU. Устройство архитектуры GPU можно кратко охарактеризовать как макроархитектуру вычислительного кластера, реализованную в микромасштабе. GPU состоит из однородных вычислительных элементов с общей памятью. Каждый вычислительный элемент способен исполнять тысячи потоков, переключение между которыми не имеет накладных расходов. Потоки могут быть сгруппированы в блокиЮ имеющие общий кэш и быструю разделяемую память, явно контрлируемую пользователем. Наиболее популярная реализация данного механизма в сочетании с расширениями для процедурных языков программирования носит название Compute Unified Device Architecture (CUDA) [12].

Сравнение CPU и GPU

Рисунок 2 — Сравнение CPU и GPU (анимация: 10 кадров, 2 цикла повторения, 53 Кб)

Итак, CUDA — это программно-аппаратная архитектура параллельных вычислений, которая позволяет существенно увеличить вычислительную производительность благодаря использованию графических процессоров фирмы Nvidia. CUDA позволяет программистам реализовывать на специальном упрощённом диалекте языка программирования Си алгоритмы, выполнимые на графических процессорах, и включать специальные функции в текст программы на Си. Архитектура CUDA даёт разработчику возможность по своему усмотрению организовывать доступ к набору инструкций графического ускорителя и управлять его памятью. В архитектуре CUDA используется модель памяти грид, кластерное моделирование потоков и SIMD-инструкции. CUDA применима не только для высокопроизводительных графических вычислений, но и для различных научных вычислений.

Код CUDA

Рисунок 3 — Код CUDA

Выводы

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

В качестве будущих исследований предполагается:

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

На момент написания данного реферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2014 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список источников

  1. Grand Challenges: Science, Engineering and Societal Advances Requiring Networking and Information Technology Research and Development [Электронный ресурс] // Report by Interagency Working Group on Information the Technology Research and Development. — Режим доступа: http://www.nitrd.gov/pubs/200311_grand_challenges.pdf
  2. Забродин А.В. Параллельные вычислительные технологии. Состояние и перспективы // Материалы первой молодежной школы ”Высокопроизводительные вычисления и их приложения” — М.МГУ, 2000.
  3. Гергель В.П. Теория и практика параллельных вычислений // В.П. Гергель — М.: Мир, 2007 — 424 c.
  4. Хайрер Э., Нерсетт С., Ваннер. Г. Решение обыкновенных дифференциальных уравнений. Нежесткие задачи. // Э. Хайрер, С. Нерсетт, Г. Ваннер. — М.: Мир, 1990. — 512с. — ISBN 5–03–001179–X.
  5. Хайрер Э., Ваннер. Г. Решение обыкновенных дифференциальных уравнений. Жесткие задачи. // Э. Хайрер, Г. Ваннер. — М.: Мир, 1999. — 685с. — ISBN 5–03–003117.
  6. Голуб Д. Ван Лоун Ч. Матричные вычисления // Д.Голуб, Ван Лоун Ч. — М.: Мир, 1999. — 548 с.
  7. Холл Дж. Современные численные методы решения обыкновенных дифференциальных уравнений // Дж.Холл. — М.: Мир, 1979. — 312 с.
  8. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления // В.В. Воеводин, Вл.В. Воеводин — БХВ–Петербург, 2004 — 160 с.
  9. Фельдман Л.П., Назарова И.А. Современные параллельные методы численного решения задачи Коши // Фельдман Л.П., Назарова И.А. — Донецк: ДонНТУ, 2013. — 206с.
  10. Чисельні методи в інформатиці: підручник для вузів / Лев Петрович Фельдман, Анатолій Іванович Петренко, Ольга Анатоліївна Дмитрієва; За заг. ред. М.З. Згуровський. — Київ: BHV, 2006. — 479 с.
  11. Михайлова Т.В. Оценка эффективности высокопроизводительных вычислительных систем с использованием аналитических методов // Материалы 2-й международной научно-технической конференции " Моделирование и компьютерная графика", г. Донецк, 10-12 октября 2007 г.
  12. Боресков А.В., Харламов А.А., Марковский Н.Д., Микушин Д.Н., Мортиков Е.В., Мыльцев А.А., Сахарных Н.А., Фролов В.А. Параллельные вычисления на GPU. Архитектура и программная модель CUDA: Учеб. пособие / А.В. Боресков и др. Предисл.: В.А. Садовничий. — М.: Издательство Московского университета, 2012. — 336 с.