Хелпикс

Главная

Контакты

Случайная статья





Пример 2.. Задание



Пример 2.

Применим полученные знания о технологии OpenMP для параллельного вычисления суммы ряда

Эту задачу мы уже рассматривали на семинаре по MPI.

Видно, что общая структура программы сохраняется, но необходимо убрать все конструкции MPI, добавить в нужных местах конструкции OpenMP, а вместо явного распараллеливания основного цикла использовать прагмы parallel, for и опцию reduction относительно переменной «с» для корректного суммирования.

Для засечек времени (time1, time2) используется функция omp_get_wtime().

Запуск выполнен при количестве членов ряда n=1000000000, для количества нитей 10. Печатается вычисленная сумма и время счета.

 

 

Задание

1. Изучить в учебном пособии по OpenMP  раздел 3.2.

2. Воспроизвести на кластере Hybrilit вышеприведенные примеры по применению опции reduction.

3. Заменить в программе из Примера 1 операцию сложения на операцию умножения. Прокомментировать результат запуска.

4. Для программы из примера 2 убедиться, что сумма ряда вычисляется корректно. Выполнить серию запусков с увеличивающимся количеством нитей c количеством нитей 1,2,3,4,5,6… Найти оптимальное количество нитей, обеспечивающих наименьшее время счета для этой задачи

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.