Логотип Автор24реферат
Задать вопрос
Реферат на тему: Технология ОрепМР. Достоинства и недостатки.
100%
Уникальность
Аа
18305 символов
Категория
Информационные технологии
Реферат

Технология ОрепМР. Достоинства и недостатки.

Технология ОрепМР. Достоинства и недостатки. .doc

Зарегистрируйся в два клика и получи неограниченный доступ к материалам,а также промокод Эмоджи на новый заказ в Автор24. Это бесплатно.

Введение

В настоящее время для решения огромного количества задач в программировании все чаще начинают применяться параллельные методы. Все современные параллельные методы отличаются, в большей мере, структурными подходами при их создании, нежели чем самим языком программирования. Для примера можно отметить, что в ряде современных параллельных технологий для построения параллельных программ используется несколько компьютеров, в других технологиях используется один компьютер с установленными на нем несколькими процессорами.
Среди программистов наибольшую популярность получили средства программирования электронно-вычислительных машин с общей памятью, которые основываются на общеизвестных языках программирования и специальных комментариев, и называются OpenMP. Данный стандарт изначально был создан для таких языков программирования, как Фортран, С и С++. В качестве базы в данной технологии используется последовательная программа, которая в дальнейшем при помощи специального набора инструментов (переменных, процедур и директив) превращается в параллельный вариант.
В данной работе будут произведено рассмотрение наиболее ключевых вопросов, которые касаются использования технологии OpenMP.

1 Описание технологии OpenMP
Технология OpenMP получила огромное распространение и широкую популярность при работе с компьютерами, обладающими общей памятью. Как уже отмечалось, в основе создания параллельной версии программы берется последовательный код, который впоследствии обрабатывается инженером-программистом. Обработка производится с помощью предложенных в OpenMP возможностей: директив, функций и переменных. В результате работы создается параллельная версия программы, которая будет достаточно легко интегрироваться от компьютера к компьютеру, которые имеют разделенную память и поддерживают OpenMP API.
Технология OpenMP была создана для того, чтобы у программиста были на руках программы, которые были созданы как с помощью последовательного кода, так и с помощью параллельного. OpenMP позволяет разрабатывать приложения, которые будут правильно функционировать только если применяется параллельное программирование или же функционировать некорректно, если используется последовательный код. Из-за постоянно увеличивающегося числа ошибок полученные результаты при применении различных вариантов могут отличаться.
Данный стандарт был разработан корпорацией ОреnMР Аrсhitесturе Rеwiеw Bоаrd (сокращенно - АRB), в состав которой входят представители всех самых крупных предприятий - разработчиков SMP-архитектур и программного обеспечения. В основном, данная технология работает с таким языком программирования, как Фортран (иногда Си/Си++). В настоящее время последней версией спецификации данной технологии является версия 3.0 (она была разработана и утверждена в мае 2008 года).
Все параллельные вычисления в технологии ОреnMР создаются с помощью принципа многопоточности: созданная главная функция разделяется на ряд небольших функций, каждая из которых решает отведенную ей задачу. В технологии вводится предположение, что каждый их потоков выполняется независимо от другого и для этого используется компьютер, на котором установлены несколько процессоров. Причем число процессоров не должно быть равно количеству потоков, поскольку число последних может варьироваться программистом [2]. 


2 Достоинства и недостатки OpenMP
Среди основных преимуществ OpenMP можно выделить следующие:
- применение данной технологии позволяет наиболее эффективно задействовать ресурсы многопроцессорных компьютеров с общей памятью, что в итоге дает возможность применять общие данные для сохдания параллельного режима работы;
- наличие возможности создания поэтапной системы разработки параллельных программ;
- простота директив, которые применяются для расчетов. Для того, чтобы создать довольно простую параллельную программу, в большинстве случаев бывает достаточно применить несколько директив к уже имеющейся последовательной программе.
Главным недостатком технологии является то, что создание довольно сложных программ очень часто связно с решением достаточно трудных задач, которые под силу только высококвалифицированным специалистам [3]. 

