🗊 Презентация Управление центральным процессором и объединение ресурсов 3

Категория: Образование
Нажмите для полного просмотра!
Управление центральным процессором и объединение ресурсов 3, слайд №1 Управление центральным процессором и объединение ресурсов 3, слайд №2 Управление центральным процессором и объединение ресурсов 3, слайд №3 Управление центральным процессором и объединение ресурсов 3, слайд №4 Управление центральным процессором и объединение ресурсов 3, слайд №5 Управление центральным процессором и объединение ресурсов 3, слайд №6 Управление центральным процессором и объединение ресурсов 3, слайд №7 Управление центральным процессором и объединение ресурсов 3, слайд №8 Управление центральным процессором и объединение ресурсов 3, слайд №9 Управление центральным процессором и объединение ресурсов 3, слайд №10 Управление центральным процессором и объединение ресурсов 3, слайд №11 Управление центральным процессором и объединение ресурсов 3, слайд №12 Управление центральным процессором и объединение ресурсов 3, слайд №13 Управление центральным процессором и объединение ресурсов 3, слайд №14 Управление центральным процессором и объединение ресурсов 3, слайд №15 Управление центральным процессором и объединение ресурсов 3, слайд №16 Управление центральным процессором и объединение ресурсов 3, слайд №17 Управление центральным процессором и объединение ресурсов 3, слайд №18 Управление центральным процессором и объединение ресурсов 3, слайд №19 Управление центральным процессором и объединение ресурсов 3, слайд №20 Управление центральным процессором и объединение ресурсов 3, слайд №21 Управление центральным процессором и объединение ресурсов 3, слайд №22 Управление центральным процессором и объединение ресурсов 3, слайд №23 Управление центральным процессором и объединение ресурсов 3, слайд №24 Управление центральным процессором и объединение ресурсов 3, слайд №25 Управление центральным процессором и объединение ресурсов 3, слайд №26

Содержание

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

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


Слайд 1


Операционные системы Управление центральным процессором и объединение ресурсов
Описание слайда:
Операционные системы Управление центральным процессором и объединение ресурсов

Слайд 2


Управление центральным процессором… Реализация многопоточности с использованием технологии OpenMP
Описание слайда:
Управление центральным процессором… Реализация многопоточности с использованием технологии OpenMP

Слайд 3


Стандарт OpenMP Стандарт OpenMP был разработан в 1997г. как API, ориентированный на написание портируемых многопоточных приложений. Сначала он был...
Описание слайда:
Стандарт OpenMP Стандарт OpenMP был разработан в 1997г. как API, ориентированный на написание портируемых многопоточных приложений. Сначала он был основан на языке Fortran, но позднее включил в себя и C/C++. Последняя версия OpenMP — 2.0; ее полностью поддерживает Visual C++ 2005.

Слайд 4


Активизация OpenMP Прежде чем заниматься кодом, вы должны знать, как активизировать реализованные в компиляторе средства OpenMP. Для этого служит...
Описание слайда:
Активизация OpenMP Прежде чем заниматься кодом, вы должны знать, как активизировать реализованные в компиляторе средства OpenMP. Для этого служит появившийся в Visual C++ 2005 параметр компилятора /openmp. Встретив параметр /openmp, компилятор определяет символ _OPENMP, с помощью которого можно выяснить, включены ли средства OpenMP. Для этого достаточно написать #ifndef _OPENMP.

Слайд 5


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

Слайд 6


Конструкции OpenMP OpenMP прост в использовании и включает лишь два базовых типа конструкций: директивы pragma и функции исполняющей среды OpenMP....
Описание слайда:
Конструкции OpenMP OpenMP прост в использовании и включает лишь два базовых типа конструкций: директивы pragma и функции исполняющей среды OpenMP. Директивы pragma, как правило, указывают компилятору реализовать параллельное выполнение блоков кода. Все эти директивы начинаются с #pragma omp. Как и любые другие директивы pragma, они игнорируются компилятором, не поддерживающим конкретную технологию - в данном случае OpenMP.

Слайд 7


