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

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

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

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

7.3.8. Структурный строитель типов данных втиОСт МР1 ТУРЕ БТЕВСТ(сопит, аггау о1 ЫосК?епйгйз, аггау о1 ()1зр?асешептз, аггау от сурен, пенсуре) количество блоков количество элементов в каждан блоке смешения каждого блока, измеряемые в байтах тины элементов в каждом блоке новый тип данных 1И соппс 1М аггау оТ ЫосК1епйкйз 1М агтау от 6?зр1асешепсз 1М аггау от курев ООТ пеысуре 1пС МР1 Туре зггпсг(1пС сопит, 1пг еаггау оу Ыосй?епЕСйз, МР1 Агпс еагтау„от (?1зр1асешепсз,МР? 0асасуре еаггау от сурен, МР1 Оасасуре епеысуре) МР1 ТУРЕ ЯТВВСТ(СООИТ, АНВАУ ОР В?.ОСК?.ЕИСТНБ, АВЕАУ ОГ 0?БР?.АСЕМЕМТЯ, АВВАУ ОГ ТУРЕЯ, МЕМТУРЕ, ?ЕВВОВ) ?МТЕОЕВ СООМТ, АВВАУ ОР В?.ОСК?.ЕМОТНБ(е), АВВАУ„ОГ 0?БРьАСЕМЕМТБ(е) 1ИТЕСЕВ АВВАУ ОР ТУРЕБ(е), МЕМТУРЕ, ?ЕВВОВ МР1 ТУРЕ БТВОСТ вЂ” наиболее общий строитель тина.

Он обобщает МР1 ТУРЕ Н?МВЕХМ) и допускает, чтобы каждый блок состоял из дублирований различного типа данных. Ди этого имеется массив для описания типов элементов для каждого блока. Действие Бстась строителя представлено схематично на рис. 7.9. Пример 7.12. Здесь используются те же самые аргументы функции МР1 ТУРЕ 1МОЕХЕО, как в примере 7.11. Таким образом, о1()суре имеет отображение типа ((е?опЫе, 0),(сйаг, 8)] с диапазоном 16, В=(3,1) и 0=(4,0). Запрос к МР1 ТУРЕ Н?МВЕХЕ0(2, В,0, о1бсуре,пеысуре) возвращает следуюц?ее отображение типа: уз'. Строители типов 143 о1о»уре соип» 3, ЫосХ1ецпоь (2, 3, 4), Н(вр1есеиеи» (О, 7, 16) цеисуре Рис.

