Технология OpenMP
Задача 1: "Простая программа на OpenMP"
Входные данные: вводятся с клавиатуры
Выходные данные: выводятся на экран
Создайте параллельную область с количеством нитей заданным пользователем.
Каждая нить должна вывести на экран свой номер. Кроме того, корневая нить должна вывести общее
количество нитей.
Указания:
- Создайте проект в MS Visual Studio согласно
инструкции.
- Для создания параллельной области воспользуйтесь директивой parallel.
- Чтобы узнать количество нитей в параллельной области, воспользуйтесь функцией
omp_get_num_thread.
- Чтобы узнать номер нити в параллельной области, воспользуйтесь функцией
omp_get_thread_num.
- Чтобы замерить время выполнения программы, вместо функции clock воспользуйтесь функцией
omp_get_wtime.
Входные данные
Одно целое неотрицательное число
Выходные данные
От каждой нити - строка "I'm thread <номер_нити>". От корневой нити
- дополнительно строка "Number of threads <количество_нитей>".
Примеры входных и выходных данных
Входные данные |
Выходные данные |
3 |
I'm thread 0 I'm thread 1 I'm thread 2 Number of threads 3 |
Задача 2: "Вычисление числа ПИ"
Входные данные: вводятся с клавиатуры
Выходные данные: выводятся на экран
Напишите параллельную версию программы, решающей задачу
"Вычисление числа ПИ".
Произведите замеры времени работы последовательной и параллельной версий программы.
Указания:
- Изучите последовательную программу "Вычисление числа ПИ"
- Для распараллеливания воспользуйтесь директивой for.
- Выберите наиболее подходящее значение параметра schedule директивы for.
- Изучите параметр приведения reduction. Используйте его в своей программе
для суммирования частичных сумм, вычисленных каждой нитью.
Задача 3: "Магический квадрат"
Входные данные: вводятся с клавиатуры
Выходные данные: выводятся на экран
Напишите параллельную версию программы, решающей задачу
"Магический квадрат" из лаборатороной работы 2 части 1.
Произведите замеры времени работы последовательной и параллельной версий программы.
Указания:
- Для распараллеливания воспользуйтесь директивой sections.
Дополнительная задача 4: "Вычисление числа ПИ без параметра reduction"
Входные данные: вводятся с клавиатуры
Выходные данные: выводятся на экран
Перепишите без использования параметра приведения reduction
свой программу, вычисляющую число ПИ.
Указания:
- При выполнении задания воспользуйтесь директивой critical.