Конструкции OpenMP Функции OpenMP служат в основном для изменения и получения параметров среды. Кроме того, OpenMP включает API-функции для поддержки...
Описание слайда:
Конструкции OpenMP Функции OpenMP служат в основном для изменения и получения параметров среды. Кроме того, OpenMP включает API-функции для поддержки некоторых типов синхронизации. Чтобы задействовать эти функции библиотеки OpenMP периода выполнения (исполняющей среды), в программу нужно включить заголовочный файл omp.h. Если вы используете в приложении только OpenMP-директивы pragma, включать этот файл не требуется.

Слайд 8


Формат директивы pragma Для реализации параллельного выполнения блоков приложения нужно просто добавить в код директивы pragma и, если нужно,...
Описание слайда:
Формат директивы pragma Для реализации параллельного выполнения блоков приложения нужно просто добавить в код директивы pragma и, если нужно, воспользоваться функциями библиотеки OpenMP периода выполнения. Директивы pragma имеют следующий формат: #pragma omp [раздел [ [,] раздел]...]

Слайд 9


Директивы pragma OpenMP поддерживает директивы parallel, for, parallel for, section, sections, single, master, critical, flush, ordered и atomic,...
Описание слайда:
Директивы pragma OpenMP поддерживает директивы parallel, for, parallel for, section, sections, single, master, critical, flush, ordered и atomic, которые определяют или механизмы разделения работы или конструкции синхронизации. Далее мы рассмотрим простейший пример с использованием директив parallel, for, parallel for.

Слайд 10


Реализация параллельной обработки Самая важная и распространенная директива - parallel. Она создает параллельный регион для следующего за ней...
Описание слайда:
Реализация параллельной обработки Самая важная и распространенная директива - parallel. Она создает параллельный регион для следующего за ней структурированного блока, например: #pragma omp parallel [раздел[ [,] раздел]...] структурированный блок

Слайд 11


Реализация параллельной обработки Директива parallel сообщает компилятору, что структурированный блок кода должен быть выполнен параллельно, в...
Описание слайда:
Реализация параллельной обработки Директива parallel сообщает компилятору, что структурированный блок кода должен быть выполнен параллельно, в нескольких потоках. Каждый поток будет выполнять один и тот же поток команд, но не один и тот же набор команд — все зависит от операторов, управляющих логикой программы, таких как if-else.

Слайд 12


Пример параллельной обработки В качестве примера рассмотрим классическую программу «Hello World»: #pragma omp parallel { printf("Hello...
Описание слайда:
Пример параллельной обработки В качестве примера рассмотрим классическую программу «Hello World»: #pragma omp parallel { printf("Hello World\n"); }

Слайд 13


Пример параллельной обработки В двухпроцессорной системе вы, конечно же, рассчитывали бы получить следующее: Hello World Hello World Тем не менее,...
Описание слайда:
Пример параллельной обработки В двухпроцессорной системе вы, конечно же, рассчитывали бы получить следующее: Hello World Hello World Тем не менее, результат мог быть другим: HellHell oo WorWlodrl d Второй вариант возможен из-за того, что два выполняемых параллельно потока могут попытаться вывести строку одновременно.

Слайд 14


Директива #pragma omp for Директива #pragma omp for сообщает, что при выполнении цикла for в параллельном регионе итерации цикла должны быть...
Описание слайда:
Директива #pragma omp for Директива #pragma omp for сообщает, что при выполнении цикла for в параллельном регионе итерации цикла должны быть распределены между потоками группы. Следует отметить, что в конце параллельного региона выполняется барьерная синхронизация (barrier synchronization). Иначе говоря, достигнув конца региона, все потоки блокируются до тех пор, пока последний поток не завершит свою работу.

Слайд 15


Пример параллельной обработки #pragma omp parallel { #pragma omp for for(int i = 1; i < size; ++i) x[i] = (y[i-1] + y[i+1])/2; }
Описание слайда:
Пример параллельной обработки #pragma omp parallel { #pragma omp for for(int i = 1; i < size; ++i) x[i] = (y[i-1] + y[i+1])/2; }

Слайд 16


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

Слайд 17


Пример параллельной обработки #pragma omp parallel for for(int i = 1; i < size; ++i) x[i] = (y[i-1] + y[i+1])/2;
Описание слайда:
Пример параллельной обработки #pragma omp parallel for for(int i = 1; i < size; ++i) x[i] = (y[i-1] + y[i+1])/2;

