Введение в параллельное программирование с использованием OpenMP и MPI
- 4.6
Course Summary
Learn how to write programs that can run simultaneously and make the most of your hardware with Parallel Programming in C++ and CUDA.Key Learning Points
- Understand the basic concepts of parallel programming
- Learn how to write parallel programs in C++ and CUDA
- Optimize your code to run faster and more efficiently
Job Positions & Salaries of people who have taken this course might have
- USA: $100,000-$200,000
- India: ₹1,000,000-₹2,000,000
- Spain: €30,000-€70,000
- USA: $100,000-$200,000
- India: ₹1,000,000-₹2,000,000
- Spain: €30,000-€70,000
- USA: $80,000-$150,000
- India: ₹800,000-₹1,500,000
- Spain: €25,000-€60,000
- USA: $100,000-$200,000
- India: ₹1,000,000-₹2,000,000
- Spain: €30,000-€70,000
- USA: $80,000-$150,000
- India: ₹800,000-₹1,500,000
- Spain: €25,000-€60,000
- USA: $90,000-$170,000
- India: ₹900,000-₹1,700,000
- Spain: €27,000-€50,000
Related Topics for further study
Learning Outcomes
- Understand the basics of parallel programming and optimization
- Write efficient parallel programs in C++ and CUDA
- Optimize your code to make the most of your hardware
Prerequisites or good to have knowledge before taking this course
- Basic knowledge of C++ programming
- Familiarity with parallel programming concepts
Course Difficulty Level
IntermediateCourse Format
- Online
- Self-paced
- Video lectures
Similar Courses
- Introduction to Parallel Programming
- Parallel, Concurrent, and Distributed Programming in Java Specialization
- Parallel and Concurrent Programming with Java
Related Education Paths
Related Books
Description
Потребность решения сложных прикладных задач с большим объемом вычислений и принципиальная ограниченность максимального быстродействия «классических» – по схеме фон Неймана – ЭВМ привели к появлению многопроцессорных вычислительных систем (МВС) или суперкомпьютеров.
Outline
- Добро пожаловать на курс «Введение в параллельное программирование с использованием OpenMP и MPI»
- О курсе «Введение в параллельное программирование с использованием OpenMP и MPI»
- О Национальном исследовательском Томском государственном университете
- О преподавателях
- О команде курса
- Как с нами связаться
- Необходимое программное обеспечение
- Инструкция по установке MS Visual Studio 2015 Community edition в операционной системе Windows
- Инструкция по установке Intel® Parallel Studio XE Professional 2016 на компьютер с операционной системой Windows
- Инструкция по установке HPC Pack 2008 SDK SP2 на компьютер с операционной системой Windows
- Инструкция по установке и настройке MPI в Windows
- Список литературы и дополнительных материалов к курсу
- Анкета слушателя
- Доступ к кластеру ТГУ Cyberia
- Введение в параллельный мир
- 1.1. История развития параллелизма в архитектуре ЭВМ
- 1.2. Иерархическая организация памяти в компьютере
- 1.3. Основные архитектуры многопроцессорных вычислительных систем. Их классификация
- 1.4. Обзор задач, требующих использования СуперЭВМ
- 1.5. Инструменты создания параллельных программ
- Перемножение матриц
- Суперкомпьютерные технологии в науке, образовании и промышленности
- Тестовые вопросы
- Основы OpenMP
- 2.1. Особенности программирования для систем с общей памятью. Понятие процесса, потока и многопоточности
- 2.2. Технология OpenMP, особенности и ее компоненты
- 2.3. Задание параллельной области и опции, влияющие на ее выполнение
- 2.4. Модель памяти. Классы переменных в OpenMP
- 2.5. Режимы выполнения многопоточных программ. Вложенный параллелизм
- Ответ на вопрос
- Исходные коды примеров из видеолекций
- Тестовые вопросы
- Директивы распределения работы и синхронизации работы
- 3.1. Распараллеливание выполнения циклов
- 3.2. Распределение нескольких структурных блоков между потоками
- 3.3. Распределение работы на основе независимых задач
- 3.4. Синхронизация выполнения различных потоков. Простые директивы
- 3.5. Синхронизация выполнения различных потоков. Замки
- Параллельная программа сложения векторов
- Параллельная обработка линейного списка
- Исходные коды примеров из видеолекций
- Тестовые вопросы
- Векторные вычисления с помощью OpenMP 4.0
- 4.1. Что такое векторизация и зачем она нужна
- 4.2. Векторизация исполняемого кода для современных процессоров
- 4.3. Новые возможности в стандарте OpenMP 4.0
- 4.4. Примеры использования векторизации
- Исходные коды примеров из видеолекций
- Тестовые вопросы
- Анализ и оптимизация программ с использованием современных программных пакетов
- 5.1. Основные опции компилятора Intel. Автоматическое распараллеливание
- 5.2. Основные возможности Intel Parallel Studio
- 5.3. Поиск ошибок работы с памятью с использованием Intel® Parallel Inspector
- 5.4. Профилирование программ с использованием Intel® Parallel Amplifier
- Использование опций компилятора
- Исходные коды примеров из видеолекций
- Тестовые вопросы
- Системы с распределённой памятью. Основы MPI
- 6.1. Основные понятия модели передачи сообщений, MPI среди других средств разработки параллельных программ
- 6.2. Основные понятия и определения, состав MPI. Синтаксис функций MPI
- 6.3. Первая параллельная программа с использованием MPI
- 6.4. Ускорение работы параллельной программы
- 6.5. О построении параллельных алгоритмов
- Исходные коды примеров из видеолекций
- Тестовые вопросы
- Прием и передача сообщений между отдельными процессами
- 7.1. Обзор двухточечных обменов сообщениями
- 7.2. Блокирующие обмены
- 7.3. Неблокирующие обмены
- 7.4. Параллельные алгоритмы суммирования
- 7.5. Примеры параллельных программ, демонстрирующие использование функций MPI, изученных в модуле 7
- Исходные коды примеров из видеолекций
- Тестовые вопросы
- Коллективные операции
- 8.1. Обзор коллективных операций. Широковещательная рассылка
- 8.2. Функции сбора данных со всех процессов
- 8.3. Функции распределения данных по всем процессам
- 8.4. Функции редукции
- 8.5. Примеры параллельных программ, демонстрирующие использование функций MPI, изученных в модуле 8
- Исходные коды примеров из видеолекций
- Тестовые вопросы
- Производные типы данных. Группы и коммуникаторы
- 9.1. Создание и использование производных типов данных
- 9.2. Создание групп и коммуникаторов
- 9.3. Виртуальные топологии. Декартова топология. Организация пересылок данных в декартовой топологии
- 9.4. Виртуальные топологии. Топология графа
- 9.5. Примеры параллельных программ, демонстрирующие использование функций MPI, изученных в модуле 9
- Исходные коды примеров из видеолекций
- Анкета завершившего курс
- Тестовые вопросы
Summary of User Reviews
Discover the world of parallel programming with this course on Coursera. The course has received positive reviews from users who found it to be helpful and informative. One key aspect that many users thought was good is the hands-on approach that the course takes, allowing users to practice what they learn.Pros from User Reviews
- Hands-on approach to learning
- Informative and helpful course material
- Great for beginners in parallel programming
- Engaging and interactive lessons
- Good instructor support
Cons from User Reviews
- Some users found the course to be too basic
- Limited practical applications
- Not suitable for advanced users
- Some technical issues with the platform
- Course could be more challenging