N.I. Lobachevsky State University of Niznhi Novgorod

Новости
О Центре
Кластер
Обучение
Основной курс по параллельному программированию
Учебные курсы
Магистратура
Дополнительное образование
Работы студентов
Библиотека
Исследования
Конференции
Полезные ссылки
NVIDIA
Контакты
О сайте
Имя:
Пароль:
запомнить:
Забыли пароль? Регистрация

Учебные курсы

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

В курсе излагаются некоторые известные численные алгоритмы и рассматривается круг вопросов, связанных с их распараллеливанием. Рассматриваются прямые методы решения систем линейных алгебраических уравнений с матрицами как общего, так и специального вида (метод исключения Гаусса, разложение Холецкого, метод прогонки), итерационные методы решения систем линейных уравнений (методы простой итерации и верхней релаксации, метод сопряженных градиентов), задачи разреженной алгебры, методы параллельного решения систем обыкновенных дифференциальных уравнений и дифференциальных уравнений в частных производных, методы Монте-Карло.

Изучение проводится как на модельных, так и на прикладных задачах. Сведения, необходимые для понимания существа задачи и выполнения лабораторных работ, представлены в текстовых описаниях (там где требуется). При выполнении работ активно используются инструменты пакета Intel Parallel Studio XE, поддерживающие процесс создания параллельной программы, начиная с отладки и проверки корректности и заканчивая оценкой эффективности и масштабируемости.

Курс рассчитан на преподавателей и научных сотрудников, а также аспирантов и студентов высших учебных заведений. Курс предполагает наличие у читателя базовых знаний и навыков структурного, модульного и объектно-ориентированного программирования. В качестве базового языка рассматривается С/С++. Многие идеи могут быть с успехом перенесены на другой язык, поддерживающий многопоточное программирование, в частности Fortran. Длительность курса - не менее чем 32 часа. Итоговая аттестация проводится по результатам выполнения практических заданий. При проведении занятий используются компьютерные презентации и материалы для лабораторного практикума.

Курс разрабатывается в лаборатории «Информационные технологии» (ITLab) факультета Вычислительной математики и кибернетики Нижегородского государственного университета им. Н.И. Лобачевского в рамках программы развития ННГУ как Национального исследовательского университета, а также при поддержке компании Интел. По итогам разработки первой версии курса планируется издание учебного пособия.

