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

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

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

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

прием данных от любой группы пропессов не существует. Аргумент яопгсе, если он отличен от МР1 АМУ ЯООВСЕ, определен как ранг (целочисленный номер) внутри группы процессов, связанных переключателем каналов определенным как Тпсгасоииппйсасог. диапазон значений для аргумента вопгсе — (О,...,ц-1) (ИР1 АМУ ЯООВСЕ), где и — число процессов в этой группе.

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

На С статус полученных данных представляется структурой типа МР1 Бсаспя, которая содержит три поля с именами МР1 ЯООВСЕ, МР1 ТАС и МР1 ЕВВОВ (структура может содержать дополнительные поля). Таким образом, поля МР1 БООВСЕ, МР1 ТАС и МР1 ЕВЮВ содержат соответственно источник, тег и код ошибки полученного сообщения.

На Рогсгап'е стаепус — это массив целых чисел длины МР1ЯТАТУЯ Я12Е. Трн константы МР1 БООВСЕ, МР1 ТАС и МР1 ЕВЮ — индексы входов, которые хранят источник, тег и поле ошибки. Таким образом, константы МР1.500ВСЕ, МР1 ТАС и МР1 ЕВВОВ содержат соответственно источник, тег и код ошибки полученного сообщения. Источник и/или тег полученного сообщения не могут быть известны, если использовались значения групповых/ого символов/а в получающей функции. Также, если многократные запросы закончены единственной МР1 функцией (см.

п. 5.9), различный код ошибки может быть возвращен для каждого запроса. (Обычно код ошибки возвращается как значение функции на языке С и как значение аргумента 1ЕВВОВ на Рогкгап'е.) Запрос для получения данных (МР1.ВЕСН) не определяет размер поступающего сообщения, а только его верхнюю границу. Статус имеет также аргумент, через который возвращается информация относительно длины полученного сообщения. Однако эта информация непосредственно не доступна как поле переменной статуса, а доступна с помощью запроса к функции МР1 ОЕТ СООМТ, ЧР! ОЕТ СООМТ(ясаспя, басасуре, соппс) 1М ясаспя статус принятых данных 1М йасасуре тип принятых элементов )0Т соппс количество принятых элементов 1пс мР1 Сес соппс(МР! Бсаспя «ясасця, мР1 Оасасуре е!асасуре, Тпс есоппс) 1Р! СЕТ СООМТ(ЯТАТОЯ, ОАТАТ1'РЕ, СООМТ, 1ЕВЮВ) 1МТЕСЕВ ЯТАТОЯ(МР1 БТАТОЯ Я!ЕЕ), 0АТАТУРЕ, СОУМТ, 1ЕВЮВ МР! ОЕТ СООМТ берет как входной параметр ясаспя соответствующего МР1ВЕСЧ и вычисляет число полученных элементов.

Количество полученных элементов возвращено в переменной соппс. Аргумент е)асасуре должен быть таким же, как и аргумент в получаощей функции МР1 ВЕСУ, к статусу которой осуществляется доступ. (В п. 5.4, поясняется, ~то МР1 ОЕТ СООМТ может возвращать, в некоторых случаях, значение МР1ЛМОЕР1МЕО.) о. Ротного-Роем взаимодействия 5.2.9. Некоторые замечания к приему данных Заметьте, что есть асимметрия между посылающей и получающей функцией. Получающая функция может принимать сообщения из произвольного источника, но посылающая функция должна определять уникальный приемник. Это соответствует "'рпяп" механизму связи, где передача данных произведена датчиком, а не "рп11" механизм, где передача данных произведена приемником.

Источник, равный назначению, допускается, т.е. процесс может посылать сообщение =ебе. Однако для такой связи, чтобы правильно выполнилась операция, требуется, чтобы "ообщение буферизовалось системой между завершением посылающего запроса и началом получающего запроса. Количество пространства буфера зависимо от выполнения. Следовательно, такая передача ненадежна и не переносима. Посылка сообщения самому себе в "тандартном режиме блокированными посылающей и получающей функциями может приводить к с1еа<Поск'у.

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

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

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

Теги применяются, чтобы различать закеты сообщений внутри одного модуля или библиотеки, Часто параметры источника или тега достаточно согласовать, чтобы посылка и получезие данных были правильными. Однако предпочтительно избегать использования группозых символов всякий раз, когда возможно. Более узкие критерии соответствия параметров зриводят к более надежному коду, с меньшим количеством возможностей несовпадения :ообшения или недетерминированного цовецения.

Более узкие критерии соответствия параметров — это шаг к улучшенному выполнению программы. $.3. Соответствие типов и преобразование данных $.3.1, Соответствие типов передача сообщения состоит из следующих трех последовательных стадий: 1. Данные копируются вне посылающегося буфера, и сообщение собирается в промежуточный буфер. 2. Сообщение передается от источника на приемник. 3. Данные копируются из поступившего сообщения в буфер для приема данных. оответствие типов соблюдается на каждой из этих стадий. Тип каждой переменной ~ буфере датчиков согласовывается с типом, указанным в посылающей функции. Тип, 5.3. Соответствие тинов и преобразование данных указанный в посылающей функции, согласовывается с типом, указанным в получающей функции.

И, наконец, тип каждой получаемой переменной согласовывается с типом буфера, указанным в получаемой функции. Лля точного соответствия типов учитываются два момента: соответствие типов переменных базового языка типам, указанными в функциях связи и соответствии типов между источником и приемником. Типы в посылающей и получающей функциях соответствуют, если онн обе определяют идентичные имена типа, т.е. МР1 1ИТ соответствует МР1 1МТ, МР1 000ВЕŠ— МР1 ООВВЕЕ и т.д.

Одно исключение нз этого правила то, что тип МР1 РАСКЕР может согласовывать любой другой тнп (см. и. 7.8). Тип переменной соответствует типу, указанному в функции связи, если имя басапуре, используемое в функции, соответствует основному типу переменной программы пользователя. Например, параметр МР1 1МТ в функции соответствует переменной на языке С типа 1пп (целое). Таблицы, показывающие это соответствие для Гог1гап'а и С, представлены в и. 5.2.2.

Имеются два исключения нз этого правила: вход с типом МР1 ВУТЕ н МР1 РАСКЕВ, которые могут использоваться, чтобы согласовывать любой байт хранения независимо. от типа переменной, которая содержит этот байт. Тип МР1 ВУТЕ предписывает, чтобы передали двоичное значение байта без изменения. Тип МР1 РАСКЕО используется, чтобы послать данные, которые были явно упакованы запросами к МР1 РАСК, нлн получить данные, которые будут явно распакованы запросами к МР1ЛМРАСК (см.

п. 7.8). (В данном случае не нужно путать согласованность имен типов и согласованность двоичных значении данных, т.е. МР1 ВУТЕ в передающей функции должен быть согласован с МР1 ВУТЕ в принимающей функции, МР1 ВУТЕ не может быть согласован, например, с МР1 1ИТ). Следующие примеры поясняют соответствие типов. Пример 5,2. Источник и приемник правильно определяют соответствие типов. МР1 Соппп гапК(соппп, гапК); 11(гапК == 0) МР1 Бепб(а, 10, МР1 РЕОАТ, 1, Саб, сопев); в1ве11(гапК == 1) МР1 Веси(Ь, 15, МР1 ГНАТ, О, са8, соппп, всаспв); Этот код правилен, если а и Ь вЂ” вещественные массивы размера >= 10.

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

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

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

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