Слайд 18


Задание числа потоков Чтобы узнать или задать число потоков в группе, используйте функции omp_get_num_threads и omp_set_num_threads. Первая...
Описание слайда:
Задание числа потоков Чтобы узнать или задать число потоков в группе, используйте функции omp_get_num_threads и omp_set_num_threads. Первая возвращает число потоков, входящих в текущую группу потоков. Если вызывающий поток выполняется не в параллельном регионе, эта функция возвращает 1. Метод omp_set_num_thread задает число потоков для выполнения следующего параллельного региона, который встретится текущему выполняемому потоку (статическое планирование).

Слайд 19


Алгоритмы планирования По умолчанию в OpenMP для планирования параллельного выполнения циклов for применяется алгоритм, называемый статическим...
Описание слайда:
Алгоритмы планирования По умолчанию в OpenMP для планирования параллельного выполнения циклов for применяется алгоритм, называемый статическим планированием. Это означает, что все потоки из группы выполняют одинаковое число итераций цикла. Если n - число итераций цикла, а T - число потоков в группе, каждый поток выполнит n/T итераций.

Слайд 20


Алгоритмы планирования Однако OpenMP поддерживает и другие механизмы планирования, оптимальные в разных ситуациях: динамическое планирование (dynamic...
Описание слайда:
Алгоритмы планирования Однако OpenMP поддерживает и другие механизмы планирования, оптимальные в разных ситуациях: динамическое планирование (dynamic scheduling); планирование в период выполнения (runtime scheduling); управляемое планирование (guided scheduling).

Слайд 21


Алгоритмы планирования Чтобы задать один из этих механизмов планирования, используйте раздел schedule в директиве #pragma omp for или #pragma omp...
Описание слайда:
Алгоритмы планирования Чтобы задать один из этих механизмов планирования, используйте раздел schedule в директиве #pragma omp for или #pragma omp parallel for. Формат этого раздела выглядит так: schedule(алгоритм планирования[, число итераций])

Слайд 22


Динамическое планирование При динамическом планировании каждый поток выполняет указанное число итераций (по умолчанию равно 1). После того как поток...
Описание слайда:
Динамическое планирование При динамическом планировании каждый поток выполняет указанное число итераций (по умолчанию равно 1). После того как поток завершит выполнение заданных итераций, он переходит к следующему набору итераций. Так продолжается, пока не будут пройдены все итерации. Последний набор итераций может быть меньше, чем изначально заданный.

Слайд 23


Управляемое планирование При управляемом планировании число итераций, выполняемых каждым потоком, определяется по следующей формуле:...
Описание слайда:
Управляемое планирование При управляемом планировании число итераций, выполняемых каждым потоком, определяется по следующей формуле: число_выполняемых_потоком_итераций = max(число_нераспределенных_итераций/ omp_get_num_threads(), число итераций)

Слайд 24


Примеры задания алгоритмов планирования #pragma omp parallel for schedule(dynamic, 15) for(int i = 0; i < 100; ++i) ... #pragma omp parallel #pragma...
Описание слайда:
Примеры задания алгоритмов планирования #pragma omp parallel for schedule(dynamic, 15) for(int i = 0; i < 100; ++i) ... #pragma omp parallel #pragma omp for schedule(guided)

Слайд 25


Планирование в период выполнения Планирование в период выполнения - это скорее даже не алгоритм планирования, а способ динамического выбора одного из...
Описание слайда:
Планирование в период выполнения Планирование в период выполнения - это скорее даже не алгоритм планирования, а способ динамического выбора одного из трех описанных алгоритмов. Если в разделе schedule указан параметр runtime, исполняющая среда OpenMP использует алгоритм планирования, заданный для конкретного цикла for при помощи переменной OMP_SCHEDULE.

Слайд 26


Планирование в период выполнения Переменная OMP_SCHEDULE имеет формат «тип[,число итераций]», например: set OMP_SCHEDULE=dynamic,8 Планирование в...
Описание слайда:
Планирование в период выполнения Переменная OMP_SCHEDULE имеет формат «тип[,число итераций]», например: set OMP_SCHEDULE=dynamic,8 Планирование в период выполнения дает определенную гибкость в выборе типа планирования, при этом по умолчанию применяется статическое планирование.



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