🗊 Презентация Параллельное программирование в стандарте OpenMP

Нажмите для полного просмотра!
Параллельное программирование в стандарте OpenMP, слайд №1 Параллельное программирование в стандарте OpenMP, слайд №2 Параллельное программирование в стандарте OpenMP, слайд №3 Параллельное программирование в стандарте OpenMP, слайд №4 Параллельное программирование в стандарте OpenMP, слайд №5 Параллельное программирование в стандарте OpenMP, слайд №6 Параллельное программирование в стандарте OpenMP, слайд №7 Параллельное программирование в стандарте OpenMP, слайд №8 Параллельное программирование в стандарте OpenMP, слайд №9 Параллельное программирование в стандарте OpenMP, слайд №10 Параллельное программирование в стандарте OpenMP, слайд №11 Параллельное программирование в стандарте OpenMP, слайд №12 Параллельное программирование в стандарте OpenMP, слайд №13 Параллельное программирование в стандарте OpenMP, слайд №14 Параллельное программирование в стандарте OpenMP, слайд №15 Параллельное программирование в стандарте OpenMP, слайд №16 Параллельное программирование в стандарте OpenMP, слайд №17 Параллельное программирование в стандарте OpenMP, слайд №18 Параллельное программирование в стандарте OpenMP, слайд №19 Параллельное программирование в стандарте OpenMP, слайд №20 Параллельное программирование в стандарте OpenMP, слайд №21 Параллельное программирование в стандарте OpenMP, слайд №22

Содержание

Вы можете ознакомиться и скачать презентацию на тему Параллельное программирование в стандарте OpenMP. Доклад-сообщение содержит 22 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Параллельное программирование в стандарте OpenMP
Описание слайда:
Параллельное программирование в стандарте OpenMP

Слайд 2


Содержание Модель программирования в общей памяти Модель FORK-JOIN Стандарт OpenMP Основные понятия и функции OpenMP
Описание слайда:
Содержание Модель программирования в общей памяти Модель FORK-JOIN Стандарт OpenMP Основные понятия и функции OpenMP

Слайд 3


Программирование в общей памяти
Описание слайда:
Программирование в общей памяти

Слайд 4


Модель FORK-JOIN Современные операционные системы поддерживают полновесные процессы (программы) и легковесные процессы (нити). Процесс – главная...
Описание слайда:
Модель FORK-JOIN Современные операционные системы поддерживают полновесные процессы (программы) и легковесные процессы (нити). Процесс – главная нить. Нить может запускать другие нити в рамках процесса. Каждая нить имеет собственный сегмент стека. Все нити процесса разделяют сегмент данных процесса.

Слайд 5


Стандарт OpenMP OpenMP – стандарт, реализующий модели программирования в общей памяти и Fork-Join. Стандарт представляет собой набор директив...
Описание слайда:
Стандарт OpenMP OpenMP – стандарт, реализующий модели программирования в общей памяти и Fork-Join. Стандарт представляет собой набор директив компилятора и спецификаций подпрограмм для на языках C, С++ и FORTRAN. Стандарт реализуется разработчиками компиляторов для различных аппаратно-программных платформ (кластеры, персональные компьютеры, …, Windows, Unix/Linux, …).

Слайд 6


Структура OpenMP-программы
Описание слайда:
Структура OpenMP-программы

Слайд 7


Директивы OpenMP Директивы OpenMP – директивы C/C++ компилятора #pragma. Для использования директив необходимо установить соответствующие параметры...
Описание слайда:
Директивы OpenMP Директивы OpenMP – директивы C/C++ компилятора #pragma. Для использования директив необходимо установить соответствующие параметры компилятора (обычно -openmp). Синтаксис директив OpenMP: #pragma omp имя_директивы [параметры] Примеры: #pragma omp parallel #pragma omp for private(i, j) reduction(+: sum)

Слайд 8


Функции библиотеки OpenMP Назначение функций библиотеки: контроль и просмотр параметров OpenMP-программы omp_get_thread_num() возвращает номер...
Описание слайда:
Функции библиотеки OpenMP Назначение функций библиотеки: контроль и просмотр параметров OpenMP-программы omp_get_thread_num() возвращает номер текущей нити явная синхронизация нитей на базе "замков" omp_set_lock() устанавливает "замок" Для использования функций необходимо подключить библиотеку #include "omp.h"

Слайд 9


