Министерство образования и науки РФ Московский физико

advertisement
Министерство образования и науки РФ
Московский физико-технический институт
(государственный университет)
“УТВЕРЖДАЮ”
Проректор по учебной работе
________________ Ю.А. Самарский
“___” ________________ 2010 г.
ПРОГРАММА
Курса: ТЕХНОЛОГИЯ МНОГОПОТОЧНЫХ ВЫЧИСЛЕНИЙ
НА ОСНОВЕ OpenMP
для направления: 010600 ПРИКЛАДНЫЕ МАТЕМАТИКА И ФИЗИКА
факультеты: ВСЕ
кафедра: ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ
курс: 3-6
семестр: ОСЕННИЙ, ВЕСЕННИЙ
лекции: 16 часов
Зачет: дифф.
практические занятия: 18 часов
ВСЕГО ЧАСОВ: 34 (семестровый)
Программу составили: А.К. Коньков, Н.И. Хохлов
Программа обсуждена на заседании
кафедры вычислительной математики
Зав. кафедрой
«31» августа 2010 г.
чл.-корр. РАН А.С. Холодов
СОДЕРЖАНИЕ КУРСА
Лекция 1. Введение в курс
Основные типы современных параллельных вычислительных систем и
средства параллельного программирования для них. Вычислительные
системы с общей памятью. Стандарт OpenMP. Сравнение со
стандартными реализациями потоков (WinAPI и POSIX Threads).
Поддержка современными компиляторами.
Лекция 2. Основы OpenMP.
Схема работы OpenMP – приложения. Директивы PRAGMA
и функции исполняющей среды OpenMP. Разбор простого примера
«Hello World». Основные принципы программирования в OpenMP.
Основные правила применения директив OpenMP, использующихся
для описания данных и организации параллельных вычислений.
Вопросы видимости данных и корректности доступа к данным.
Лекция 3. Параллельное выполнение циклов, параллельные
секции, синхронизация потоков.
Методы распараллеливания циклов и контроля распределения работы
между процессорами. Статическое и динамическое распределение
итераций между потоками. Способы балансировки работы
процессоров с помощью директив OpenMP. Задание внешних
переменных окружения с помощью функций OpenMP. Параллельные
секции. Синхронизация параллельных потоков.
Лекция 4. Профилирование и отладка параллельных
приложений. Средства создания, профилирования и
отладки, предоставляемые Intel.
Все грани оптимизации. Оптимизация на основе анализа выполнения.
Важность
профилирования
для
процессорно-интенсивных
приложений (большинство HPC). Создание, профилирование и
отладка HPC-приложений в интегрированной среде Intel Parallel
Studio. Профессиональные инструменты профилирования и отладки Intel VTune и Threading Tools. Уровни анализа. Системный уровень.
Уровень приложения, уровень архитектуры процессора.
Лекция 5. Введение в специализированные библиотеки Intel.
Специализированные библиотеки Intel. Подключение библиотек.
Примеры использования основных составляющих MKL (Math Kernel
Library). Многопоточность MKL. Основы IPP (Integrated Performance
Primitives): организация функций библиотеки, области применения.
Семинар 1. Простейшие программы с использованием
OpenMP
Компиляция и запуск приложений. Разбор простого примера
вычисления числа пи. Тестирование масштабируемости приложения.
Написание программы перемножения матриц.
Семинар 2. Распараллеливание циклов. Параллельное
решение задач с рекурсией.
Написание и запуск параллельной программы, реализующей быструю
сортировку. Средства синхронизации. Параллельное решение
численных алгоритмов, использующих неявную схему. Реализация
численного решения задачи Дирихле для уравнения Пуассона.
Семинар 3. Создание, профилирование и отладка
параллельных приложений средствами Intel Parallel Studio.
Основы использования Intel Parallel Studio. Parallel Composer средство для создания параллельных приложений с использованием
OpenMP и параллельных библиотек. Поиск ошибок трединга с
помощью Parallel Inspector. Анализ и оптимизация работы приложения
с помощью Parallel Amplifier. Краткое описание Parallel Advisor.
Семинар 4. Профессиональное профилирование и отладка
параллельных приложений средствами с помощью Intel
VTune и Intel Threading Tools.
Intel VTune. Методы профилирования приложений. Концепция
углубления в код программы. Ответвление на поток в случае
многопоточности. Наблюдение за простаивающими потоками. Поиск
критического
пути
выполнения
программы.
Отслеживание
показателей всей системы. Использование Intel Thread Checker и
Thread Analyzer.
Семинар 5. Работа со специализированными библиотеками
Intel.
Работа с Intel MKL. Параллельное перемножение матриц с
использованием BLAS различных уровней. Решение системы
линейных уравнений с использованием LAPACK. Решение системы с
разреженной матрицей с использованием PARDISO. Вычисление
числа Pi с помощью метода Монте-Карло и генератора
псевдослучайных чисел, встроенного в MKL. Параллельное
перемножение матриц с использованием IPP.
СПИСОК ЛИТЕРАТУРЫ.
1. Описание стандарта и спецификация: http://openmp.org/
2. https://computing.llnl.gov/tutorials/openMP/
3. Intel® Math Kernel Library 10.2 – Documentation:
http://software.intel.com/en-us/articles/intel-math-kernel-librarydocumentation/
4. Intel® Parallel Studio – Documentation: http://software.intel.com/enus/articles/intel-parallel-studio-documentation/
5. В.П. Гергель. Теория и практика параллельных вычислений.
ИНТУИТ, Москва, 2007 г., 424 с.
6. М.П. Левин. Параллельное программирование с использованием
OpenMP. ИНТУИТ, Москва, 2008 г., 120 с.
Download