Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Online Course

Введение в параллельное программирование с использованием OpenMP и MPI

Tomsk State University via Coursera

Overview

Потребность решения сложных прикладных задач с большим объемом вычислений и принципиальная ограниченность максимального быстродействия «классических» – по схеме фон Неймана – ЭВМ привели к появлению многопроцессорных вычислительных систем (МВС) или суперкомпьютеров.
Широкое распространение параллельные вычисления приобрели с переходом компьютерной индустрии на массовый выпуск многоядерных процессоров с векторными расширениями. В настоящие время практически все устройства – от карманных гаджетов и до самых мощных суперкомпьютеров – оснащены многоядерными процессорами. И если вы пишите последовательную программу, не применив распределение работы между разными ядрами центрального процессора и не проведя векторизацию, то вы используете только часть вычислительных возможностей центрального процессора.

Пройдя этот курс, вы познакомитесь с основными архитектурами МВС, с двумя стандартами (OpenMP и MPI), позволяющими писать параллельные программы для систем с общей и распределенной памятью. На простых примерах будут разобраны основные конструкции и способы распределения работы. Выполнение практических заданий позволит вам приобрести практические навыки создания параллельных программ. Курс будет интересен всем, кто занимается программированием.

Для участия в курсе слушателю необходимо иметь базовые знания по программированию с использованием С/С++.

Курс состоит из 9 недель. Каждая неделя курса содержит видеолекции, а также проверочные задания. Сертификат получают слушатели, набравшие более 80 % от максимально возможного количества баллов. При этом итоговый результат, представленный как 100 %, складывается из следующих составляющих: тесты 1–5 недели дают 4 %, тесты 6–9 недели дают 5 %, все практические задания дают 10 %, кроме итогового практического задания по OpenMP, которое дает 20 %.
Сертификат о прохождении данного курса дает дополнительные баллы при поступлении в магистратуру Национального исследовательского Томского государственного университета. Перечень магистерских программ находится по ссылке: https://pro-online.tsu.ru/edu/student/table.php

Syllabus

Добро пожаловать на курс «Введение в параллельное программирование с использованием OpenMP и MPI»
-Добро пожаловать на курс параллельного программирования! Надеемся вам будет интересно. Пожалуйста, внимательно прочитайте все инструкции.

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

Основы OpenMP
-Добро пожаловать на вторую неделю курса! На этой неделе мы рассмотрим особенности программирования для систем с общей памятью. Разберемся с такими понятиями, как поток и многопоточность. Мы начнем изучение технологии OpenMP, научимся создавать параллельную область. На примерах рассмотрим директивы, которые позволяют управлять процессом исполнения кода в параллельной области.

Директивы распределения работы и синхронизации работы
-Добро пожаловать на третью неделю курса! Надеемся, что вы получаете удовольствие от курса и обучения. На этой неделе мы изучим директивы OpenMP, которые позволяют распределять работу между потоками. Рассмотрим различные способы синхронизации выполнения потоков, научимся создавать критические секции и работать с общими переменными с использованием атомарных операций, а также изучим механизмы синхронизации на основе «замков».

Векторные вычисления с помощью OpenMP 4.0
-Приветствуем вас на четвертой неделе курса! На этой недели мы разберемся с тем, что такое векторизация и зачем она нужна. Рассмотрим, как можно векторизовать код для современных процессоров, и познакомимся с новыми возможностями стандарта OpenMP 4.0.

Анализ и оптимизация программ с использованием современных программных пакетов
-Вот вы и добрались до пятой недели курса! На этой неделе мы с вами рассмотрим основные опции компилятора Intel и то, как можно попробовать автоматически распараллелить программу. Мы также изучим основные возможности программного пакета Intel Parallel Studio, который упрощает и помогает создавать параллельные программы.

Системы с распределённой памятью. Основы MPI
-Приветствуем вас на шестой неделе курса! Вы узнаете историю создания стандарта MPI и задачи, для решения которых он был разработан. Мы дадим основные термины и определения, используемые в рамках модели передачи сообщений. На нескольких примерах параллельных программ будут описаны шесть функций библиотеки MPI, использования которых уже достаточно для написания первых параллельных программ.

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

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

Производные типы данных. Группы и коммуникаторы
-Вот и подошла последняя неделя курса! Мы рассмотрим дополнительные возможности библиотеки MPI, опишем процедуры создания новых групп и коммуникаторов, а также рассмотрим создание и использование виртуальных топологий, таких как декартова решетка и топология графа.

Taught by

Николай Николаевич Богословский (Nikolai N. Bogoslovskiy) and Евгений Александрович Данилкин (Evgeniy A. Danilkin)

Related Courses

Reviews

0.0 rating, based on 0 reviews

Start your review of Введение в параллельное программирование с использованием OpenMP и MPI

Never stop learning Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free