Coursera
Explorer
  • Parcourir
  • Rechercher
  • For Enterprise
  • Connexion
  • S'inscrire

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

Vue d'ensembleProgramme de coursFAQCréateursNotation et examens

Page d'accueilInformatiqueDéveloppement de logiciels

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

Université d'État de Tomsk

À propos de ce cours : Потребность решения сложных прикладных задач с большим объемом вычислений и принципиальная ограниченность максимального быстродействия «классических» – по схеме фон Неймана – ЭВМ привели к появлению многопроцессорных вычислительных систем (МВС) или суперкомпьютеров. Широкое распространение параллельные вычисления приобрели с переходом компьютерной индустрии на массовый выпуск многоядерных процессоров с векторными расширениями. В настоящие время практически все устройства – от карманных гаджетов и до самых мощных суперкомпьютеров – оснащены многоядерными процессорами. И если вы пишите последовательную программу, не применив распределение работы между разными ядрами центрального процессора и не проведя векторизацию, то вы используете только часть вычислительных возможностей центрального процессора. Пройдя этот курс, вы познакомитесь с основными архитектурами МВС, с двумя стандартами (OpenMP и MPI), позволяющими писать параллельные программы для систем с общей и распределенной памятью. На простых примерах будут разобраны основные конструкции и способы распределения работы. Выполнение практических заданий позволит вам приобрести практические навыки создания параллельных программ. Курс будет интересен всем, кто занимается программированием. Для участия в курсе слушателю необходимо иметь базовые знания по программированию с использованием С/С++. Курс состоит из 9 недель. Каждая неделя курса содержит видеолекции, а также проверочные задания. Сертификат получают слушатели, набравшие более 80 % от максимально возможного количества баллов. При этом итоговый результат, представленный как 100 %, складывается из следующих составляющих: тесты 1–5 недели дают 4 %, тесты 6–9 недели дают 5 %, все практические задания дают 10 %, кроме итогового практического задания по OpenMP, которое дает 20 %.


Créé par :  Université d'État de Tomsk
Université d'État de Tomsk

  • Николай Николаевич Богословский (Nikolay N. Bogoslovskiy)

    Enseigné par :  Николай Николаевич Богословский (Nikolay N. Bogoslovskiy), Кандидат физико-математических наук, доцент (Сandidate of Physics and Mathematics, Associate Professor)

    Кафедра вычислительной математики и компьютерного моделирования ММФ (Department of Calculus Mathematics and Computer Modelling, Mechanics and Mathematics Faculty)

  • Евгений Александрович Данилкин (Evgeniy A. Danilkin)

    Enseigné par :  Евгений Александрович Данилкин (Evgeniy A. Danilkin) , Кандидат физико-математических наук, доцент (Сandidate of Physics and Mathematics, Associate Professor)

    Кафедра вычислительной математики и компьютерного моделирования ММФ (Department of Calculus Mathematics and Computer Modelling, Mechanics and Mathematics Faculty)
Engagement9 недель исследования, 1-2 часов / неделю
Langue
Russian
Comment réussirRéussissez tous les devoirs notés pour terminer le cours.
Notes des utilisateurs
4.6 étoiles
Note moyenne des utilisateurs 4.6Voir ce que disent les étudiants
Programme de cours
SEMAINE 1
Добро пожаловать на курс «Введение в параллельное программирование с использованием OpenMP и MPI»
Добро пожаловать на курс параллельного программирования! Надеемся вам будет интересно. Пожалуйста, внимательно прочитайте все инструкции.
1 vidéo, 11 lectures
  1. Vidéo: О курсе «Введение в параллельное программирование с использованием OpenMP и MPI»
  2. Reading: О Национальном исследовательском Томском государственном университете
  3. Reading: О преподавателях
  4. Reading: О команде курса
  5. Reading: Необходимое программное обеспечение
  6. Reading: Инструкция по установке MS Visual Studio 2015 Community edition в операционной системе Windows
  7. Reading: Инструкция по установке Intel® Parallel Studio XE Professional 2016 на компьютер с операционной системой Windows
  8. Reading: Инструкция по установке HPC Pack 2008 SDK SP2 на компьютер с операционной системой Windows
  9. Reading: Инструкция по установке и настройке MPI в Windows
  10. Reading: Список литературы и дополнительных материалов к курсу
  11. Reading: Анкета слушателя
  12. Reading: Доступ к кластеру ТГУ Cyberia
Введение в параллельный мир
На этой неделе мы рассмотрим историю развития высокопроизводительных вычислительных систем. Разберемся, как устроена память в компьютере и какие есть у нее особенности. Также мы с вами узнаем, как устроена оперативная память в многопроцессорных вычислительных системах, и рассмотрим их основные архитектуры. Рассмотрим несколько примеров задач, для решения которых необходимо применять суперЭВМ, и некоторые инструменты создания параллельных программ.
5 vidéos, 2 lectures
  1. Vidéo: 1.1. История развития параллелизма в архитектуре ЭВМ
  2. Vidéo: 1.2. Иерархическая организация памяти в компьютере
  3. Reading: Перемножение матриц
  4. Vidéo: 1.3. Основные архитектуры многопроцессорных вычислительных систем. Их классификация
  5. Vidéo: 1.4. Обзор задач, требующих использования СуперЭВМ
  6. Vidéo: 1.5. Инструменты создания параллельных программ
  7. Reading: Суперкомпьютерные технологии в науке, образовании и промышленности
Noté: Тестовые вопросы
SEMAINE 2
Основы OpenMP
Добро пожаловать на вторую неделю курса! На этой неделе мы рассмотрим особенности программирования для систем с общей памятью. Разберемся с такими понятиями, как поток и многопоточность. Мы начнем изучение технологии OpenMP, научимся создавать параллельную область. На примерах рассмотрим директивы, которые позволяют управлять процессом исполнения кода в параллельной области.
5 vidéos, 2 lectures
  1. Vidéo: 2.1. Особенности программирования для систем с общей памятью. Понятие процесса, потока и многопоточности
  2. Vidéo: 2.2. Технология OpenMP, особенности и ее компоненты
  3. Vidéo: 2.3. Задание параллельной области и опции, влияющие на ее выполнение
  4. Vidéo: 2.4. Модель памяти. Классы переменных в OpenMP
  5. Vidéo: 2.5. Режимы выполнения многопоточных программ. Вложенный параллелизм
  6. Reading: Ответ на вопрос
  7. Reading: Исходные коды примеров из видеолекций
Noté: Тестовые вопросы
Noté: Первое практическое задание
SEMAINE 3
Директивы распределения работы и синхронизации работы
Добро пожаловать на третью неделю курса! Надеемся, что вы получаете удовольствие от курса и обучения. На этой неделе мы изучим директивы OpenMP, которые позволяют распределять работу между потоками. Рассмотрим различные способы синхронизации выполнения потоков, научимся создавать критические секции и работать с общими переменными с использованием атомарных операций, а также изучим механизмы синхронизации на основе «замков».
5 vidéos, 3 lectures
  1. Vidéo: 3.1. Распараллеливание выполнения циклов
  2. Reading: Параллельная программа сложения векторов
  3. Vidéo: 3.2. Распределение нескольких структурных блоков между потоками
  4. Reading: Параллельная обработка линейного списка
  5. Vidéo: 3.3. Распределение работы на основе независимых задач
  6. Vidéo: 3.4. Синхронизация выполнения различных потоков. Простые директивы
  7. Vidéo: 3.5. Синхронизация выполнения различных потоков. Замки
  8. Reading: Исходные коды примеров из видеолекций
Noté: Тестовые вопросы
Noté: Второе практическое задание
SEMAINE 4
Векторные вычисления с помощью OpenMP 4.0
Приветствуем вас на четвертой неделе курса! На этой недели мы разберемся с тем, что такое векторизация и зачем она нужна. Рассмотрим, как можно векторизовать код для современных процессоров, и познакомимся с новыми возможностями стандарта OpenMP 4.0.
4 vidéos, 1 lecture
  1. Vidéo: 4.1. Что такое векторизация и зачем она нужна
  2. Vidéo: 4.2. Векторизация исполняемого кода для современных процессоров
  3. Vidéo: 4.3. Новые возможности в стандарте OpenMP 4.0
  4. Vidéo: 4.4. Примеры использования векторизации
  5. Reading: Исходные коды примеров из видеолекций
