- •1.3.2. Прикладная математика и информатика
- •2. Проблемы, связанные с использованием параллельных алгоритмов
- •3. Примеры и описание технологий параллельного программирования
- •3.1. Технологии для разработки параллельных программ для систем с общей и распределенной памятью.
- •3.1.1. Модель передачи сообщений. Mpi.
- •3.2. Технологии разработки параллельных программ для графических процессоров
- •4. Средства анализа технологий параллельного программирования.
- •4.1. Комплексный подход к анализу эффективности программ для параллельных вычислительных систем
- •4.2. Типы анализа производительности
- •5.Анализ производительности технологий mpi и OpenMp
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«КРЫМСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ имени В. И. Вернадского»
Таврическая академия (структурное подразделение)
Факультет математики и информатики
Кафедра прикладной математики и информатики
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
(пояснительная записка)
_______________бакалавра_______________
(образовательно-квалификационный уровень)
на тему Анализ производительности технологий параллельного программирования
Выполнил: студент (ка) 4 курса, группы 402
направление подготовки
1.3.2. Прикладная математика и информатика
Нусретов Э. Ш.
Руководитель Чудиновских А. И.
Рецензент
Симферополь – 2016 год
Содержание:
Введение.................................................................................................... 2
Проблемы, связанные с использованием параллельных
алгоритмов……………………………………………………………… 3
Примеры и описание технологий параллельного
программирования……………………………………………………... 4
3.1. Технологии для разработки параллельных программ
для систем с общей и распределенной памятью ................................ 4
3.1.1. Основы технологии MPI..................................................................... 5
3.1.2. Основы технологии OpenMP.............................................................. 7
3.2. Технологии разработки параллельных программ для
графических процессоров.................................................................... 11
3.2.1. Основы технологии CUDA............................................................... 11
3.2.2. Основы технологии OpenCL............................................................ 18
4. Средства анализа производительности программ для параллельных вычислительных систем ………………………………………………21
4. 1. Комплексный подход к анализу эффективности программ для параллельных вычислительных систем
4.2. Типы анализа производительности............................................... 21
4.3. Описание программ для анализа технологий............................... 21
5. Анализ производительности технологий MPI и Open MP….............. 26
6. Заключение............................................................................................... 31
7. Список использованной литературы..................................................... 32
Введение
Целью работы является анализ производительности технологий параллельного программирования.
Задачами работы является:
– Параллелизм вычислительных систем и программ.
– Ознакомление с характеристиками технологий параллельного программирования.
– Ознакомление с технологиями для разработки параллельных программ для систем с общей и распределенной памятью MPI и OpenMP и технологиями разработки параллельных программ для графических процессоров CUDA и OpenCL, их особенностями на уровне достаточном для осознанного выбора конкретной технологии, для дальнейшего детального освоения.
– Обзор программ, использующих данные технологии.
– Анализ тестов производительности вычислительного кластера на четырехъядерных процессорах.
Не так давно, быстродействие компьютера определялось тактовой частотой. Оно повышалась и программы работали быстрее. Но существовали «большие» задачи, которые не по силам одному компьютеру. Для их решения и были созданы параллельные вычисление системы. И теперь, параллельное программирование, стало технологией, которую должен освоить и уметь применять любой профессиональный разработчик ПО.
Параллельные программирование отличается от традиционного, последовательного программирования, тем, что оно включает в себя следующие этапы:
– Определение параллелизма: анализ задачи с целью выделить подзадачи, которые могут выполняться одновременно.
– Выявление параллелизма: изменение структуры задачи, чтобы можно было эффективно выполнить подзадачи.
– Выражение параллелизма: реализация параллельного алгоритма в исходном коде с использованием технологии параллельного программирования.
В параллельном программирование используются алгоритмы, которые могут быть реализованы по частям на множестве различных вычислительных устройств, с последующим объединением полученных результатов и получением конечного ответа. Выбор конкретной технологии может оказаться непростой задачей, так как обучение каждый, требует больших временных затрат. И чтобы выбрать подходящую не нужно осваивать несколько технологий.
