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

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

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

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

Заметьте разность между МР1 ЯЕСЧ и МР1ЛМРАСК: в МР1 ЯЕСЧ, аргумент сопле определяет максимальное число компонентов, которые могут быть получены. В МР1ЛМРАСК, аргумент соппс определяет фактическое число компонентов, которые распакованы; причина в том, что для приема, поступающий размер сообщения определяет число компонентов, которые будут получены. В МР1ЛМРАСК пользователь определяет, сколько компонентов он хочет распаковать, так как можно распаковать только часть сообщения. Отдельные буфера связи могут быть последовательно упакованы в одну упаковочную единицу. Это производится отдельными, последовательными связанными запросами х МР! РАСК, где первый запрос имеет ровйс1оп = 0 и каждый следующий запрос имеет значение ров!с!оп, которое было результатом предыдущего запроса.

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

Сообщение может быть получено с любым типом данных, который соответ. ствует посылаемому типу данных. Пример Т.25. Следующие две программы генерируют идентичные сообщения. Использу- ются производные типы данных: 1пс сЬаг с[100); 1пс е)1вр[23; 1пъ Ь1оск1еп[21 = (1, 1001 МР1 Оагасуре суре[23 = (МР1 1МТ, МР1 СНАМ; МР1 Оасасуре Туре; /в Создание типа данных в/ МР1 Абе)геев(й1, йе)1вр[Ол); МР1 АеЫгевв(с, йе)хвр[1л); МР1 Туре вггпсп(2, Ь1ос)с!еп, 41вр, Суре, йТуре); МР1 Туре сопапс(йТуре); /в Передача в/ МР1 Бенд(МР1 ВОТТОМ, 1, Туре, 1, О, МР1 СОММ МОВЫ); Используется упаковка данных; 1пг сЬаг с[1003; сЬаг Ьцггег[1101; 1пс ров!с!оп = 0; /в упаковка в/ 7.8.

Упаковка и Распаковка данных 155 НР1 РасК(й1, 1, МР1 1МТ, Ьиттег, 110,йроз1с1оп, МР1 СОНМ НОВ!.О); НР1 Расй(с, 100, МР1 СНАВ, Ьиттег, 110; йров1С1оп, МР1 СОММ НОТР); /* Передача »/ МР1 Яепб(Ьиттег, роз1С1оп, МР1 РАСКЕО, 1, О, МР! СОНМ НОВХ.О); Любое сообщение может быть получено в ро)п$-Фо-ро!пС или коллективной связи, используя тип МР1 РАСКЕП. Такое сообщение может быть затем распаковано запросами к НР! ПМРАСК. Сообщение может быть распаковано отдельными последовательными запросами к МР! ПМРАСК, где первый вызов использует роз1с1оп = 0 и каждый последующий запрос использует значение роз1с1оп, которое стало после предыдущего запроса и с теми же самыми значениями для 1пЬпХ, гпз1зе и савв.

Пример 7.26. Любая из следующих двух программ может использоваться для получения сообщения, представленного примером 7,25. Результат будет идентичен. Используются производные типы данных: 1ПС 1; сйаг с Г1003; МР1 зсатцз зъатцз; 1пп б1зр М; 1пс Ь1осК1еп(23 = (1, 100); НР1 Васасуре суре(2~ = (МР1 1НТ, МР1 СНАВ); НРТ Оасасуре Туре; /» Создание типа данных »/ НР1 Аббгезз(й1, йбтзр(,О)); НР1 АсЫгезз(с, йб1зр(.13); НР1 Туре зсгпсс(2, Ь1осК1еп, 01зр, суре, йТуре); МР1 Туре совв1с(йТуре); /» Прием »/ МР1 Весч(МР! ЯОТТОМ, 1, Туре, О, О, МР1 СОИМ НОВЫ, йзсасиз); Используется распаковка данных: 1ПС 1; сЬаг с (1003; МР1 Ясаками зсаспз; сЬаг Ьиттег [1103; 1ПС роз1гп1оп = О; /» Прием»/ МР1 Весч(Ьиттег, 110, МР1 РАСКЕО, 1, О, МР1 СОНМ НОВ(.О, йзпаспз); /» Распаковка »/ НР1 ПпРасК(Ьиттег, 110, йРоз1с1оп, й1, 1, МР1 1МТ, МР1 СОММ НОВЫ); МР1„0прасК(Ьпттег, 110, йроз1С1оп, с, 100, МР1.СНАВ, МР1 СОММ НОВЫ); Пакет может содержать в дополнение к данным метаданные.

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

Запрос МР1 РАСКБ1ЕЕ возвращает верхнюю границу, а не точную границу, начиная с точного количества мест, необходимых для пакета, сообщение может зависеть от области связи (см. гл. 6) (например, первое сообщение, упакованное в пакете, может содержать дополнительные метаданные). Пример 7,27.

Возвращаемся к проблеме примера 7.15. Нулевой процесс посылает первому процессу сообщение, содержащее все частицы нулевого класса. Процесс 1 получает и хранит эти структуры в прилегающих полях. Нулевой процесс использует вызов к МР1 РАСК, чтобы накапливать частицы класса ноль, в то время как процесс 1 использует регулярный приеи. Бсгпсс РагСвсгисС сЬаг с1авв, /х класс частицы х/ боцЫе б Гб3, /х координаты частицы х/ сйаг ЬГ73, /х некоторая дополнительная инферналия х/ всгпсС РагСвсгцсС рагсдс1е110003, дпС вдзе, ровдсдоп, вугапК, дпС соцпС, /» количество частиц нулевого класса х/ сЬаг »Ьцггег, /* упаковочный буфер */ МР1 Бсаспв всаспз, /х Испопьэуеные переменные в соэданнон типе для частиц х/ МР1 Оасасуре Рагсдс1еСуре, МР1 0асасуре суреГЗ) = (МР1 СНАЙ, МР1 000ВОЕ, МР1 СНАсО, дпС ЫосК1епГЗ3 = (1, б, 7)-, МР1 Адис ссдвр(33 = (О, здкео1(боцЫе), 7»вдкеод(с1оцЫе)~, /х Определение типа для одной частицы »/ МР1 Туре вСгисС(З, ЫосК1еп, бдвр, Суре, йРагсдс1есуре), МР1 Туре соввдс(йРагсдс1есуре), МР1 Салоп гапК(савв, йвугапК), дХ(вугапК == 0) /» Передача сообшения,которое содержит класс нулевых частиц х/ /х Нахожление упаковочного буфера х/ МР1 РасК вдке(1000, Рагсдс1есуре, савв, йздхе), Ьпггег = (сЬагх)ва11ос(вдзе), /х Упаковка нулевого класса частиц х/ роздсдоп = О, гог(днО, д<1000, д++) дг(рагсдс1еьд1 с1азз == 0) мр1 Раск(йрагсдс1еЫ , 1,Рагсдс1есуре,ьцгтег,вдзе,йровдсдоп,савв), /х Передача х/ МР1 Бепсд(Ьц11ег, роздсдоп, МР1 РАСКЕ0, 1, О, совв), е1зе 7.8, Упаковка к раскиковка данныи 157 ( гй(шугапК == 1) /» Прием нулевого класса частиц в массив частиц »/ МР1 Песч(рагсйс1е, 1000, Рагсзс1есуре, О, О, сова, авсасив); ) Пример 7.28.

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

Или можно использовать приблизительную оценку.) нсгисс Рагснсгисс ( сЬаг с1авв; /» класс частицы »/ боиЫе 6[61; /» коорпинаты частицы »/ сЬаг Ь [73; /» некоторая дополнительная информация »/ ); всгисс Рагсвсгисс рагсйс1е[1000); 1пт, 1, пухе, шугапК; 1пс ровйтзоп = 0; МР1 Биаиив всасив; сЬаг Ьитгег[ВОРБ12Е); /» упаковочный/распаковочный буфер */ /* Используемые переменные созданного типа данных пля частиц »/ МР1 Оасасуре Ратсйс1есуре; МР1 Оасасуре суре[21 = (МР1 ОООВ1Е, МР1 СНАМ); 1пс ЫосК1еп[23 = (б,7); МР1 А1пи 61вр[23 = (О, б»вгвео1(боиЫе)); /» Определение типа данных »/ МР1 Туре всгисп(2, ЫосК1еп, б1ер, суре, кРагсйс1есуре); МР1 Туре сошшзс(ФРагсйс1есуре); МР1 Соппп гапК(МР1 СОММ МОМ1.0, кшугапК); 11(шутапК == О) /» Передача сообшения, которое состоит из нулевого класса частиц */ /» Упаковка нулевого класса частиц и их индексов »/ Хог(1 = 0; 1 < 1000; 1++) 11(ратсус1е Ы .

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

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

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

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