Практическая работа №3 изучение структуры и работы пакета openmp


Download 313.39 Kb.
bet7/11
Sana15.06.2023
Hajmi313.39 Kb.
#1478649
TuriПрактическая работа
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
Практика 3 сиртқи

Указания к заданию 5
1. Создайте консольное приложение в среде Visual Studio с поддержкой OpenMP (см. указания к заданию 1 лабораторной работы №1).
2. В функции main создайте параллельную область c 2-я нитями.
3. Для распределения вычислений по нитям в параллельной области напишите следующую
конструкцию:
if (omp_get_thread_num() == 0) {
// вычисления для нити с номером 0
}
else {
// вычисления для нити с номером 1
}
Напишите для нити с номером 0 цикл, вычисляющий сумму чисел от 1 до N/2, а для нити
с номером 1 – от N/2 до N. Частичные суммы запишите в переменную sum.
4. Переменная sum должна быть с одной стороны частной, чтобы избежать ошибки потери слагаемого при одновременной записи в нее двумя нитями, а с другой стороны – должна быть общей, чтобы иметь возможность сложить частичные суммы, подсчитанные нитями. Для таких случаев удобно использовать OpenMP-параметр reduction.
Вставьте в директиве parallel параметр reduction:
#pragma omp parallel reduction(+:sum)
Синтаксис параметра reduction:
reduction(операция:список), где
операция – это одна из операций +, *, -, &, |, ^, &&, || (для языка С);
список – это список общих переменных, для каждой из которых создаются локальные копии в каждой нити. Над локальными копиями переменных после выполнения всех операторов параллельной области выполняется операция.
Локальные копии инициализируются соответственно типу операции (для аддитивных операций – 0 или его аналоги, для мультипликативных операций – 1 или ее аналоги).
5. Скомпилируйте и запустите ваше приложение. Убедитесь, что выдается верный результат.
Использование технологии MPI
Обзор и сравнение реализаций MPI
MPICH
Адрес: http://www-unix.mcs.anl.gov/mpi/mpich
Переносимая реализация (работает почти на всех UNIX-системах и Windows NT), разработана в Argonne National Laboratory. Поддерживаются кластеры на базе SMP-узлов.
Последние версии:
· MPICH 1.2.6 поддерживает стандарт MPI 1.2
· MPICH 2.0 поддерживает стандарт MPI 2.0
Свободно распространяемая реализация.
MP-MPICH
Адрес: http://www.lfbs.rwth-aachen.de/content/mp-mpich
Мультиплатформенная реализация MPI на базе MPICH, включает NT-MPICH(версию MPICH для Windows NT) и SCI-MPICH(версию MPICH для SCI-коммутаторов).
Разработка компании RWTH-Aachen(Аахен, Германия).
Свободно распространяемая реализация.
MPI/PRO
Адрес: http://www.mpi-sof ttech.com/products/cluster/mpipro/
Работает на кластерах рабочих станций и серверов Windows NT(платформы Intel и Alpha).
Разработка компании Verari System Sof tware.
Коммерческая реализация
Реализации от производителей
IBM, HP, Sun, Intel , Microsoft, …
Выводы
· не существует однозначно лучшей реализации;
· множество компаний в том или ином виде ведут исследовательские работы по оптимизации конкретных реализаций;
· эффект от оптимизации конкретных функций MPI может составлять несколько раз.

Download 313.39 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling