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

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

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

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

Пример 5,3, Источник и приемник неправильно определяют соответствие типов. ИР1 Сова гапК(соппп, гацК); ь1(гапК == 0) МР1 Яепе((а, 10, МР1 РЬОАТ, 1, сая, соппп); п1зе11(гапК = = 1) МР1 Веси(Ь, 40, МР1 ВУТЕ, О, пай, сова, всапцв); Этот код ошибочен, так как источник и приемник не обеспечивают соответствия типов панн ых. Пример 5.4. Источник и приемник определяют связь без контроля типов значений. (Р1 Соппп гапК(соппп, гапК); ~Х(гапК == О) МР1 Бепб(а, 40, МР1 ВУТЕ, 1, саЕ, соппп); .1ве11(гапК = = 1) МР1 Веси(Ь, 60, МР1 ВУТЕ, О, пай, соппп, впатцв); )тот коп правилен, независимо от типа и размера а и Ь (если это не приводит за пределы )уферов). Сказанное в данной пункте о соответствии типов относится к базовым типам.

о. РогпЬГо-Рот! взаимодействия Однако если пользователь сконструировал свой тип с именем суре из базового типа, например, ИР1 1ИТ, то эти типы могут сочетаться в обменных функциях (см. п. 7.4.4). Некоторые компиляторы представляют символы в Гог1гап'е как структуры с длиной и указателем на фактический символ.

В такой среде ИР1 БЕИ0 или получающие запросы цолжны разыменовать указатель и достигнуть символа. 5.3.2. Преобразование данных Одна из целей МР1 — это поддержка параллельных вычислений в гетерогенных окружающих средах. Связь в гетерогенной окружающей среде может требовать преобразований данных. Здесь используется следующая терминология. Преобразование типов изменяет тип данных, например, округляя йоц51е (вещественный) к йпс (целый) числу. Преобразование представления изменяет двоичное представление значения данных в рамках одного и того же типа, например, изменяя значение байта или изменяя 32-разрядное число с плавающей запятой к 64-разрядному числу с плавающей запятой. МР1 коммуникации никогда не делают преобразования типов.

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

И~ключение, встречающееся в течение преобразования представления данных, приводит к эшибке в связи. Ошибка встречается или в посылающем действии, или получающем дей:твии, или в обоих. Если данные передавались без контроля типов (т. е. типа ИР1 НУТЕ), то двоичное пред=тавление байта, принятого приемником, идентично двоичному представлению байта, переданного источником. Эти значения байта одинаковые, независимо от того, выполняется пи источник и приемник в той же самой или в различных окружающих средах.

Здесь никакое преобразование представления данных не выполняется. Заметьте, что преобразование яредставления может встречаться, когда значения типа ИР1 СНАЯ переданы, например, от кодирования в ЕВСР1С (расширенного двоично-десятичного кода обмена информацией) до кодирования в АБСП. Никакие преобразования представления данных не нужны, когда МР1 программа выполчяется в однородной системе, где все процессы выполняются в той же самой окружающей :репе. Рассмотрим три предыдуших примера 5.2 — 5.4. Первая программа правильна, так как з и Ь являются вещественными массивами размера >= 1О. Если источник и приемник зыполняются в различных окружающих средах, то десять вещественных значений, которые язвлекаются из посылающегося буфера, будут преобразованы в вещественные числа на гчастке приемника прежде, чем опи будут записаны в буфере приема данных.

В то гремя как количество вещественных чисел (элементов), извлеченных из посылаюшегося 1уфера, равняется количеству вещественных чисел (элементов), записанных в буфере гриема, количество принятых байтов не равно количеству посылаемых байтов. Например, источник может использовать представление 4 байта и приемник представление 8 байтов зля вещественных чисел. Вторая программа ошибочна, и ее поведение неопределено. Третья программа правильна. Точно та же последовательность 40 байтов, которые гередавались из посылаюшегося буфера, будет записана буфере приема, даже если источник г приемник выполняются в различной окружающей среде.

Посланное сообщение имеет б5 б.е'. Семантика блокированных Яункций очно ту же длину (в байтах) и том же самом двоичном представлении, как полученное ;ообщение. Если а и Ь имеют различные типы или если они имеют тот же самый ип, но используются различные представления данных, то биты, записанные в буфере ~риема, могут кодировать значения, отличающиеся от значений, которые они кодировали 1 посылающемся буфере. Преобразование представления также применяется к оболочке сообщения.

Источник, ~азначение и тег — все целые числа, которые преобразовываются. МР1 не поддерживает связи межъязыкового общения. Поведение программы неопреде~ено, если сообщения посланы процессом на С и получены процессом на Рог!гав'е или ~аоборот. ьЗ.З. Некоторые замечания к преобразованию данных ЛР! не обеспечивает связь межъязыкового общения, потому что не имеется никаких :огласованных стандартов для соответствия между типами на С и типами рог!сап'а. ледовательно, МР1 приложения, которые смешивают языки, не будут переносимы.

Хотя МР1 не определяет интерфейсы между С и Рог$гап'ом, но следующие версии, как >жидается, обеспечат такие интерфейсы, чтобы программы Гогггап'а вызывали параллель~ые библиотеки, написанные на С, или связывались с серверами, управляющимися кодами ~а С (и наоборот). 1.4. Семантика блокированных функций )тот пункт описывает главные свойства посылающей и получающей функции, предста- ~ленные в п.