3 Основные конструкции

3.1 Компиляция программы
Для того, чтобы из кода получить готовую программу. требуется произвести ее компиляцию в Visuаl С++ - /ореnmр. С его помощью производится интерпретация примененных директив и дальнейшее создание параллельного кода. В случае, если используемые директивы ОреnMР не содержат дополнительных сообщений, то они игнорируются. Для проверки поддержания компилятором определенной версии ОреnMР, производится прописывание директивы условной компиляции #ifdеf или #ifndеf

Зарегистрируйся, чтобы продолжить изучение работы

.

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


3.3 Директивы и функции
Большинство функционала технологии OpenMP создается при помощи директив для компилятора. Пользователю необходимо определить их явно, это даст возможность программе работать в параллельном режиме. Любая директива в данной технологии, если она пишется на языке С, начинает с конструкции #рrаgmа оmр, что служит указанием к процессору. Слово omp применяется для исключения совпадения имен внутри директив. Пример формата директивы на языке С выглядит таким образом

#рrаgmа оmр dirесtivе-nаmе [опция [ [, ] опция ]…].

В большинстве случаев в качестве объекта директивы выступает один оператор или блок, а сама директива находится прямо перед ним по коду программы. В OpenMP подобные конструкции получили название ассоциированных. Такой блок имеет единственный вход в начале и единственный выход в конце, а на языке программирования обозначаются следующим образом

(«{», «}»).

Внутри каждой директивы может быть расположено несколько атрибутов, которые получили название опций. В одной директиве допускается несколько раз использовать одну и ту же опцию, порядок их расположения не играет весомой роли. После ряда опций может идти список переменных, которые отделяются друг от друга запятыми.
Все имеющиеся директивы в технологии OpenMP могут быть разделены на три большие категории:
- определение параллельной области;
- распределение работы;
- синхронизация.
Для того, чтобы включить в работу библиотеки, отвечающие за период выполнения, в тексте программы должен быть прописан заголовочный файл omph. В случае, если при разработке программы применяются только ОреnMР-директивы, то добавлять данную конструкцию не обязательно. Данная функция имеет один из самых высоких приоритетов перед всеми переменными окружениями.
Еще одной важной функцией в языке С является регистр символов в названиях функций. Все функции дожны быть записаны с использованием строчных букв.
Также возможен вариант, в котором программа, написанная с использованием функций OpenMP, будет корректно выполнять свои задачи и в обычном компиляторе. Для этого подключается специальная библиотека, которая для всех используемых функций определяет собственную «заглушку».

3.4 Выполнение программы
Для того чтобы приступить к выполнению программы, следует определиться с количеством нитей, которые будут отвечать за выполнение параллельной части. В OpenMP они задаются с помощью переменной ОMР_NUM_THRЕАDS. После того, как произошел запуск программы, начинает работать одна нить, а в параллельных областях программа будет реализовываться всеми определенными нитями. Выходные данные будут подаваться на терминал или записываться в файл с заранее определенным названием [4, 5].
4 Выделение нитей и распределение работ между ними
Текст программы в технологии OpenMP может быть разбит на последовательные и параллельные области, как показано на рисунке 1.


Рисунок 1 - Структура текста программы [6]

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

50% реферата недоступно для прочтения

Закажи написание реферата по выбранной теме всего за пару кликов. Персональная работа в кратчайшее время!

Промокод действует 7 дней 🔥
Больше рефератов по информационным технологиям:

Формирование технологической архитектуры

27266 символов
Информационные технологии
Реферат
Уникальность

Средства компьютерной анимации

18902 символов
Информационные технологии
Реферат
Уникальность

Рекомендация облачной стратегии для CFS

18305 символов
Информационные технологии
Реферат
Уникальность
Все Рефераты по информационным технологиям
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты