Параллельное программирование 2020-2021 учебный год Практическое занятие 9 Оценка эффективности параллельных алгоритмов. Технологии параллельного программирования Параллельное программирование на графических ядрах встроенной графики Intel UHD 620 с использованием библиотеки Intel SDK OpenCL 1. С помощью программы GPU Z, или подобной ей, выясните, какие технологии вычислений на GPU поддерживаются на компьютере. 2. Выполните примеры по настройке и тестированию среды Visual Studio 2013 для работы с библиотекой Intel SDK OpenCL.
Перейти. Задание OpenCL.
https://sites.google.com/site/spbauopencl Первый пример (сложение векторов) выложен в репозиторий https://github.com/whitespacer/spbau_opencl Лабораторная №1 https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxzcGJhdW9wZW5jbHxneDozMjU4YmJmZDQzOWM2MDA0 Лабораторная №2 https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxzcGJhdW9wZW5jbHxneDo1ZDRkMjhiMGY1ODdiMGM4 01 - OpenCL.pdf https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxzcGJhdW9wZW5jbHxneDpjNzM1NTNlMTQ3NzFmYzE https://sites.google.com/site/spbauopencl/lections/01%20-%20OpenCL.pdf?attredirects=0&d=1 02 - OpenCL.pdf https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxzcGJhdW9wZW5jbHxneDo3ZjhlZjM3Y2JkYzc4YmIy https://sites.google.com/site/spbauopencl/lections/02%20-%20OpenCL.pdf?attredirects=0&d=1 https://sites.google.com/site/spbauopencl/samples https://github.com/whitespacer/opencl_lections https://github.com/whitespacer/01-opencl-starter-code http://wiki.osll.ru/doku.php/courses:high_performance_computing:materials Связанные списки http://www.cse.chalmers.se/edu/year/2017/course/TDA384_LP1/files/lectures/Lecture12-parallel_lists.pdf https://delta-course.org/materials/delta_2 Open-CL https://delta-course.org/docs/delta2/ID2-%D0%9F4-5.pdf
Даны трехмерные вектора a, b и c. Найти скалярное произведение a и b, векторное произведение a и c, смешанное произведение a, b и c.
Формула скалярного умножения a и b: a1 * b1 + a2 * b2 + a3 * b3.
Формула векторного произведения a и c, вектор с компонентами: (a2 * c3 - a3 * c2, a3* c1 - a1 * c3, a1 * c2 - a2 * с1).
Формула смешанного произведения a, b и c: сначала векторное произведение a и b, затем результат скалярно умножаем на c.
Домашнее задание
Перейти. Задание OpenMP 4.
Перейти. Задание 4.1. Файл HelloWorlds.c
Перейти. Задание 4.2 Видимость переменных. Файл SharedPrivate.c
Перейти. Задание 4.3 Распараллеливание цикла for. Файл forVector.c
Перейти. Задание 4.4 Распределение заданий с помощью секций. Файл sectionsVector.c
Перейти. Задание OpenMP 5. Вычисление числа π
Перейти. Задание 5.1. Файл pi.cpp
Перейти. Задание 5.2 Синхронизация с помощью директив master, critical. Файл Synchro.c
Перейти. Задание MPI-4. Взаимодействие процессов точка-точка
Перейти. Задание MPI-5. MPI_Scatter, MPI_Gather, MPI_Bcast.
Перейти. Пример 3.1. Файл exapmle_1.c
Перейти. Пример 3.2. Файл exapmle_2.c
Перейти. Задание MPI-6. Коллективное взаимодействие процессов
Гибридное параллельное программирования на базе MPI и OpenMP
Дополнительные задания. Гибридное программирование на базе технологий MPI и OpenMP Задание 1: Напишите гибридную программу нахождения скалярного произведения двух векторов. Задание 2: Напишите гибридную программу для перемножения двух квадратных матриц. Задание 3: Напишите гибридную программу нахождения простых чисел в заданном диапазоне. Замерьте время выполнения программы. Сравните время выполнения параллельной программы и последовательной. Задание 4: Напишите гибридную программу нахождения максимальной суммы элементов строк матрицы. Считаем, что матрица квадратная, целая положительная. Замерьте время выполнения программы. Сравните время выполнения параллельной программы и последовательной.
Перейти. Задание OpenMP+MPI 3.
Перейти. Выполнить пример 1, с.16-23.
Перейти. Учебник
Основы параллельного программирования с использованием технологий MPI и OpenMP: учебное пособие / Р.В. Жалнин, Е.Н. Панюшкина, Е. Е. Пескова, П.А. Шаманаев. – Саранск: Изд-во СВМО, 2013. – 78 с.
Измерение времени в OpenMP, с. 51 - 52.
Измерение времени в MPI, с. 27 - 28.