5.2. 1.4.1. Буферизация и безопасность 'ассмотренная версия блокированной функции приема данных ИР1 КЕСЧ является стан1артной. Она возвращает управление только после того, как буфер приема данных получит :ообщен не, Рассмотренная версия блокированной передающей функции ИР1.ЗЕИВ также является :тандартной. Программа не возвращает управление, пока данные сообщения и их оболочка ~е будут безопасно записаны в промежуточный буфер и источник будет свободен к доступу ~ посылающийся буфер.

Блокированная передача могла бы завершаться, как только сообгцение буферизовалось, враже если нет соответствующего получателя. Буферизация сообщения "развязывает" посы~аюшее и получающее действия. С другой стороны, буферизация сообщения может быть 1орога, поскольку это влечет за собой дополнительное копирование "память — памятно и требуется распределение памяти для буферов. МР! предлагает выбор разных версий бло~ярованной связи (буферизированный, синхронный, по готовности), которые допускают, ~тобы пользователи управляли выбором протокола связи. Способы описаны в п.

5.12. В хорошо построенных программах применение блокированной передачи приводит к юлезному эффекту регулятора. Рассмотрите случай, когда производитель неоднократно производит новые значения и посылает их потребителю. Лопустите, что производитель ~роизводит новые значения быстрее, чем потребитель может потреблять их. Если исполь~уются блокированная посылка, то производитель будет автоматически регулироваться, югда пространство буфера недоступно.

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

Ротко-Рогп$ взаимодействия МР1 не предписывает безопасный тип программирования. Пользователи свободны в выборе разных типов обменных функций. Следующие примеры иллюстрируют безопасные фрагменты программ. Пример 5.5. Обмен сообщениями. МР1 Сошш гапК(сошш, йгапК); Тт(гапК == 0) ( МР1 Яепб(вепбЬиТ, соипс, МР1 ГНАТ, 1, МР1 Весч(гесчЬи1, соипс, МР1 ГьОАТ, 1, е1ве зТ(гапК == 1) ( МР1 Весч(гесчЬи~, соипс, МР1 Г1.ПАТ, О, МР1 Яепб(вепбЬи1, соипс, МР1 ГЕСАТ, О, ) сап, сошш); саб, сошш, йвсасив); саб, сошш, йвсаииз); саб, сошш); Эта программа безопасна и будет всегда завершаться правильно, даже если никакое пространство буфера не доступно для данных. Пример б,б.

Попытка обмена сообщениями. МР1 Сопяп гапК(сошш, йгапК); 11(гапК == О) ( МР1 Кесч(гесчЪи1, соипс, МР1 ГЕОАТ, 1, МР1 Яепб(вепбЬиХ, соипс, МР1 ГЕРАТ, 1, е1ве Н(гапК = = 1) ( МР1 йесч(гесчЬиТ, сопли, МР1 ГНАТ, О, МР1 Яепб(вепбЬи1, соипс, МР1 ГьОАТ, О, саб, сошш, взсасив); сап, сошш); саб, сошш, взсасив); сай, сошш); Получающая функция нулевого процесса должна вначале принять данные от первого процесса, затем уже послать ему данные и может завершиться, только если первый процесс выполнит посылку данных нулевому.

Аналогично, первый процесс вначале ждет данных от нулевого и только после этого пошлет ему данные. Эта программа неправильная и будет находиться в состоянии беаб!осК. Пример 5.7. Обмен, который полагается на буферизацию. МР1 Сошш гапК(сошш, йгапК); Н(гапК == 0) С МР1 Яепб(зепбЬиТ, соипс, МР1 ГЬОАТ, 1, сап, МР1 йесч(гесчЬиХ, соипс, МР1 ГЮАТ, 1, пай, е1ве Ат(гапК = = 1) ( МР1 Яепб(зепбЬиХ, сопли, МР1 ГНАТ, О, саи, МР1 йесч(гесчЬиТ, соипс, МР1 ГЕОАТ, О, пай, сошш); сошш, ввсасиз); сошш); сошш, йвсасив); Сообщение, посланное каждым процессом, должно копироваться где-нибудь, чтобы посылающие функции завершились и запустились получающие функции.

Лля завершения программы необходимо что бы, по крайней мере, одно из двух сообщений буферизовалось. Таким образом, эта программа преуспеет, только если система связи будет буфернзировать в своем внутреннем буфере, иначе зайдет в состояние беаб!осК. Успех ее будет зависеть от количества пространства буфера, доступного в частном выполнении.

С небольшим массивом данных зта программа выполнится правильно, но она ненадежна. 5.4. Се.кантика блокироааннмх функцай Безопасность — очень важный момент в проекте программ передачи сообщений. МР1 предлагает много вариантов, которые помогают в написании безопасных программ, в дополнение к методам, которые были описаны. Неблокированная передачи сообщений, как описано в п. 5.7, может использоваться, чтобы избежать потребности в буферизации посылаемых сообщений. Это устраняет блокировки из-за недостатка пространства буфера я потенциально улучшает выполнение, позволяя избегать непроизводительных затрат распределения буферов и копирования сообщений в буфера.

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

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

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

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