Главная » Просмотр файлов » В.Д. Корнеев - Параллельное программирование в MPI

В.Д. Корнеев - Параллельное программирование в MPI (1162616), страница 19

Файл №1162616 В.Д. Корнеев - Параллельное программирование в MPI (В.Д. Корнеев - Параллельное программирование в MPI) 19 страницаВ.Д. Корнеев - Параллельное программирование в MPI (1162616) страница 192019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Использование других способов связи, описанных в п. 5.12, поможет также избегать ситуаций блокировки из-за недостатка пространства буфера. 5.4.2. Миогоподпроцессиый режим Каждый процесс может иметь в своем составе несколько подпроцессов (программный код, заданный на определенном участке памяти с входными и промежуточными данными и с вектором состояния), которые выполняются в псевдопараллельном режиме. Каждому подпроцессу по очереди выделяется квант времени, в течение которого исполняется текущий подпроцесс.

В конце кванта текущий подпроцесс прерывается, его вектор состояния запоминается, и подпроцесс ставится в очередь, а управление передается следующему по очереди падпроцессу на время следующего кванта и т.д. МР1 не определяет взаимодействие блокированных запросов связи с планировщиком цодпроцессов в многоподпроцессном режиме выполнения. В случае, если подпроцесс выполняет блокированный запрос связи, доступ к передаваемому буферу блокируется только для этого подпроцесса. Поскольку подпроцессы когут иметь общие данные, то может произойти следующая ситуация. Текущий подпроцесс начал выполнение передачи некоторого буфера, но был прерван по завершению кванта времени, и управление передалось следующему подпроцессу, который также имеет доступ к передаваемому предыдущей ветвью буферу и осуществляет этот доступ.

В этом случае доступ к этому буферу другой ветвью не блокирован. А значит и результат пересылки буфера предыдущим цодпроцессом неопределен. Ответственность за недопущение подобных ситуаций лежит на пользователе. 5,4.3. Порядок взаимодействий Одним из важных принципов взаимодействий является не обгон сообщений. Передача сообшений, посланных одним процессом к другому, осуществляется в указанной последовательности, такой же, как и получающие функции. Каждое поступающее сообщение принимается первой соответствующей принимающей функцией в последовательности. Это иллюстрируется на рис. 5.1. Нулевой процесс посылает два сообщения процессу 1 и процесс 2 посылает тря сообщения тоже первому процессу.

Процесс 1 должен получить пять сообщений. Связь осуществляется в той же самой области связи. Первое сообщение, посланное нулевым процессом, и первое сообщением, посланное вторым процессом, могут быть получены первым процессом в любом порядке, так как у него параметр источника згс = ИР1 АИУ БОУЛСЕ, а сай = 1 совпадает с тегами обоих сообщений. Следующие две принимающие функции в первом процессе имеют соответственно параметры вгс = 2, Сан = ИР1 АИУ ТА6 и вгс = 2, сай = МР1 АИУ ТАС, т.е.

принимается два сообщения от процесса 2 с любым гегам. Вторая и третья передающие функции в процессе 2 с параметрами соответственно сап = 2 и Сай = 3 выполняются в указанной последовательности. Так вот, процесс 1 принцмает от процесса 2 вначале сообщение с сая = 2, затем сообщение с сап = 3, т. е. строго в той последовательности, в какой они были посланы, даже если первое сообщение задержалось в пути.

(Хотя каждая из этих принимающих функций в процессе 1 может принимать любое яз этих сообщений, т. к. у обеих саб = ИР1 АИУ ТАС.) Посылаемые сообщения не обгоняют друг друга и приходят в процесс назначения в той последовательности, в какой они были посланы. То же верно и для принимаемых сообщений. Блокированная принимающая функция принимает первое соответствующее ей по параметрам сообщение из списка поступивших сообщений. Для неблокированной принимающей функции (см.

п. 5.7) в списке а. РатЬ1о-РотГ взаимодействия Процесс 0 Процесс 1 Рис. ЬЛ. Порядок передачи и приема сообщений: вгс — источник, з — МР1ЯН'1' ТАЦ или МР1 АЫУ ЯОйНСЕ запросов на прием сообшений может быть одновременно несколько запросов, например, два последовательно полученных запроса. И имеется сообшение, которое может быть получено обоими запросами. Второй запрос не может быть удовлетворен прежде первого, даже если первый посланный в программе запрос задержался в пути. Эти требования гарантируют, что передача сообшений является детерминированной, если процессы — однопроцессные и групповой символ МР1 АМУ БООЕСЕ не используется в принимаемых функциях.

