Практическая работа №3 изучение структуры и работы пакета openmp
Download 313.39 Kb.
|
Практика 3 сиртқи
- Bu sahifa navigatsiya:
- Использование технологии MPI Обзор и сравнение реализаций MPI MPICH
Указания к заданию 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling