Главная » Просмотр файлов » СКИПОДы 2007 полная версия

СКИПОДы 2007 полная версия (1127795), страница 50

Файл №1127795 СКИПОДы 2007 полная версия (СКИПОДы 2007 полная версия) 50 страницаСКИПОДы 2007 полная версия (1127795) страница 502019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 50)

Каждая директива может иметьнесколько дополнительных атрибутов - клауз. Отдельно специфицируются клаузы дляназначения классов переменных, которые могут быть атрибутами различных директив.Порождение нитейPARALLEL ... END PARALLELОпределяет параллельную область программы. При входе в эту область порождаются новые(N-1), образуется "команда" из N нитей, а порождающая нить получает номер 0 истановится основной нитью команды (т.н.

"master thread"). При выходе из параллельнойобласти основная нить дожидается завершения остальных нитей, и продолжает выполнениев одном экземпляре. Предполагается, что в SMP-системе нити будут распределены поразличным процессорам (однако это, как правило, находится в ведении операционнойсистемы).Каким образом между порожденными нитями распределяется работа - определяетсядирективами DO,SECTIONS и SINGLE. Возможно также явное управление распределениемработы (а-ля MPI) с помощью функций, возвращающих номер текущей нити и общее числонитей. По умолчанию (вне этих директив), код внутри PARALLEL исполняется всеминитями одинаково.Вместе с PARALLEL может использоваться клауза IF(условие) - й параллельная работаинициируется только при выполнении указанного в ней условия.166Параллельные области могут динамически вложенными.

По умолчанию (если вложенныйпараллелизм не разрешен явно), внутренняя параллельная область исполняется однойнитью.Разделение работы (work-sharing constructs)Параллельные циклыDO ... [ENDDO]Определяет параллельный цикл.Клауза SCHEDULE определяет способ распределения итераций по нитям:STATIC,m - статически, блоками по m итерацийDYNAMIC,m - динамически, блоками по m (каждая нить берет на выполнение первый ещеневзятый блок итераций)GUIDED,m - размер блока итераций уменьшается экспоненциально до величины mRUNTIME - выбирается во время выполнения .По умолчанию, в конце цикла происходит неявная синхронизация; эту синхронизациюможно запретить с помощью ENDDO NOWAIT.Параллельные секцииSECTIONS ...

END SECTIONSНе-итеративная параллельная конструкция. Определяет набор независимых секций кода(т.н., "конечный" параллелизм). Секции отделяются друг от друга директивой SECTION.Примечание. Если внутри PARALLEL содержится только одна конструкция DO или толькоодна конструкия SECTIONS, то можно использовать укороченную запись: PARALLEL DOили PARALLEL SECTIONS.Исполнение одной нитьюSINGLE ... END SINGLEОпределяет блок кода, который будет исполнен только одной нитью (первой, котораядойдет до этого блока).Явное управление распределением работыС помощью функций OMP_GET_THREAD_NUM() и OMP_GET_NUM_THREADS нитьможет узнать свой номер и общее число нитей, а затем выполнять свою часть работы взависимости от своего номера (этот подход широко используется в программах на базеинтерфейса MPI).Директивы синхронизацииMASTER ... END MASTERОпределяет блок кода, который будет выполнен только master-ом (нулевой нитью).CRITICAL ...

END CRITICALОпределяет критическую секцию, то есть блок кода, который не должен выполнятьсяодновременно двумя или более нитямиBARRIERОпределяет точку барьерной синхронизации, в которой каждая нить дожидается всехостальных.ATOMIC167Определяет переменную в левой части оператора "атомарного" присваивания, котораядолжна корректно обновляться несколькими нитями.ORDERED ... END ORDEREDОпределяет блок внутри тела цикла, который должен выполняться в том порядке, в которомитерации идут в последовательном цикле. Может использоваться для упорядочения выводаот параллельных нитей.FLUSHЯвно определяет точку, в которой реализация должна обеспечить одинаковый вид памятидля всех нитей.

Неявно FLUSH присутствует в следующих директивах: BARRIER,CRITICAL, END CRITICAL, END DO, END PARALLEL, END SECTIONS, END SINGLE,ORDERED, END ORDERED.В целях синхронизации можно также пользоваться механизмом замков (locks).3. Классы переменныхВ OpenMP переменные в параллельных областях программы разделяются на два основныхкласса:SHARED (общие; под именем A все нити видят одну переменную) иPRIVATE (приватные; под именем A каждая нить видит свою переменную).Отдельные правила определяют поведение переменных при входе и выходе изпараллельной области или параллельного цикла: REDUCTION, FIRSTPRIVATE,LASTPRIVATE, COPYIN.По умолчанию, все COMMON-блоки, а также переменные, порожденные вне параллельнойобласти, при входе в эту область остаются общими (SHARED).