Некоторые другие функции МР1, типа МР1 САМСЕ1 или МР1 МА1ТАМУ, являются дополнительными источниками недетерминизма. В однопроцессном режиме обработка всех действий связи реализуется согласно порядку выполнения в программе. Ситуация другая, если режим выполнения многопоцпроцессный. Семантика выполнения подпроцесса не может определять относительный порядок между двумя действиями ~вязи, выполненными двумя различными подпроцессами. Действия логически одновременны, даже если каждый физически предшествует другому. В этом случае никакие ограничения порядка не применяются.

Два сообшения, посланные одновременнымп подпроцессами, могут быть получены в любом порядке. Точно так же, если два получающих действия, которые являются логически одновременными, получают два последовательно посланных сообшения, согласованных по параметрам с получающими функциями, то эти два сообшения принимаются в любом порядке.

Рассмотрим следуюший пример. Пример 5.8. Порядок взаимодействий не транзитивен. МР1 Совв гапК(савв, агапК); йй(гапК = = 0) ( МР1 Бенц(ЬцХ1, соцпс, МР1 Р|ОАТ, МР1 Бено(Ьц12, соцпс, МР1 Г1ОАТ, е1ве з1(гапК = = 1) ( МР1 Еесн(Ьц12, соцпс, МР1 РЕОАТ, МР1 Бено(Ьц12, соипс, МР1 РЬОАТ, е1ве з1(гапК = = 2) ( МР1 Меси(Ьит1, соцпс, МР1 ГЬОАТ, МР1 Еесч(Ьцт2, соцпс, МР1 Р|ОАТ, 2, саЕ, соппп); 1, саЕ, соппп); О, саЕ, сопка, Йвсасцв), 2, саЕ, сопка); МР1 АМУ БОУЕСЕ, ЪаЕ, соппп, квпавцв); мР1 Аму БОйцсет, саЕ, савв, йвсасцв); б4. Семантика блокированных функций Нулевой процесс посылает сообщение процессу 2 и затем процессу 1.

Процесс 1 получает сообщение от нулевого процесса, затем посылает сообщение процессу 2. Процесс 2 получает ява сообщения, т. к. воцгве = МР1 АМУ.БОУМСЕ. Два поступающих сообщения могут быть получены пропессом 2 в любом порядке, даже если процесс 1 послал ему сообщение после гого, как он получил второе сообщение, посланное нулевым процессом. Причина -задержки связи, которые могут быть. Таким образом, может встречаться несколько парадоксальный результат, иллюстрируемый на рис.

5.2. Процесс 0 Рис. 5.2. Порядок взаимодействий не транзитивеи 5.4.4. Прогресс Если пара соответствуюших друг другу по параметрам бевк и воцгве посылающей и получаюшей функций были начаты на двух процессах, то, по крайней мере, одно из зтих двух действий возвратит управление, независимо от других действий в системе. Для 5локированных и неблокированных функций посылающая функция завершится, даже если получаюшая функция не удовлетворена тетом полученного сообшения, т.е. сообшение не принимается.

Для неблокированных функций (см. и. 5.7) это же верно н для принимаюгпей $ункцин. Это требование накладывает ограничения на стратегии выполнения. Предположим, назример, что процесс выполняет две последовательных блокированных посылки сообшений. "ообщение, посланное первой функцией, буферизуется, и запускается вторая функция. Загем, если в другом процессе первой выполняет~я получающая функция, соответствующая ~торой посылающей функции (т.е. теги этих функций совпадают), второе посланное сообценне должно быть способно настигнуть первое буферизуемое сообщение.

Данная стратеия не выполняется для синхронных взаимодействий (см. и. 5.12). 1.4.5. Равводоступпость ЛР1 не дает никакой гарантии равнодоступности подпроцессов к сообшениям. Предполоким, что посылавший процесс отправляет сообщение. Возможно, что на принимаюшей :таране одновременно выполняются два подпроцесса, которые соответствуют этому по.ылаюшему и, кроме того, совпадают теги посланного сообщения н принимающих функ~ий, Сообщение будет принято первой выставившей запрос приемной функцией. В данном :лучае истинный получатель этого сообшения может и не получить его. Это же может ~ронзойти, если в нескольких подпроцессах принимающие функции используют групповые ~араметры ИР1 АМ'1' БОПЕСЕ и МР1 АМУ ТАЯ как их исходные аргументы, т.е.

посылаемые н ~ринимаемые сообщения могут приниматься не в нужных цодпроцессах. Правильная орга~изация работы подпроцессов — это ответственность программиста. Пример, поясняющий представленный выше материал, приведен в и. 9.3.1. 70 о. Рота«о-Рот«вэаиэ«одеветвиа 5.5. Объединенная функция передачи — приема данных МР1 ЯЕМОВЕСЧ(зеп«)Ьпт, зеп«)соцпс, зеп«!суре, безс, зеп«)сая, гесчЬЫ, гесчсоппс, гесчсуре, зоцгсе, гесчсаЕ, сошш, зсаспз) адрес посылаемого буфера количество, посылаемых элементов тип элементов в посылаемом буфере ранг (номер) процесса, которому осушествляется передача тег посылаемого сообшения адрес буфера пля приема данных максимальное количество принимаемых элементов тип принимаемых элементов ранг (номер) перелаюшего процесса тег принимаемых данных имя переключателя каналов (сошшппфсасог) статус полученного сообшения 1М зеп«)Ьц1 1М зеп«)соцпс 1М яеп«)суре 1М «)езс 1М зеп«(саЕ 30Т гесчЬпХ 1М гесчсоппс 1М гесчсуре 1М зопгсе 1М гесчСаЕ 1М сопвп )0Т зсаспз «пс МР1 Яепбгесч(чозб вяеп«!ЬцХ, «пс яеп«)соппс, МР1 Оасасуре зеп«)суре, йпс «)езс, йпс зеп«)саЕ, чозй *гесчЬп1, Тпс гесчсоппт„ МР1 ОаСаСуре гесчСуре, 1пС зопгсе, МР1 ОаСаСуре гесчСаб, МР1 Сошш сошш, МР1 БСаСцз взСаепз) )Р! ЯЕМОВЕСЧ(БЕМОВОР, ЯЕМОСООМТ, ЯЕМОТУРЕ, ОЕЯТ, ЯЕМОТАС, ВЕСЧВОР, ВЕСЧСООМТ, ВЕСЧТЧРЕ, ЯООВСЕ, ВЕСЧТАС, СОИМ, ЯТАТОБ, 1ЕВВОВ) «суре> БЕМОВЧР(в), ВЕСНВОР(в) 1МТЕОЕВ БЕМОСООМТ, БЕМОТУРЕ, ОЕЯТ, ЯЕМОТАС, ВЕСЧСООМТ, ВЕСЧТУРЕ 1МТЕСЕВ БООВСЕ, ВЕСЧ ТАС, СОММ, ЯТАТЧБ(МР1 ЯТАТОЯ Я12Е), 1ЕВВОВ МР1 ЯЕМОВЕСЧ выполняет блокированные посылку и получение данных.

Посылающее и юлучающее действия используют тот же самый переключатель каналов, но имеют различ«ые аргументы тегов. Посылаю«цийся буфер и буфер для приема не должны пересекаться «могут иметь различные д««и««ь«и типы данных. Следующая функция аналогична преды«ущей, но у нее посылаемый буфер совпадает с буфером для получения данных. Модель связи, используемая в последнем примере, встречается достаточно часто, поэтом) оправдано введение специальной функции, объединяющей в одном запросе посылаю«пее и получающее действия: посылку одного сообщения по назначению и получение другого сообщения из источника. Источник и назначение, возможно, те же самые.

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

Тип файла
DJVU-файл
Размер
5,85 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

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