Переменные окружения OpenMP Переменные окружения контролируют поведение приложения. OMP_NUM_THREADS – количество нитей в параллельном регионе...
Описание слайда:
Переменные окружения OpenMP Переменные окружения контролируют поведение приложения. OMP_NUM_THREADS – количество нитей в параллельном регионе OMP_DYNAMIC – разрешение или запрет динамического изменения количества нитей. OMP_NESTED – разрешение или запрет вложенных параллельных регионов. OMP_SCHEDULE – способ распределения итераций в цикле. Функции назначения параметров изменяют значения соответствующих переменных окружения.

Слайд 10


Директивы определения параллельных фрагментов #pragma omp parallel Определяет блок кода, который будет выполнен всеми созданными на входе в этот блок...
Описание слайда:
Директивы определения параллельных фрагментов #pragma omp parallel Определяет блок кода, который будет выполнен всеми созданными на входе в этот блок нитями. #pragma omp for Определяет цикл, итерации которого должны выполняться одновременно несколькими нитями. #pragma omp section Определяет множество блоков кода, каждый из который будет выполняться только одной из созданных на входе в этот блок нитью. #pragma omp master Определяет блок кода, который будет выполнен только главной нитью.

Слайд 11


Простая программа на OpenMP
Описание слайда:
Простая программа на OpenMP

Слайд 12


Директива parallel for OpenMP поддерживает редукцию вычислительных операций, выполняемых в циклах. Редукция подразумевает определение для каждой нити...
Описание слайда:
Директива parallel for OpenMP поддерживает редукцию вычислительных операций, выполняемых в циклах. Редукция подразумевает определение для каждой нити частной переменной для вычисления "частичного" результата и автоматическое выполнение операции "слияния" частичных результатов.

Слайд 13


Параллельные секции Явное определение блоков кода, которые могут исполняться параллельно.
Описание слайда:
Параллельные секции Явное определение блоков кода, которые могут исполняться параллельно.

Слайд 14


Область видимости переменных Общая переменная (shared) – доступна для модификации всем нитям. Частная переменная (private) – доступна для модификации...
Описание слайда:
Область видимости переменных Общая переменная (shared) – доступна для модификации всем нитям. Частная переменная (private) – доступна для модификации только одной (создавшей ее) нити только на время выполнения этой нити. Правила видимости переменных: все переменные, определенные вне параллельной области – общие; все переменные, определенные внутри параллельной области – частные.

Слайд 15


Общие и частные переменные
Описание слайда:
Общие и частные переменные

Слайд 16


Явное указание области видимости Для явного указания области видимости используются следующие параметры директив: shared() – общие переменные...
Описание слайда:
Явное указание области видимости Для явного указания области видимости используются следующие параметры директив: shared() – общие переменные private() – частные переменные Примеры: #pragma omp parallel shared(buf) #pragma omp for private(i, j)

Слайд 17


Общие и частные переменные
Описание слайда:
Общие и частные переменные

Слайд 18


Общие и частные переменные
Описание слайда:
Общие и частные переменные

Слайд 19


Общие и частные переменные
Описание слайда:
Общие и частные переменные

Слайд 20


Директивы синхронизации #pragma omp master Определяет блок кода, который будет выполнен только главной нитью. #pragma omp critical Определяет блок...
Описание слайда:
Директивы синхронизации #pragma omp master Определяет блок кода, который будет выполнен только главной нитью. #pragma omp critical Определяет блок кода, который не должен выполняться одновременно двумя или более нитями. #pragma omp barrier Определяет точку барьерной синхронизации, в которой каждая нить дожидается всех остальных. #pragma omp atomic Определяет переменную в левой части оператора "атомарного" присваивания, которая должна корректно обновляться несколькими нитями. #pragma omp flush Явно определяет точку, в которой обеспечивается одинаковый вид памяти для всех нитей.

Слайд 21


#pragma omp master Определяет блок кода, который будет выполнен только главной нитью. Не подразумевает барьера для других нитей.
Описание слайда:
#pragma omp master Определяет блок кода, который будет выполнен только главной нитью. Не подразумевает барьера для других нитей.

Слайд 22


#pragma omp critical Определяет блок кода, который не должен выполняться одновременно двумя или более нитями.
Описание слайда:
#pragma omp critical Определяет блок кода, который не должен выполняться одновременно двумя или более нитями.



Похожие презентации
Mypresentation.ru
Загрузить презентацию