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

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

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

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

Соответствующий тип не зависит от других аспектов определения басасуре, типа смещений (расположение в памяти) или промежуточных типов, используемых, чтобы определить басасурев. Лля посылки басасуре может определяться с накладывающимися элементами. Эта неверно для получения.

Если басасуре, используемый в принимающей функции, определяет накладывающиеся элементы, то запрос ошибочен. 7.ч'. Использование производных типов данных 147 Пример 7.18. Этот пример показывает, что соответствующий тип определен только в терминах примитивных типов, которые составляют производный тип. МР1 Туре сопсзБиоив(2, МР1 ГЕОАТ, суре2, ), МР1 Туре сопсзииоиз(4, МР1 РЕОАТ, суре4, ), МР1 Туре сопстЕиоиз(2, суре2, суре22, ), Любая посылающая функция соответствует любой получающей функции. 7.4.5. Длина сообщения Если сообщение было получено с использованием определяемого пользователем е)асасуре, то последующий запрос к МР1 Сес соипс(зсасиз, дасасуре, йсоипс) (и.

5.2.8) возвратит количество (соипс) полученных копий дасасуре. То есть если получающим действием была МР1 йесч(ои11, соипс, е)асасуре, ), тогда МР1 Сес соипс может возвратить любое целое число Ы, где 0<=1<=соипс. Если МР1 Сес соипс возвращает к, то число примитивных полученных элементов есть п*К, где и — число примитивных элементов в отображении типа аасасуре. Полученное сообщение может не иметь целое число копий е(асасуре.

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

Использование МР1 Сес соипс и МР1 СЕТ ЕЕЕМЕМТ. МР1 Туре сопсзииоив(2, МР1 Р(.ОАТ, йТуре2), ИР1 Туре сощщкс(йТуре2), ИР1 Сощщ гапк(соуп, йгапК), 11(гап)< = О) ( МР1 Бепб(а, 2, МР1 Р1ОАТ, 1, О, соют), МР1 Бепб(а, 3, МР1 РЕОАТ, 1, 1, соппп), ) е1ве МР1 Бепе((а, МР1 Яепд(а, МР1 Бепе)(а, МР1 Бепд(а, МР1 Весч(а, МР1 йесч(а, МР1 Кесч(а, МР1 Кесч(а, 4, МР1„Г1.ОАТ, ), 2, суре2, ), 1, суре22, ), 1, суре4, ), 4, МР1 Н.ОАТ, ), 2, суре2, ), 1, туре22, ), 1, суре4, ), 148 7. Определяемые пользователем типы данных и упаковка данных ( МР1 Весч(а, 2, Туре2, О, О, сошш, ззсас); МР1 Сес соппт(зтас, Туре2, зт); МР1 Сес е1ешептз(зсас, Туре2, з1); МР1 9есч(а, 2, Туре2, О, 1, сопеп, интас); МР1 Сет соппс(зсас, Туре2, зт); МР1 Сес е1ешепз(зсас, Туре2, й1); /* возвращает 1=1 »/ /» возвращает 1=2 »/ /» возвращает тнМР1 ОМОЕГ1МЕ0 »/ /» возвращает тнЗ »/ Функпия МР1 СЕТ Е|ЕМЕМТЯ может также использоваться после функции МР1Ргопе (см.

и. 5.9) для нахождения количества примитивных элементов в исследованном сообщении. Заметьте, что дзе функции МР1 СЕТ СООМТ и МР1 СЕТ ЕЬЕМЕМТЯ возвращают те же самые значения, когда они используются с примитивным дататурез. Определение МР1 СЕТ СООМТ совместимо с использованием соппс аргумента в получающем запросе: функция возвращает значение соцпс аргумента, когда буфер приема заполнен. Иногда Масасуре представляет основную единицу данных, которые необходимо передавать.

Тогда для выяснения, сколько компонентов были получены, чтобы знать число элементов в каждой компоненте, используется МР1 СЕТ СООМТ. Однако в других случаях «1асасуре используется, чтобы определить комплексное расположение данных в памяти преемника, и не представляет основную единицу данных для передач, т. е. нужно использовать МР1 СЕТ ЕЬЕМЕМТЯ. 7.5. Функция адреса Как показано в примере 7.14, иногда возникает потребность найти смещение в байтах компонентов структуры относительно ее начала.

На С можно использовать зтзеот оператор для нахождения размеров объектов и потом оператор Й для вычисления адресов и затем смешений. Однако стандарт С не требует, чтобы (тпт)з ч была байт-адресом переменной ч:отображение указателей на целые числа зависимо от выполнения. Некоторые системы могут иметь "тчоге(н указатели и еЬуСе" указатели; другие системы могут иметь сегментированное, состоящее из нескольких несмежных участков адресное пространства Следовательно, МР1 нужно обеспечивать переносимый механизм, чтобы вычислить "аде)теез" переменной, Такой механизм, конечно, необходим и в гог$гап'е, который не имеет никакого оператора разыменования.

МР1 АООВЕЯЯ(1осас1оп, аддгезз) 1М 1осастоп переменная, представлявшая память раэнешения СОТ ае1бгезз адрес разиешения 1пс МР1„АЫгезз(чотп» 1осасйоп, МР1 Айпс »аоогезз) МР1 А00йЕЯЯ(10САТ1ОМ, АООМЕЯЯ, 1ЕВЯОВ) <суре> ЕОСАТ1ОМ(») 1МТЕСЕВ АООМЕЯЯ, 1ЕййОМ Пример 7.20. Использование МР1А00йЕЯЯ для матрицы. Значению 01РГ присвоена вели- чина 909»зтзеотт1оат, в то время как значения 11 и 12 зависимы от выполнения. 11оап А[1003 [1003; 1пс 11,12,01ГР; МР1 АеЫгезз(А,11); МР1 АеЫге зз (А [103 [103 .

12); 01ГР = 12 — 11; МР1 АООМЕЯЯ используется для нахождения адреса размещения в памяти. Он возвращает байт адрес размещения. У.б. Маркировка нижней границы и верхней границы диаиаэана 149 Мсгпсс Рагсзсгпсс ( сЬаг с1азз; бопЫе б[б]; сЬаг Ь[7]; псгпсс Рагсзсгпсс рагстс1е[1000]; тпс безс, гап)т; МР! Савв соппп; МР1 Оасасуре Рагстс1есуре; МР1 Оасасуре суре[3] = (МР1 СНАМ, МР1 ОООВЬЕ, МР1 СНАМ; тпс Ыоск1еп[3] = (1, б, 7]; МР1 А!пС б!зр[3]; !« Вычисление смешений */ МР1 Аббгезз(рагс!с1е, йб!яр[0]); МР1„Аббгезз(рагс1с1е[О],б, зб!зр[!]); МР1 Аббгезз(рагС!с1е[0] Ь, абтзр[2]); !ог(1=2;т >= 0;! †) птзр[!] -= б!зр[0]; !в Построение типов данных «/ МР1 Туре зсгпсс(3, Ыоск1еп, б!зр, суре, ерагстс1есуре); МР! Туре савв!с(йрагс!с1есуре); /» класс частицы »/ /« координаты частицы «/ /* некоторая дополнительная информация »/ /« Передача элементов массива »/ МР1 Яепб(рагс!с1е, !000, Рагс!с1есуре, безс, сая, сова); Абсолютная величина, возвращенная МР1 АООНЕ33 — малозначантая; только относительпые смещения, которые являются разностями между адресами различных переменных, — значащие.

Следовательно, приложение может выбрать произвольную начальную точку ("и!агС)пй ро)пС") как нулевое место в памяти. 7,6. Маркировка нижней границы и верхней границы диапазона Иногда необходимо переформулировать определение диапазона, данного в п. 7.2. Рассмотрим пример 7.21 из и. 7.5.

Допустим, что бопЫе занимает 8 байт и должен выравниваться ппойным еловом. Здесь имеется 7 байт, выравнивающих после первого поля, и один байт, выравнивающий после последнего поля структуры Рагсзсгпсс, и структура будет занипать 64 байта. Если, с другой стороны, бопЫе будет выравниваться только словом, то пиеются только 3 байта выравнивания после первого поля и РагсзсгцсС будет занимать МО байт. МР! библиотека следит за правилами выравнивания, используемыми на целевых системах так, чтобы диапазон типов данных Рагс!с1есуре равнялся количеству хранений, таполняющих Рагсзсгпсс. 'Трудность в том, что различные правила выравнивания могут Мыть определены на той же самой системе, используя различные выборы компилятора.

Бопее трудная проблема состоит в том, что некоторые компиляторы допускают использование псепдокомментариев в порядке определения различных правил выравнивания для различпых структур внутри той же самой программы. (Многие архитектуры могут правильно пбращаться с невыровненными значениями, но с более медленным выполнением; различное выравнивание управляет скоростью доступа к плотным хранениям.) МР1 библиотека !!ример 7.21. Мы изменяем код в примере 7.14, чтобы избежать архитектурных зави- симостей. Запросы к МР1 АООКЕ33 используются, чтобы вычислить смещения компонентов структуры. 7.

Определяелеые пальзаватпелем енины данных и упаковка данных 150 примет правила выравнивания. Однако пользователь должен быть способен аннулировать это предположение, если структуры упакованы иначе. Чтобы допускать эту возможность, МР1 имеет два дополнительных врвене1о-с1ахаьурев» (псевдотнпов данных): МР1 1.В и МР1 РВ, которые могут использоваться, соответственно регистрируя нижнюю границу или верхнюю границу типа данных. Эти псевдотнпы не занимают никакого места (ехсепс(МР1 1В) =ехсепс(МР1ЛВ) =О). Они не влияют на размер или количество типов данных и не влияют на содержание сообщения, созданного с этим типом данных. Однако они изменяют диапазон типа данных и, следовательно, влияют на результат дублирования этого типа строителем типа данных.

Пример 7.22. Допустим Р=(-З,О,б); Т=(МР1 1В, МР1 1МТ, МР1 РВ) и В=(1,1,1). Тогда запрос к МР1 ТУРЕ.ЯТВРСТ(З, В, Р, Т, суре1) создает новый тип данных, который имеет диапазон 9 (от -3 до 5 включительно) и содержит целое число в смешении О. Этот тип данных имеет отображение 1(1ь,-з), (йпс,О), (пь,б)). если он скопируется дважды запросом х МР1 ТУРЕ СОМТ16РОРБ(2, суре1,суре2), то суре2 имеет отображение типа: ((1Ь,-З), (йпп, 0), (йпс, 9), (нЬ, 15) ). (Элемент типа 1Ь может быть удален, если имеется другой элемент типа 1Ь с меньшим адресом; и элемент типа пЬ может быть удален, если имеется другой элемент типа пЬ с большим адресом). Вообще, если ТУРешаР = ((сУРео, е(1зРо), ", (сУРеп 1,01зРп 1)), тогда нижняя граница Турешар определена как Точно так же верхняя граница Турешар определена как шахййхзр1+ з1веот(суре)) + е, пЬ(Турешар) = если нет элементов, имеющих основной тип нЬ, шах)(е11зр1 такой, что суре = цЬ) иначе ехсепс(Турешар) = цЬ(Турешар) — 1Ь(Турешар), Если суре1 требует выравнивания к адресу байта, который является кратным К;, то еменьше неотрицательное приращение, необходимое для округления ехсепс(Турешар) к спе дующему кратному шахйК1.

Формальные определения, данные для различных строитепей типов, продолжают применяться с исправленным определением ехсепс. Таким образок, МР1 ТУРЕ ЕХТЕМТ возвращает вышеупомянутое значение для диапазона. Пример 7.23, Изменим пример 7.21 так, чтобы программа явно установила диаппгя Рагс1с1евуре правильно. Это лучше, чем доверие к МР1. Бсгпсс Рагъзсгнсс (снаг с1азз; «(анЬ1е о[63; снаг Ь [73; ); зсгпсс Рагсзсгпсс рагс1с1е[10003; йпс х,е)езв,гапК; МР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
Средний доход
с одного платного файла
Обучение Подробнее