Реферат: Методические указания по самостоятельной работе для направления 010400 Прикладная математика и информатика Магистерская программа Математическое и программное обеспечение вычислительных комплексов и компьютерных сетей
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего
профессионального образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ
И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра Автоматизированных систем управления
УТВЕРЖДАЮ
Зав. Кафедрой АСУ
________________А.М. Кориков
«______» _____________2011 г
Методы и алгоритмы параллельного программирования
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по самостоятельной работе
для направления 010400 – Прикладная математика и информатика
Магистерская программа – Математическое и программное обеспечение
вычислительных комплексов и компьютерных сетей
Разработчик
Доцент кафедры АСУ
Н.П. Фефелов
2011
Фефелов Н.П.
Методы и алгоритмы параллельного программирования: Методические указания по самостоятельной работе студентов для направления 010400 – Прикладная математика и информатика. Магистерская программа – Математическое и программное обеспечение вычислительных комплексов и компьютерных сетей. – Томск, ТУСУР, 2011. – 8 с.
Рассмотрены и утверждены на заседании кафедры АСУ
Протокол 1 от «30» августа 2011 г.
СОДЕРЖАНИЕ
^ 1 ОБЩИЕ РЕКОМЕНДАЦИИ 4
2. ТРЕБОВАНИЯ К РЕЗУЛЬТАТАМ ОСВОЕНИЯ ДИСЦИПЛИНЫ 4
Соответствие компетенций, формируемых при самостоятельном изучении дисциплины, и видов занятий 5
^ 3 СОДЕРЖАНИЕ ДИСЦИПЛИНЫ 5
3.1 Теоретический материал 5
4 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО САМОСТОЯТЕЛЬНОМУ ИЗУЧЕНИЮ МАТЕРИАЛА 7
5 УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ПО ДИСЦИПЛИНЕ 8
5.1 Основная литература 8
5.2 Дополнительная литература 8
5.3 Учебно-методические руководства для лабораторных работ 8
5.4 Лицензионное программное обеспечение 9
^ 1 ОБЩИЕ РЕКОМЕНДАЦИИ
Дисциплина «Методы и алгоритмы параллельного программирования» (МАПП) относится к числу дисциплин профессионального цикла (базовой части). Успешное овладение дисциплиной предполагает предварительные знания вычислительных методов, архитектуры вычислительных систем и операционных систем.
Дисциплина изучается в 11 семестре и предусматривает: чтение лекций, выполнение лабораторных работ и самостоятельную работу.
Излагаемый в дисциплине набор знаний и умений составляет теоретическую основу для методов разработки эффективных параллельных программ.
Использование многопроцессорных вычислительных систем предполагает практическое освоение следующих разделов параллельного программирования:
цели и задачи параллельной обработки данных,
моделирование и анализ параллельных вычислений,
принципы разработки параллельных алгоритмов и программ,
технологические средства разработки параллельных программ,
методы и языковые механизмы конструирования параллельных программ,
параллельные численные алгоритмы для решения типовых задач вычислительной математики.
Изложение дисциплины опирается на основные дисциплины:
– Архитектура вычислительных систем,
– Вычислительные системы и сети,
– Программное обеспечение сетей ЭВМ.
^ 2. ТРЕБОВАНИЯ К РЕЗУЛЬТАТАМ ОСВОЕНИЯ ДИСЦИПЛИНЫ
Процесс самостоятельного изучения дисциплины «Методы и алгоритмы параллельного программирования» направлен на формирование следующих компетенций:
общекультурные компетенции (ОК):
способность самостоятельно приобретать с помощью информационных технологий и использовать в практической деятельности новые знания и умения, расширять и углублять свое научное мировоззрение (ОК-4);
способность порождать новые идеи и демонстрировать навыки самостоятельной научно-исследовательской работы и работы в научном коллективе (ОК-5);
профессиональные компетенции (ПК):
способность разрабатывать концептуальные и теоретические модели решаемых научных проблем и задач (ПК-2);
способность углубленного анализа проблем, постановки и обоснования задач научной и проектно-технологической деятельности (ПК-3).
^ В результате изучения дисциплины студент должен:
Знать:
Методы параллельных вычислений для задач вычислительной математики (матричные вычисления, решение систем линейных уравнений, сортировка, обработка графов, уравнения в частных производных, многоэкстремальная оптимизация).
Основные подходы к разработке параллельных программ.
Уметь:
Строить модель выполнения параллельных программ.
Оценивать эффективности параллельных вычислений.
Анализировать сложность вычислений и возможность распараллеливания разрабатываемых алгоритмов.
Применять общие схемы разработки параллельных программ для реализаций собственных алгоритмов.
Оценивать основные параметры получаемых параллельных программ, таких как ускорение, эффективность и масштабируемость.
Владеть:
основами разработки параллельных программ для МВС с применением технологий MPI, OpenMP, CUDA.
^ Соответствие компетенций, формируемых при самостоятельном изучении дисциплины, и видов занятий
Перечень компетенций
СРС
Формы контроля
(примеры)
ОК-4
+
Домашнее задание
ОК-5
+
Домашнее задание, тест
ПК-2
+
Домашнее задание
ПК-3
+
Тест
Ниже перечислены тематики самостоятельной работы и виды контроль выполнения их.
№ п/п
Тематика самостоятельной работы
(детализация)
ОК, ПК
Контроль выполнения работы (Опрос, тест, дом.задание, и т.д)
1.
Проработка лекционного материала
ОК-4
Опрос на занятиях (устно)
2.
Подготовка к лабораторным занятиям
ПК-2
Отчет,
защита лаб. работы
3.
Самостоятельное изучение тем теоретической части
Темы для самостоятельного изучения
Матричное умножение. Алгоритмы Фокса и Кэннона
Параллельные алгоритмы итерационного решения СЛАУ
Параллельное интегрирование. Метод Монте-Карло.
Параллельные методы сортировки.
Параллельная реализация в программах выпускной работы.
ОК-4, ОК-5,
ПК-2, ПК-3
Домашнее задание. Контрольная работа. Тест.
4.
Подготовка и сдача экзамена
ОК-4, ОК-5,
ПК-2, ПК-3
Оценка за экзамен
^ 3 СОДЕРЖАНИЕ ДИСЦИПЛИНЫ 3.1 Теоретический материал
Тема 1. Состояние и проблемы параллельных вычислений
Современное состояние суперкомпьютерной вычислительной техники. Списки ТОР500 и ТОР50. Российские достижения. Перспективы развития суперкомпьютерной техники и параллельных вычислений. Использование мировых сетевых ресурсов для параллельных вычислений.
Литература [1].
Тема 2. Моделирование и анализ параллельных алгоритмов
Концепция неограниченного параллелизма. Графовые модели параллельных алгоритмов в виде «операнды-операции». Ярусно-параллельная форма графа алгоритма, высота, ширина алгоритма. Описание параллельного выполнения алгоритма, расписание. Асимптотические оценки времени выполнения. Каскадные вычисления, их реализация на векторных процессорах. Оценки эффективности параллельных алгоритмов: ускорение и эффективность. Закон Амдала. Влияние времени передачи данных на эффективность алгоритма.
Литература [1,4].
Тема 3. Этапы разработки параллельных алгоритмов
Параллелизм данных и параллелизм задач. Схемы вычислительного процесса для параллельных программ. Основные этапы разработки параллельного алгоритма: декомпозиция, проектирование обменов между задачами, укрупнение, планирование вычислений.
Использование языков программирования и коммуникационных библиотек и интерфейсов. Традиционные последовательные языки и распараллеливающие компиляторы, проблема выделения потенциального параллелизма последовательных программ. Специальные комментарии и директивы компилятору.
Параллельные языки программирования и расширения стандартных языков. Средства автоматического распараллеливания, параллельные компиляторы. Параллельные предметные библиотеки. Инструментальные системы для проектирования параллельных программ.
Литература [1,4].
Тема 4. Интерфейс передачи сообщений - MPI
Общие принципы построения и реализации MPI. Разработчики, история создания. Шесть общих функций MPI, коммуникаторы. Функции обмена сообщениями типа «точка-точка»: блокирующий и неблокирующий обмен, синхронные и стандартные посылки сообщений. Предотвращение тупиков.
Коллективные функции обмена данных: широковещательная рассылка, функции сбора и рассыпания данных. Функции редукции данных.
Создание групп процессов, области связи, коммуникаторы. Обмен данными внутри группы, межгрупповой обмен.
Литература [1,8].
Тема 5. Технология программирования OpenMP.
Последовательные и параллельные нити программы. Директивы OpenMP, функции времени выполнения, переменные окружения. Классы переменных. Организация параллельных секций. Параллельные циклы. Директивы синхронизации.
Применение функций и переменных окружения для выполнения параллельных программ.
Литература [6,7,].
Тема 6. Технология параллельного программирования CUDA
Применение графических процессоров в па-раллельном программировании. Модель потоковых вычислений. Расширения языка С. Работа с памятью. Примера программ матричных вычислений.
Литература [8,9]
Тема 7. Параллельные численные алгоритмы и программы для решения типовых задач вычислительной математики.
Матрично-векторное умножение. Линейное и блочное разбиение матриц. Алгоритмы Фокса и Кэннона. Решение систем линейных уравнений, метод Гаусса, итерационные методы. Параллельная сортировка: пузырьковая, Шелла, быстрая сортировка. Задачи обработки графов.
Литература [1,3,12].
^ 3.2 Лабораторные занятия Литература
1 Основные функции передачи данных MPI в алгоритмах численного интегрирования [1,3]
2 Передача данных производными типами данных MPI [1,8]
3 Директивы OpenMP [6,7]
4 Взаимодействующие параллельные процессы в среде OpenMP [6,7]
5 Параллельные программы матричных вычислений [1,3]
6 Параллельные алгоритмы решения систем линейных уравнений [1,3]
7 Параллельные алгоритмы решения систем линейных уравнений [1,3]
^ 3.3 Темы для самостоятельного изучения Литература
1 Алгоритмы Фокса и Кэннона матричного умножения [1,3]
2 Параллельное интегрирование. Метод Монте-Карло [3]
3 Параллельные методы сортировки массивов [1,8]
4 Параллельные алгоритмы в программах магистерской диссертации
^ 4 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО САМОСТОЯТЕЛЬНОМУ ИЗУЧЕНИЮ МАТЕРИАЛА
Указанные темы изучаются студентами самостоятельно по указанной литературе и Интернет-источникам. Контроль осуществляется на лабораторных занятиях.
Студент согласовывает с руководителем части программного обеспечения выпускной работы, которые реализуются на лабораторных занятиях. Руководитель лабораторных занятий консультирует студента по выбору параллельных алгоритмов.
^ 5 УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ПО ДИСЦИПЛИНЕ 5.1 Основная литература
1 Гергель В.П. Высокопроизводительные вычисления для многопроцессорных многоядерных систем: Учебник – М.: Изд-во МГУ, 2010. – 544 с (26 экз)
2 Линев А.В., Боголепов Д.К., Бастраков С.И. Технологии параллельного программирования для процессоров новых архитектур: Учебник – Учебник – М.: Изд-во МГУ, 2010. – 157 с. (26 экз)
3 Старченко А.В., Данилкин Е.А., и др. Практикум по методам параллельных вычислений: Учебник. – М.: Изд-во МГУ, 2010. – 200 с. (26 экз)
4 Воеводин В.В. Вычислительная математика и структура алгоритмов: Учебник. – М.: Изд-во МГУ, 2010. – 168 с. (26 экз)
^ 5.2 Дополнительная литература
Гергель В.П. Теория и практика параллельных вычислений. – [Интернет-ресурс] URL: http://intuit.ru/department/calculate/paralltp/.
Гергель В.П. Введение в методы параллельного программирования – [Электронный ресурс]: [сайт].URL:http://www.intuit.ru/department/calculate/inparallprog/.
Антонов А.С. Параллельное программирование с использованием технологииOpenMP: Учебн. пособие. – М.: Изд-во МГУ, 2007.[Электронный ресурс]:[сайт].URL: http://parallel.ru/info/parallel/openmp.
Антонов А.С. Параллельное программирование с использованием технологии MPI: Учебн. Пособие. – М.: Изд-во МГУ, 2003 [Электронный ресурс]: [сайт]. URL:http://parallel.ru/info/parallel/antonov
Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. – СПб.:БХВ-Петербург, 2002 (20 экз)
Хокни Р., Джессхоуп К. Параллельные ЭВМ. Архитектура, программирование, алгоритмы. – М.: Радио и связь, 1986.
Ортега Д. Введение в параллельные и векторные методы решения линейных систем. - М. : Мир, 1991
Боресков А.В., Харламов А.А. Основы работы с технологией CUDA. – М.: ДМК Пресс, 2011
Сандерс Дж., Кэндрот Э. Технология CUDA в примерах: введение в программирование графических процессоров. – М.: ДМК Пресс, 2011
Большинство учебных материалов по параллельным вычислениям размещены в интернете. Рекомендуется использовать сайты:
1 http://parallel/ru – НИИВЦ МГУ
2 http://hpc-education.ru – Интернет-центр системы образовательных ресурсов в области СКТТ
3 http://intuit.ru – Интернет университет информационных технологий
4 http://hpcc.unn.ru – Центр суперкомпьютерных технологий Нижегородского государственного университета
^ 5.3 Учебно-методические руководства для лабораторных работ
Учебные пособия в электронном виде. Файлы этих и других документов передаются студентам.
Шпаковский Г.И., Серикова Н.В. Программирование для многопроцессорных систем в стандарте MPI. – Минск:БГУ, 2002.
Букатов А.А., Дацюк В.Н., Жегуло А.И. Многопроцессорные системы и параллельное программирование. – Ростов-на-Дону: РГУ, 2000.
Немнюгин С.А. Средства программирования для многопроцессорных вычислительных систем. – СПб: СПбГУ, 2007
5.4 Лицензионное программное обеспечение
Программное обеспечение кластера кафедры АСУ.
еще рефераты
Еще работы по разное
Реферат по разное
Валентин Максимилианович Макаров Концепции современного естествознания. Часть I учебное пособие
17 Сентября 2013
Реферат по разное
Методические указания по проведению самостоятельной работы для студентов дневного и заочного обучения экономических специальностей ростов-на-Дону 2011
17 Сентября 2013
Реферат по разное
Н. В. Яблокова химия-11 Учебное пособие
17 Сентября 2013
Реферат по разное
Методические указания и задания контрольной работы по дисциплине специальности 080301 Коммерция (торговое дело) для студентов заочной формы обучения Новосибирск 2011
17 Сентября 2013