Noté: Тестовые вопросы
SEMAINE 5
Анализ и оптимизация программ с использованием современных программных пакетов
Вот вы и добрались до пятой недели курса! На этой неделе мы с вами рассмотрим основные опции компилятора Intel и то, как можно попробовать автоматически распараллелить программу. Мы также изучим основные возможности программного пакета Intel Parallel Studio, который упрощает и помогает создавать параллельные программы.
4 vidéos, 2 lectures
  1. Vidéo: 5.1. Основные опции компилятора Intel. Автоматическое распараллеливание
  2. Reading: Использование опций компилятора
  3. Vidéo: 5.2. Основные возможности Intel Parallel Studio
  4. Vidéo: 5.3. Поиск ошибок работы с памятью с использованием Intel® Parallel Inspector
  5. Vidéo: 5.4. Профилирование программ с использованием Intel® Parallel Amplifier
  6. Reading: Исходные коды примеров из видеолекций
Noté: Тестовые вопросы
Noté: Итоговое практическое задание по OpenMP
SEMAINE 6
Системы с распределённой памятью. Основы MPI
Приветствуем вас на шестой неделе курса! Вы узнаете историю создания стандарта MPI и задачи, для решения которых он был разработан. Мы дадим основные термины и определения, используемые в рамках модели передачи сообщений. На нескольких примерах параллельных программ будут описаны шесть функций библиотеки MPI, использования которых уже достаточно для написания первых параллельных программ.
5 vidéos, 1 lecture
  1. Vidéo: 6.1. Основные понятия модели передачи сообщений, MPI среди других средств разработки параллельных программ
  2. Vidéo: 6.2. Основные понятия и определения, состав MPI. Синтаксис функций MPI
  3. Vidéo: 6.3. Первая параллельная программа с использованием MPI
  4. Vidéo: 6.4. Ускорение работы параллельной программы
  5. Vidéo: 6.5. О построении параллельных алгоритмов
  6. Reading: Исходные коды примеров из видеолекций
Noté: Тестовые вопросы
SEMAINE 7
Прием и передача сообщений между отдельными процессами
На этой неделе будут изучены функции приема и передачи сообщений между отдельными процессами, будет дана классификация функций парного взаимодействия процессов. Также на ряде примеров будут показаны особенности использования функций приема и передачи сообщений.
5 vidéos, 1 lecture
  1. Vidéo: 7.1. Обзор двухточечных обменов сообщениями
  2. Vidéo: 7.2. Блокирующие обмены
  3. Vidéo: 7.3. Неблокирующие обмены
  4. Vidéo: 7.4. Параллельные алгоритмы суммирования
  5. Vidéo: 7.5. Примеры параллельных программ, демонстрирующие использование функций MPI, изученных в модуле 7
  6. Reading: Исходные коды примеров из видеолекций
Noté: Тестовые вопросы
SEMAINE 8
Коллективные операции
Добро пожаловать на предпоследнюю неделю курса! На этой неделе мы изучим операции коллективного взаимодействия процессов, рассмотрим входные и выходные параметры для коллективных функций, опишем особенности их использования в зависимости от поставленной задачи.
5 vidéos, 1 lecture
  1. Vidéo: 8.1. Обзор коллективных операций. Широковещательная рассылка
  2. Vidéo: 8.2. Функции сбора данных со всех процессов
  3. Vidéo: 8.3. Функции распределения данных по всем процессам
  4. Vidéo: 8.4. Функции редукции
  5. Vidéo: 8.5. Примеры параллельных программ, демонстрирующие использование функций MPI, изученных в модуле 8
  6. Reading: Исходные коды примеров из видеолекций
Noté: Тестовые вопросы
Noté: Первое практическое задание по MPI
SEMAINE 9
Производные типы данных. Группы и коммуникаторы
Вот и подошла последняя неделя курса! Мы рассмотрим дополнительные возможности библиотеки MPI, опишем процедуры создания новых групп и коммуникаторов, а также рассмотрим создание и использование виртуальных топологий, таких как декартова решетка и топология графа.
5 vidéos, 2 lectures
  1. Vidéo: 9.1. Создание и использование производных типов данных
  2. Vidéo: 9.2. Создание групп и коммуникаторов
  3. Vidéo: 9.3. Виртуальные топологии. Декартова топология. Организация пересылок данных в декартовой топологии
  4. Vidéo: 9.4. Виртуальные топологии. Топология графа
  5. Vidéo: 9.5. Примеры параллельных программ, демонстрирующие использование функций MPI, изученных в модуле 9
  6. Reading: Исходные коды примеров из видеолекций
  7. Reading: Анкета завершившего курс
Noté: Тестовые вопросы
Noté: Второе практическое задание по MPI

FAQ
Comment cela fonctionne
Coursework
Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers
Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates
Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

Créateurs
Université d'État de Tomsk
National Research Tomsk State University is the largest classical university in the Asian part of Russia. For over 135 years TSU has been training the scientific and managerial elite, based on the integration of academic process and fundamental scientific research. It is a renowned center of education, science, innovations and attraction for creative talents, a generator of advanced ideas, and a paragon of adherence to the best traditions of Russian higher education. There are 23 departments and learning institutes, 1 University branch, Institute of Distance Education, Institute of Innovations in Education operating at TSU, and more than 17,000 students studying at the University, with 135 subject areas and specialties to choose from. TSU offers 136 Master’s programmes in 55 areas of academic studies and counting. The number of international students is constantly increasing, now with more than 1300 TSU students coming from countries such as the USA, UK, Germany, France, Australia, Italy, Poland, Mongolia, China, Vietnam, Korea, Columbia, Turkey and others.
Notation et examens
Note moyenne 4.6 sur 5 sur 34 notes
Oleg Rakhmatulin

Good course for beginners, provides basic information about Open MP and MPI usage as well as some useful practical exercises. Also includes profiling/optimization session with Intel C/C++ compiler with good step-by-step instructions.



Vous aimerez peut-être aussi
Caltech
Drugs and the Brain
1 cours
Caltech
Drugs and the Brain
Voir le cours
National Research University Higher School of Economics
Introduction to Galois Theory
1 cours
National Research University Higher School of Economics
Introduction to Galois Theory
Voir le cours
École Polytechnique Fédérale de Lausanne
Parallel programming
1 cours
École Polytechnique Fédérale de Lausanne
Parallel programming
Voir le cours
National Research University Higher School of Economics
Introduction to Enumerative Combinatorics
1 cours
National Research University Higher School of Economics
Introduction to Enumerative Combinatorics
Voir le cours
University of California, San Diego, National Research University Higher School of Economics
Algorithmic Toolbox
1 cours
University of California, San Diego, National Research University Higher School of Economics
Algorithmic Toolbox
Voir le cours
Coursera
Coursera propose un accès universel à la meilleure formation au monde, en partenariat avec des universités et des organisations du plus haut niveau, pour proposer des cours en ligne.
© 2018 Coursera Inc. Tous droits réservés.
Télécharger dans l'App StoreDisponible sur Google Play
  • Coursera
  • À propos
  • Direction
  • Carrières
  • Catalogue
  • Certificats
  • Diplômes
  • pour l'entreprise
  • For Government
  • Communauté
  • partenaires
  • Mentors
  • Traducteurs
  • Développeurs
  • Testeurs bêta
  • Se connecter
  • Blog
  • Facebook
  • LinkedIn
  • Twitter
  • Google+
  • Blog Tech
  • Plus
  • Conditions
  • Confidentialité
  • Aide
  • Accessibilité
  • Presse
  • Contact
  • Répertoire
  • Filiales