🗊 Презентация Основы технологии 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., слайд №23 Основы технологии OpenMP., слайд №24 Основы технологии OpenMP., слайд №25 Основы технологии OpenMP., слайд №26

Содержание

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

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


Слайд 1


3. Основы технологии OpenMP. Модель «fork-join». Классификация переменных. Основные директивы и их опции. Распараллеливание по данным и по операциям....
Описание слайда:
3. Основы технологии OpenMP. Модель «fork-join». Классификация переменных. Основные директивы и их опции. Распараллеливание по данным и по операциям. Решение проблемы синхронизации.

Слайд 2


Технология разработки параллельных программ для МВС с общей памятью (OpenMP) OpenMP (Open Multi-Processing) — открытый развивающийся стандарт для...
Описание слайда:
Технология разработки параллельных программ для МВС с общей памятью (OpenMP) OpenMP (Open Multi-Processing) — открытый развивающийся стандарт для распараллеливания программ на языках С, С++, Fortran, включает описание директив компилятора, библиотечных процедур, переменных ОС, для программирования многопоточных приложений для МВС с общей памятью (имеется версия и для кластеров). Наиболее популярная задача OpenMP — написание программ, ориентированных на циклы

Слайд 3


Модель программирования OpenMP Разветвление-объединение (fork-join) Работа программы начинается с одного (корневого) потока, или нити, треда (thread...
Описание слайда:
Модель программирования OpenMP Разветвление-объединение (fork-join) Работа программы начинается с одного (корневого) потока, или нити, треда (thread – нить). Для добавления в программу параллелизма выполняется разветвление (fork) на несколько тредов, создается группа. Треды группы выполняются параллельно в рамках фрагмента кода, т.наз. параллельной области. В конце параллельной области все треды синхронизируются и заканчивают свою работу (join), оставив корневой . После этого корневой тред продолжает выполняться до тех пор, пока не начнется следующая параллельная область (или не наступит конец программы).

Слайд 4


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

Слайд 5


Из OpenMp Tutorial computing.llnl.gov/tutorials/openMP/
Описание слайда:
Из OpenMp Tutorial computing.llnl.gov/tutorials/openMP/

Слайд 6


Терминология Поток (выполнения), или нить, или тред (thread of the execution) – последовательность выполняющихся команд. Программа, или приложение,...
Описание слайда:
Терминология Поток (выполнения), или нить, или тред (thread of the execution) – последовательность выполняющихся команд. Программа, или приложение, или процесс – может состоять из нескольких потоков Не путать с потоками данных (stream).

Слайд 7


Синтаксис и семантика OpenMP Директива компилятора – указание компилятору на особенности обработки исходного кода при компиляции. Языковые...
Описание слайда:
Синтаксис и семантика OpenMP Директива компилятора – указание компилятору на особенности обработки исходного кода при компиляции. Языковые конструкции в OpenMP определены как директивы компилятора, сообщающие компилятору, что cделать для реализации параллелизма. В C и C++ такие директивы называются прагмы (pragmatic information - полезная информация, ЯП Ada). Синтаксис прагмы #pragma omp имя [опции] Пример – указание на распараллеливание операторов блока: #pragma omp parallel {… }

Слайд 8


Синтаксис и семантика OpenMP Библиотечные функции – позволяют: получать сведения (get) о параметрах тредов в программе, изменять их значения (set),...
Описание слайда:
Синтаксис и семантика OpenMP Библиотечные функции – позволяют: получать сведения (get) о параметрах тредов в программе, изменять их значения (set), выполнять блокировку выполнения для синхронизации тредов. Синтаксис: omp_имя() Пример – определение номера треда (по месту вызова функции): i = omp_get_thread_num();

Слайд 9


Синтаксис и семантика OpenMP Переменные окружения – переменные операционной системы хранят данные ее настройках, позволяют управлять поведением...
Описание слайда:
Синтаксис и семантика OpenMP Переменные окружения – переменные операционной системы хранят данные ее настройках, позволяют управлять поведением программы (в нашем случае - параллелизмом) во время ее выполнения (run-time). Синтаксис: OMP_имя Пример – переменная, задающая максимально возможное количество тредов: OMP_NUM_THREADS Значение OMP_NUM_THREADS изменяет функция void omp_set_num_threads (int n); !!!Функции вида set (назначения параметров) имеют приоритет над соответствующими переменными окружения

Слайд 10


Структура программы OpenMP int main () { //последовательная область, выполняется корневой тред . . . //Начало параллельной области #pragma omp...
Описание слайда:
Структура программы OpenMP int main () { //последовательная область, выполняется корневой тред . . . //Начало параллельной области #pragma omp parallel … { //операторы выполняются всеми тредами . . . //все треды завершают работу, остается только корневой тред } //последовательная область, выполняется корневой тред . . . }

Слайд 11


Простейшая программа. Настройки для работы с OpenMP. Создать новый проект по шаблону «Консольное приложение Win32»
Описание слайда:
Простейшая программа. Настройки для работы с OpenMP. Создать новый проект по шаблону «Консольное приложение Win32»

Слайд 12


Простейшая программа. Настройки для работы с OpenMP. В Мастере выбрать «Пустой проект»
Описание слайда:
Простейшая программа. Настройки для работы с OpenMP. В Мастере выбрать «Пустой проект»

Слайд 13


Простейшая программа. Настройки для работы с OpenMP. Выбрать Проект – Добавить новый элемент
Описание слайда:
Простейшая программа. Настройки для работы с OpenMP. Выбрать Проект – Добавить новый элемент

Слайд 14


Текст программы:
Описание слайда:
Текст программы:

Слайд 15


Дальнейшая настройка
Описание слайда:
Дальнейшая настройка

Слайд 16


Дальнейшая настройка
Описание слайда:
Дальнейшая настройка

Слайд 17


Новый результат:
Описание слайда:
Новый результат:

Слайд 18


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

Слайд 19


Переменные. Локализация (область видимости) Модель данных в OpenMP: общая область памяти - для всех тредов, локальные области памяти - для каждого...
Описание слайда:
Переменные. Локализация (область видимости) Модель данных в OpenMP: общая область памяти - для всех тредов, локальные области памяти - для каждого треда.

Слайд 20


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

Слайд 21


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

Слайд 22


Пример: локализация переменных
Описание слайда:
Пример: локализация переменных

Слайд 23


Директивы OpenMP - parallel Основная директива для создания параллельной области int main () { //последовательная область, выполняется корневой тред...
Описание слайда:
Директивы OpenMP - parallel Основная директива для создания параллельной области int main () { //последовательная область, выполняется корневой тред . . . //Начало параллельной области #pragma omp parallel [опции] { //операторы выполняются всеми тредами . . . //все треды завершают работу, остается только корневой тред } //последовательная область, выполняется корневой тред . . . }

Слайд 24


Синтаксис директивы parallel #pragma omp parallel [опции ...] newline { } if (scalar_expression) num_threads (integer_expression) private (list)...
Описание слайда:
Синтаксис директивы parallel #pragma omp parallel [опции ...] newline { } if (scalar_expression) num_threads (integer_expression) private (list) firstprivate (list) shared (list) default (shared | none) reduction (operator: list) copyin (list)

Слайд 25


Опция if if (scalar_expression) – распараллеливание по условию. Если значение выражения ≠ 0, то осуществляется распараллеливание. Иначе операторы...
Описание слайда:
Опция if if (scalar_expression) – распараллеливание по условию. Если значение выражения ≠ 0, то осуществляется распараллеливание. Иначе операторы параллельной области выполняются единственным корневым тредом.

Слайд 26


Пример #include #include using namespace std; int main() { int n; cout 1 ) { int k = omp_get_thread_num(); cout
Описание слайда:
Пример #include #include using namespace std; int main() { int n; cout 1 ) { int k = omp_get_thread_num(); cout



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