Авторы курса

  • Баркалов Константин Александрович
  • Мееров Иосиф Борисович
  • Сысоев Александр Владимирович
  • Сиднев Алексей Александрович
  • Кустикова Валентина Дмитриевна
  • Козинов Евгений Александрович
  • Бастраков Сергей Иванович
  • Донченко Роман Владимирович
  • Малова Анна Юрьевна
  • Сафонова Яна Юрьевна

    Дополнительные материалы по технологиям, рассматриваемым в курсе

  • Технология OpenMP - курс "Высокопроизводительные вычисления для многопроцессорных многоядерных систем" (проф. В.П. Гергель), лекция 5 (doc, ppt).
  • Библиотека TBB - курс "Инструменты параллельного программирования в системах с общей памятью" (коллектив авторов), раздел 3, лекция 6 (doc, ppt), или актуализированный вариант с учетом изменений в версии 3.0 (doc, ppt).
  • Элементы библиотеки Arbb - (doc, ppt).
  • Элементы технологии Cilk Plus - (doc, ppt).

    Связанные курсы

  • "Введение в принципы функционирования и применения современных мультиядерных архитектур (на примере Intel Xeon Phi)".
  • "Основы параллельных вычислений в формате MOOC".

    Список тем зачетных заданий по курсу за 2012 год

    (doc)

    Содержание курса

    Введение

    (doc)

    Раздел 1. Практикум «Введение в технологии параллельного программирования в системах с общей памятью. Инструменты пакета Intel Parallel Studio XE»

    Цель раздела: краткий повтор/обзор технологий параллельного программирования в системах с общей памятью (OpenMP, TBB, Cilk Plus, ArBB) на основе выполнения лабораторных работ, обзор базовых возможностей пакета инструментов Intel Parallel Studio XE (Composer, Inspector, Amplifier).

    Практикум

    Лабораторная работа 1.1. Вычисление определенного интеграла методом прямоугольников. Отладка, оптимизация, параллелизм

    (doc, ppt, исходные коды программ)

    Лабораторная работа 1.2. Вычисление простых чисел. Параллельная отладка, оптимизация, балансировка нагрузки

    (doc, ppt, исходные коды программ)

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

    (doc, ppt, исходные коды программ)

    Раздел 2. Элементы компьютерной арифметики

    Лекционные материалы

    2.1. Работа с числами в ЭВМ

    (doc, раздел 2.1) (ppt)

    2.2. Анализ погрешностей

    (doc, раздел 2.2) (ppt)

    2.3. Примеры алгоритмов выполнения типичных операций

    (doc, раздел 2.3) (ppt)

    2.4. Особенности реализаций

    (doc, раздел 2.4) (ppt)

    Практикум

    Лабораторная работа 2.1. Элементарные расчетные алгоритмы. Проблемы, ошибки, пути их устранения

    (doc, ppt, исходные коды программ)

    Лабораторная работа 2.2. Параллельная сортировка вещественных чисел за линейное время

    (doc, ppt, исходные коды программ)

    Лабораторная работа 2.3. Уменьшение погрешности вычисления сумм чисел с плавающей запятой

    (doc, ppt, исходные коды программ)

    Раздел 3. Прямые методы решения СЛАУ

    3.1. Метод Гаусса для решения систем общего вида

    (doc, раздел 3.1) (ppt)

    3.2. Метод Холецкого для систем с симметричной положительно определенной матрицей

    (doc, раздел 3.2) (ppt)

    3.3. Метод прогонки для систем с ленточной матрицей

    (doc, раздел 3.3) (ppt)

    3.4. Метод редукции для систем с ленточной матрицей

    (doc, раздел 3.4) (ppt)

    3.5. Методы решения систем с разреженной матрицей

    (doc, раздел 3.5) (ppt)

    Практикум

    Лабораторная работа 3.1. Умножение разреженной матрицы на плотный вектор. Распараллеливание циклов в OpenMP, TBB, ArBB, Cilk Plus

    (doc, ppt, исходные коды программ)

    Лабораторная работа 3.2. Алгоритмическая оптимизация в задачах алгебры разреженных матриц на примере матричного умножения

    (doc, ppt, исходные коды программ)

    Лабораторная работа 3.3. Решение разреженных СЛАУ прямыми методами в задаче распространения тепла в пластине. Использование MKL PARDISO

    (doc, ppt, исходные коды программ)

    Лабораторная работа 3.4. Применение методов прогонки и редукции для решения СЛАУ с ленточной матрицей на примере задачи вычисления цены составного опциона

    (doc, ppt, исходные коды программ)

    Раздел 4. Итерационные методы решения СЛАУ

    Лекционные материалы

    4.1. Базовые итерационные методы

    (doc, раздел 4.1) (ppt)

    4.2. Предобуславливание

    (doc, раздел 4.1) (ppt)

    4.3. Методы крыловского типа

    (doc, раздел 4.1) (ppt)

    Практикум

    Лабораторная работа 4.1. Решение разреженных СЛАУ итерационными методами в задаче распространения тепла в пластине

    (doc, ppt, исходные коды программ)

    Лабораторная работа 4.2. Решение симметричных разреженных СЛАУ методом верхней релаксации с чебышевским ускорением

    (doc, ppt, исходные коды программ)

    Лабораторная работа 4.3. Решение симметричных разреженных СЛАУ методом сопряженных градиентов c предобуславливанием

    (doc, ppt, исходные коды программ)

    Лабораторная работа 4.4. Решение разреженных СЛАУ методом обобщенных минимальных невязок с предобуславливанием

    (doc, ppt, исходные коды программ)

    Лабораторная работа 4.5. Решение невырожденных СЛАУ методом бисопряженных градиентов c предобуславливанием

    (doc, ppt, исходные коды программ)

    Лабораторная работа 4.5. Неполное LU разложение

    (doc, ppt, исходные коды программ)

    Раздел 5. Методы решения систем обыкновенных дифференциальных уравнений

    Лекционные материалы

    (doc) (ppt)

    Практикум

    Лабораторная работа 5.1. Интегрирование стохастического дифференциального уравнения в задаче вычисления справедливой цены опциона европейского типа

    (doc, ppt, исходные коды программ)

    Лабораторная работа 5.2. Интегрирование системы дифференциальных уравнений в задаче моделирования процессов в нейронной сети (моделирование мозга)

    (doc, ppt, исходные коды программ)

    Раздел 6. Методы решения дифференциальных уравнений в частных производных

    Лекционные материалы

    6.1. Решение волнового уравнения

    (doc, раздел 6.1) (ppt)

    6.2. Решение задачи теплопроводности

    (doc, раздел 6.2) (ppt)

    6.3. Решение задачи Дирихле для уравнения Пуассона

    (doc, раздел 6.3) (ppt)

    6.4. Решение с использованием БПФ

    (doc, раздел 6.4) (ppt)

    Практикум

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

    (doc, ppt, исходные коды программ)

    Лабораторная работа 6.2. Разработка, оптимизация и распараллеливание быстрого преобразования Фурье в приложении к задаче фильтрации видео

    (doc, ppt, исходные коды программ)

    Лабораторная работа 6.3. Использование быстрого преобразования Фурье для решения задачи распространения тепла в пластине

    (doc, ppt, исходные коды программ)

    Раздел 7. Методы Монте-Карло

    Лекционные материалы

    7.1 Вычисление определенного интеграла

    (doc, раздел 7.1) (ppt)

    7.2 Способы уменьшения дисперсии

    (doc, раздел 7.2) (ppt)

    7.3 Генераторы псевдослучайных чисел

    (doc, раздел 7.3) (ppt)

    7.4 Подходы к распараллеливанию методов Монте-Карло

    (doc, раздел 7.4) (ppt)

    Практикум

    Лабораторная работа 7.1. Параллельные методы Монте-Карло в задаче вычисления справедливой цены опциона европейского типа

    (doc, ppt, исходные коды программ)


  • << вернуться  |   Документ от: 06.03.2011 11:23

    Новости

    22.10.2012
    04.09.2012
    05.04.2012
    06.03.2012
    02.03.2012