7.9. Построение типа данных функцией строителя типов МР1 ТУРЕ ЯТВОСТ Пример 7.13. Лопустим, ъуре1 имеет отображение типа ((с(опЫе, О), (сЬаг,8) ) с диа- ппзоном 16. Лопустим, В=(2,1,3), 0=(0,16,26) и Т=(МР1 р1ОАТ,суре1,МР1 СНАМ). Тогда вызов МР1 ТУРЕ ЯТВОСТ(3, В, О,Т, пенсуре) построит новый тип с отображением: ((11оас, О), (11оас,4), (с(оцЫе, 16), (сЬаг,24), (сЬаг,26), (сЬаг,27), (сЬэг,28)) ((суреоО, с(з.зроО+ 0[0]),.-, (суреопо, с(ззропо+ 0[0]), -, (СуреоО, с(звроО+ 0[О]+ (В[0] — 1) «ехо), ..., (Суреопо, с(ззропо+ 0[О]+ (В[0] — 1):» ехо), ".

(суре, 10,()тврс (О+0[с — 1]),...,(курос (пс ( — 1,((ззрс (п, 1 — 1+ 0[с — 1]),..., (СУРЕс 10,((тзРс 10+0[С вЂ” 1]+(В[С вЂ” 1] — 1) *ЕХс 1),..., (СУРЕс (пс 1 — 1,с(звРс (пс ) — 1+ 0[с — 1]+ (В[с — 1] — 1) «ехс 1)). Запрос к МР1 ТУРЕ Н1МОЕХЕО(соппс, В, О, о1()суре, центури) эквивалентен запросу к иР1 туре ЯтБОст(соцпс, В, О, т, пенсуре), где каждый элемент в т равен о16суре. Пример 7.14. Посылка массива структур.

Ипгпсс Рагсзсгпсс сЬаг с1авз, ооцЫе с)(63, сЬаг Ьс73, ппгпсс Рагсвсгпсс рагсзс1е(10003, )пс з, с(евс, галй, ИР1 Соаа сова, (» Построение типа данных, опнсываюших структуру «/ ИР1 Оасасуре Рагсзс1есуре, ИР1 Оатапуре Суре(3) = (МР1 СНАМ, МР1 ПСОВОЕ, МР1 СНАМ), )пс ЫосК1еп(3) = (1,6,7), ИР1 Азпп с(звр(3) = (О, ззхеоХ(боцЫе), 7«взхео1(с(оцЫе)), ИР1 Туре всгцсс(3, ЫосК1еп, оъвр, суре, вРагсзс1есуре), ИР1 Туре соаатс(йрагстс1есуре), /» Послать массив «/ ИР1 Яеп(1(рагсзс1е, 1000, Рагстс1есуре, йенс, саЕ, соппп), /« класс частицы «/ /« координаты частицы «/ /« некоторая другая информация «/ Здесь две копии МР1 Р1ОАТ имеют смещение О, далее одна копия суре1 имеет смешение 16, три копии МР1 СНАМ имеют смешение 26.

(Здесь предполагается, что 41оас занимает петыре байта.) Вообще, допустим, Т есть массив аргументов аггау оУ курев, где Т[з3 — заголовок П гурЕаарп оо ((СУРЕ(0,ОЗзр,О), ...,(СурЕ,П, (,С(тзр,лп З)) С дИаПаЗОНОМ ЕХЗ. ЛОПуСтИМ, И есть аргумент аггау ог ЫосК1епйсЬ и 0 есть аргумент аггау ой с(ззр1асеаепсз. Ло-. пустим, С есть аргумент соцпп. Тогда построенный тип данных имеет отображение с с-1 В[з] «и элементами: »оо 144 У Опуеде»лемме аохьаоеатиелем шизы данных а уаааоеаа даинмх /» тип данных, описывавший все частицы »/ /» с нулевым классом (должен быть »/ /* повторно вычислен, если классы изменены) »/ МР1 Азпс »хбззр, п~ »хЫосК1еп, МР1 Туре зпгисп(3, ЫосК1еп, бззр, Суре, ФРагпзс1епуре), МР1 Соппп гап1с(соппп, йшугапК), з1(шугапК == 0) ( /» Передача сообшения, состояшее из всех частиц нулевого класса »/ /» Нахождение типов данных структуры для создаваемых типов данных »/ мР1 туре ехсепс(мр1 Азпс, йззгеазпс), хбтзр = (МР1 Азпс»)ва11ос(1000»ззхеатпс), хЫосК1еп = (зпс»)ша11ос(1000»зъяеоХ(дпс)), /» Вычисление смешений частип нулевого класса »/ ) =о, аког(т=О, т<1000, т++) зХ(рагсзс1еЫ с1азз =0) ( гбтзр[)) хЫосК1еп[)1 = 1, д++, /» Создание типа данных дпя частиц нулевого класса »/ МР1 Туре гпбехеб(), хЫосК1еп, кбтзр, Рагстс1есуре, йЕрагсзс1ез), МР1 Туре сошшзс(а2рагстс1ез), /» Передача »/ МР1 Бепб(рагстс1е, 1, Ерагсзс1ез, 1, 0„ сопи), е1зе ( т1(шугапК==1) /» Прием частиц нулевого класса в поле памяти »/ МР1 Несу(рагпзс1е, 1000, Рагсзс1епуре„ О, О, соппп, йзпаппз), Массив бззр был инициализирован в предположении, что боцЫе является выравненным двойным словом.

Если боиЫе'з являются единственным выровненным словом, то бзпр был инициализирован к (О, ззхеоХ (зпс), зткео1(~пс)+б»зтяеоХ(боиЫе) ). В примере 7 21, показывается, как избежать этой зависимости от машины. Пример 7,15. Большой комплексный пример использует тот же самый массив структур, как в примере 7.14: нулевой процесс посылает сообщение, которое состоит из всех частиц нулевого класса. Процесс 1 получает эти частицы в смежных полях. Ясгисс Рагсзсгцсс ( спаг с1азз, /» класс частицы »/ бопЫе 4[61, /* координаты частицы »/ спаг Ь [73, /» некоторая дополнительная информация »/ зсгпсс Рагтзсгпсс рагсзс1е[10003, зпс шугапК, МР1 Ясатпз зсаспз, МР1 Пасасуре Рагсзс1есуре, МР1 Пасасуре суре[3] = (МР1 СНАМ, МР1 ПСОВОЕ, МР1 СНАП), гпс ЫосК1еп[З) = (1,6,7), МР1 Атпс бтзр[3) = (О, згнео1(бопЫе), 7»згнео1(бопЫе)), згжеатпс, зпс Ьазе, МР1 Расасуре Ерагстс1ез, 7.4.

Использование производньье пьипов данные 145 Пример 7.16. Оптимизация для последнего примера: лучше, когда заголовок каждой частицы нулевого класса установлен как отдельный блок, это более эффективно для вычислений самых больших последовательных блоков частиц нулевого класса и использования этих блоков в запросе к МР1 ТУРЕ 1МОЕХЕО. Изменение цикла, который вычисляет нЫосК и и41вр, показано ниже. )=0; 1ог(1 = 0; 1 < 1000; 1++) Н(рагстс1еЫ .с1аее = = О) ( Хог(К = 1+1; (К < 1000)йй(рагС1с1еГЯ.с1авв == О); К++); г41вр()3 = т; нЫосК1епГЯ = К-1; )++, = 1с; ) ИР1 Туре тпоехео(), нЫосК1еп, нбйвр, Рагсйс1есуре, КЕрагсйс1ев); 7.4.

Использование производных типов данных 7,4.1. Передать тип В данном случае производный тип данных передается операционной системе, а не каким-то пользовательским процессам. Производный тип данных должен быть передан прежде, чем он будет использоваться при обмене данными. Переданный 4асасуре может продолжать использоваться как аргумент входа в строителях типов (так, чтобы другой 4аСасурев мог быть получен из переданного баСаСуре). Примитивный тип данных передавать не нужно. МР1 ТУРЕ СОММ1Т(4асасуре) 1МООТ басасуре тип ланных, который передается в ОС 1пс МР1 Туре соиа1с(МР1 Оасасуре *басасуре) МР1 ТУРЕ СОММ1Т(ОАТАТУРЕ, 1ЕКЮК) 1МТЕСЕК ОАТАТУРЕ, 1ЕКЮК МР1 ТУРЕ СОММ1Т передает производный тип данных басасуре в ОС.

Перецача не подразумевает, что 4асасуре привязан к текушему содержанию буфера связи. После того, как басасуре был передан, он может неоднократно повторно использоваться, чтобы идентифипировать данные. 7.4.2. Освобождение Объект баСаСуре освобождается запросом к МР1 ТУРЕ ГКЕЕ. МР1 ТУРЕ РКЕЕ(даСаСуре) 1МООТ 4асасуре тип данных, который освобождается 1пс мр1 туре атее(мр1 Оасасуре вбасасуре) МР1 ТУРЕ ЖОКЕЕ(ОАТАТУРЕ, 1ЕКЮК) 1МТЕСЕК ОАТАТУРЕ, 1ЕККОК МР1 ТУРЕ ГКЕЕ регистрирует объект типа данных, связанный с басасуре для оснобождения и устанавливает басасуре к МР1 ОАТАТУРЕ МОЕЬ, Любая связь, которая в это время 146 7.

Определяемые пользователем типы донных и опокоеко данных использует этот басасуре, завершится обычно. Производные типы данных, которые были определены из освобожденного типа данных не повреждаются. Пример 7.17. Следующий фрагмент программы дает . пример использования МР1 ТУРЕ СОММ1Т и МР1 ТУРЕ ГКЕЕ. 1пс суре1, суре2; МР1 Туре сопсййпопв(5, МР1 РРОАТ, йсуре1); /ь созлание объекта нового типа ь/ МР1 Туре соввйс(йсуре1) /ь новый суре1 может быть использован ь/ /е лля обненов ланныии ь/ /ь суре2 ножет быть использован лля обменов ланныии ь/ МР1 Туре чесуог(3, 5, 4, МР1 РЕОАТ, йсуре1) /ь созлается объект нового типа ь/ МР1 Туре соввгс(йсуре1) /ь новый суре1 может использоваться лля обиенов ь/ МР1 Туре аггее(йсуре2) /ь освобожление типа ь/ Суре2 = Суре1 /ь суре2 может использоваться дпя обменов */ МР1 Туре аггее(йсуре2) /ь суре1 и суре2 не действительны; суре2 имеет величинуь/ /ь МР1 РАТАТУРЕ МОРА и суре1 неопределен ь/ 7.4.3.

Соотношение для количества элементов Функция МР1.5епб(Ьпу, соипс,басасуре,, ), где сеанс>1, интерпретируется, как будто запрос передаст новый тип данных, который является сочленением соппс копий.басасуре. Таким образом, МР1.5епб (Ьп1, соппс, басасуре, бевс, сая, сопки) эквивалентна вызовам: МР1 Туре сопс1бпопв(соппс, басасуре, йпенсуре) МР1 Туре соввйс(йпенсуре) МР1 Бепб(ЬпХ, 1, пеьгсуре, бевс, сая, совв).

Подобные утверждения верны ко всем другим функциям связи, которые имеют аргументы соппс и басасуре. 7.4.4. Соответствие типов Предположим, что посылающая функция МР1 Яепб(ЬпХ,соппс,басасуре,бевс,сая,совв) выполнена, где басасуре имеет отображение типа ЦСурЕО, б1ВРО), ..., (СурЕ„Ы б1ерп 1) 1, с диапазоном ехсепс. Функция посылает п*соппс элементов, где элемент (1,)) записан по адресу аббг;б — ЬиХ + ехсепс * 1 + бйвр. и имеет тип суре) для анО, ,соипс-1 и 1пО,..., и-1.

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

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

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

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

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