Логотип Автор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 дней 🔥
Оставляя свои контактные данные и нажимая «Заказать работу», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.
Больше рефератов по информационным технологиям:

Социальные вопросы информационных технологий

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

Защита прав потребителей

18969 символов
Информационные технологии
Реферат
Уникальность
Все Рефераты по информационным технологиям
Закажи реферат
Оставляя свои контактные данные и нажимая «Найти работу», я соглашаюсь пройти процедуру регистрации на Платформе, принимаю условия Пользовательского соглашения и Политики конфиденциальности в целях заключения соглашения.

Наш проект является банком работ по всем школьным и студенческим предметам. Если вы не хотите тратить время на написание работ по ненужным предметам или ищете шаблон для своей работы — он есть у нас.