Исключение составляютпеременные - счетчики итераций в цикле, по очевидным причинам. Переменные,порожденные внутри параллельной области, являются приватными (PRIVATE). Явноназначить класс переменных по умолчанию можно с помощью клаузы DEFAULT.SHAREDПрименяется к переменным, которые необходимо сделать общими.PRIVATEПрименяется к переменным, которые необходимо сделать приватными. При входе впараллельную область для каждой нити создается отдельный экземпляр переменной,который не имеет никакой связи с оригинальной переменной вне параллельной области.THREADPRIVATEПрименяется к COMMON-блокам, которые необходимо сделать приватными. Директивадолжна применяться после каждой декларации COMMON-блока.FIRSTPRIVATEПриватные копии переменной при входе в параллельную область инициализируютсязначением оригинальной переменной.LASTPRIVATEПо окончании параллельно цикла или блока параллельных секций, нить, которая выполнилапоследнюю итерацию цикла или последнюю секцию блока, обновляет значениеоригинальной переменной.168REDUCTION(+:A)Обозначает переменную, с которой в цикле производится reduction-операция (например,суммирование).

При выходе из цикла, данная операция производится над копиямипеременной во всех нитях, и результат присваивается оригинальной переменной.COPYINПрименяется к COMMON-блокам, которые помечены как THREADPRIVATE. При входе впараллельную область приватные копии этих данных инициализируются оригинальнымизначениями.4. Runtime-процедуры и переменные средыВ целях создания переносимой среды запуска параллельных программ, в OpenMPопределен ряд переменных среды, контролирующих поведение приложения.В OpenMP предусмотрен также набор библиотечных процедур, которые позволяют:во время исполнения контролировать и запрашивать различные параметры, определяющиеповедение приложения (такие как число нитей и процессоров, возможность вложенногопараллелизма); процедуры назначения параметров имеют приоритет над соотвествующимипеременными среды.использовать синхронизацию на базе замков (locks).Язык Фортран-DVM.1.2.

DVM–подход к разработке параллельных программDVM-система предоставляет единый комплекс средств для разработки параллельныхпрограмм научно-технических расчетов на языках Си и Фортран 77.Модель параллелизма DVM. Модель параллелизма DVM базируется на моделипараллелизма по данным. Аббревиатура DVM отражает два названия модели:распределенная виртуальная память (Distributed Virtual Memory) и распределеннаявиртуальная машина (Distributed Virtual Mashine). Эти два названия указывают наадаптацию модели DVM как для систем с общей памятью, так и для систем сраспределенной памятью. Высокоуровневая модель DVM позволяет не только снизитьтрудоемкость разработки параллельных программ, но и определяет единуюформализованную базу для систем поддержки выполнения, отладки, оценки и прогнозапроизводительности.Языки и компиляторы.

В отличие от стандарта HPF в системе DVM не ставилась задачаполной автоматизации распараллеливания вычислений и синхронизации работы с общимиданными. С помощью высокоуровневых спецификаций программист полностью управляетэффективностью выполнения параллельной программы. С другой стороны, припроектировании и развитии языка Fortran DVM отслеживалась совместимость сподмножеством стандартов HPF1 и HPF2.Единая модель параллелизма встроена в языки Си и Фортран 77 на базе конструкций,которые “невидимы” для стандартных компиляторов, что позволяет иметь один экземплярпрограммы для последовательного и параллельного выполнения. Компиляторы с языков CDVM и Fortran DVM переводят DVM-программу в программу на соответствующем языке(Си или Фортран 77) с вызовами функций системы поддержки параллельного выполнения.Поэтому единственным требованием к параллельной системе является наличиекомпиляторов с языков Си и Фортран 77.169Технология выполнения и отладки.

Единая модель параллелизма позволяет иметь для двухязыков единую систему поддержки выполнения и, как следствие, единую систему отладки,анализа и прогноза производительности. Выполнение и отладка DVM-программ можетосуществляться в следующих режимах:Последовательное выполнение и отладка средствами стандартных компиляторов с языковСи и Фортран 77.Псевдо-параллельное выполнение на рабочей станции (среда WINDOWS и UNIX).Параллельное выполнение на параллельной ЭВМ.При псевдо-параллельном и параллельном выполнении возможны следующие режимыотладки:автоматическая проверка правильности директив параллелизма;трассировка и сравнение результатов параллельного и последовательного выполнения;накопление и визуализация трассировки данных;накопление данных о производительности и прогноз производительности параллельноговыполнения.2.

Характеристики

Тип файла
PDF-файл
Размер
1,93 Mb
Высшее учебное заведение

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6361
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее