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

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

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

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

с1авв == 0) ( МР1 РасК(йй, 1, МР1 1МТ, Ьи11ег, ВОГБ12Е, кровупуоп, МР1 СОИМ МОМ10); /» Упаковка индексов */ МР1 РасК(рагизс1е[11 .6, 1, Рагсус1есуре, ЬиЛТег, ВПРБ12Е, йровупйоп, МР1 СОММ 'кОМЬО); /» Упаковка структуры »/ /* Упаковка отрицательного индекса как маркера конца списка »/ 1 = -1; МР1 РасК(к1, 1, МР1 1МТ, Ьи17ег, ВОРБ12Е, Кров)гуоп, МР1 СОММ МОЕЮ); /» Передача »/ МР1 Бепб(Ьи1Тет, ровтсйоп, МР1 РАСКЕР, 1, О, МР1 СОММ МОЕЮ); ) 158 7.

Определяемые пользователем типы данных и упаковка данных е1ве ( 1г(иугапй == 1) /в Прием нулевого класса частил в подобное поле памяти */ /» Прием */ МР1 Кесч(ЬпХХег, ВОРЯ12Е, МР1 РАСКЕО, О, О, МР1 СОММ„ЫОКЬО, йвСапцв); /в Распаковка в/ иЬ11е((МР1 Опрасй(Ьпттег, ВВГЯ12Е, йровйсйоп, йй, 1, МР1 1МТ, МР1 СОИМ НОКЬР); 1) >а 0) ( /* Распаковка индексов в/ МР1 Опраск(ЬцХХег, ВПРБ12Е, йровйсйоп, рагсйс1еШ .б, 1, Рагсйс1есуре, МР1 СОИМ ЖОКЬО); /в Распаковка структуры в/ рагсйс1е Ы .с1авв = 0; 7.8.1. Сравнение производных типов данных с упаковкой/распаковкой Сравнение примеров 7.15 и 7.27 поучительно.

Первое — удобство программирования. Определение типов несколько менее утомительно, чем упаковка частиц нулевого класса в цикле, которая размещает их. Лучше определить в этом цикле тип данных, который позже соберет их. С другой стороны, было бы очень утомительно (и неэффективно) упаковывать отдельно (независимо) компоненты каждого входа структуры в массиве. Определение типа данных более удобно, когда оно зависит только от деклараций; упаковка может быть более удобна, когда расположение буфера связи зависимо от данных.

Второе — использование хранения. Использование упаковки требует дополнительного хранения для копии данных, в то время как использование производного типа данных требует дополнительного хранения для описания расположения данных. И наконец, — время вычислений. Упаковшик выполняет обращение к функции нь каждом пункте упаковки, в то время как производный тип данных выполняет только установленное число обращений к функции. Упаковщик требует дополнительной памятв для копии данных по сравнению с производным типом данных. Пример 7.28 выше поясняет другое преимущество упаковки/распаковки, а именно процесс получения может использовать информацию частично поступающего сообшении для решения, как обратиться с последуюгпими данными в сообшении, Производный тип данных в этом случае должен бы послать два сообщения: первый — со списком индексов, второй — с последующей информацией.

Использование производного типа данных часто является шагом к улучшенному выполнению: копирование данных можно издать и информация относительно расположения данных может многократно использоваться, когда многократно используется тот же самый буфер связи. С другой стороны, определение производного типа данных для комплексных расположений данных может быть более утомительно, чем явная упаковка данных.

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

В включение обсуждается взаимодействие между МР1 и общей окружающей средой выполпения. 6.1. Информация о выполнении 8,1.1. Запросы, относящиеся к окружаюшей среде Набор атрибутов, которые описывают окружакпцую среду выполнения, присоединяется на переключатель каналов МР1 СОММ НОНЫ после инициализации МР1. Будет ошибкой удалять птн атрибуты, освобождать их ключи или изменять их значения, Список предопределенных ключевых атрибутов включает: бр1 ТАОЛ — верхняя граница значения тега. 'пр1 НОЯТ вЂ” ранг главного процесса (хост), если такой существует, иначе МР1РНОС НОЕ1.

ВР1 10 — ранг узла, который имеет регулярные средства ввода — вывода (возможно, ранг вызывающего процесса). Узлы в том же самом переключателе каналов могут возвращать различные значения для этого параметра. бр! НТ1МЕ 1ЯО1ОВА1 — булева переменная, которая указывает, синхронизированы ли часы. Эти предопределенные атрибуты не заменяют величины МР! инициализации (МР1 1М1Т) и МР! завершения (МР1 Г1МАЕ1ЕЕ).

Заметьте, что в языке С значения, возвращенные этими атрибутами, — это указатели па тпк, содержащие запрошенные значения. ! Значения этих параметров обсуждены более подробно ниже. , Величина тега. Ранг величины тега от 0 до значения, возвращаемого для МР1 ТАОЛВ включительно. Эти значения гарантированно не изменятся в течение выполнения МР1 программы. Кроме того, верхняя граница тега должна быть, по крайней мере, не более 32766.

МР! свободен делать значение для МР1 ТЕС ОВ больше, чем это число, например, 2по — ! также законное значение для МР1 ТАС ВВ. Атрибут МР1 ТАО ОВ имеет то же самое ппачение на всех процессах в группе МР1 СОММ НОНЫ. ! Ранг хост процесса. Значение, возврашаемое МР1 НОЯТ, имеет ранг хост процесса в группе, связанного с переключателем каналов МР1 СОИМ НОРОВ при наличии такого. Если нет никакого хост процесса, то возвращается МР1 РНОС МОЫ. Этот атрибут может использоваться па системах, которые имеют различаемый хост процессор.

Однако МР1 не дает определеппя хост процесса н не требует его существования. Атрибут МР1 НОЯТ имеет то же самое ппачение на всех процессах в группе МР1 СОНМ НОНЕО. ~ Ранг ввода — вывода. Значение, возврашаемое МР1 10, является рангом процессора, который может обеспечивать стандартные языковые средства ввода-вывода. Зля Рогпгап'а это означает, что все операции ввода-вывода поддержаны, например, ОРЕМ, НЕН1МО, НН1ТЕ, для ' 0 — что все операции ввода — вывода А!к!Я1-С поддержаны, например, Торец, трг!цст, 1вееК. Если каждый процесс может обеспечивать стандартный языковый ввод-вывод, то будет возвращено значение МР1 АНУ.ЯООНСЕ, если процесс запроса может обеспечивать стандартный языковый ввод-вывод, то будет возврашен его ранг.

То же самое значение не полжно быть возвращено всеми процессами. Если никакой процесс не может обеспечивать стандартный языковый ввод — вывод, то будет возврашено значение МР1 РНОС НОЕ1.. 160 8. Управление окружаекцей средой Синхронизация времени. Значение, возвращаемое МРХ МТХМЕ 1Б 01ОВА1, равно 1, если часы во всех процессах в МР1 СОИМ ЫОЕ10 синхронизированы, иначе О. Ожидание — зто изменение времени, которое измеряется запросами к МР1 ЫТХМЕ.

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

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

Имя — стром символов (для максимальной гибкости). Из этого значения возможно опознавать опрецелакную часть оборудования; возможные значения включают "ргосеьеог 9 1п гасЫ 4 оХ тпрр.са.окй" и "231" (где 231 — фактический номер процессора в текущей однородной системе). Арту- мент паше должен хранить информацию, которая является списком длины, по крайней ме1ю, МР1 МАХ РВОСЕБЯОВ МАМЕ знаков. МР1 СЕТРВОСЕББОВ МАМЕ может писать до этого количеств знаков в паше.

Символы из указанной строки возвращается в аргументе гезв1с1еп. Определение этой функции не препятствует МРХ приложениям, которые обрабатываи перемещение. В таком случае последовательные запросы к МР1 СЕТ РВОСЕББОЕ МАМЕ так же самым процессом могут возвращать различные значения. Заметьте, что в МРк нитка не требует или не определяет перемещения процесса; МР1 ОЕТ РВОСЕББОВ МАМЕ проста допускает такое выполнение.

Пользователь должен обеспечить место для списка, длиной, по крайней меус, МР1 МАХ РЕОСЕББОЕ МАМЕ символов, чтобы писать имя — процессор, имена процессоров иогут быть этой длины. Пользователь должен исследовать аргумент гезп1с1еп для определенп фактической длины имени. Константа МР1 ВБЕМО ОЧЕЕНЕАО обеспечивает верхнюю границу для сообщения, буферкзуемого запросом к МР1 ВБЕМР. 8.2. 'Таймеры и синхронизация МРХ определяет таймер. Таймер определен, даже если это не "птееаабе-раеящ", пото1А что выбор времени в параллельных программах важен при отладке и потому, что суша ствующие таймеры (и в РОЯХХ 1003.1-1988 н 1003.4ХЭ 14.1 и в Рог$гап'е 90) являются кл неудобными, или не обеспечивают адекватного доступа к таймерам с высоким разрештнк ем.

МР1 ЫТХМЕ() с(оцЫе МР1 МсХше(чо44) 000ВЕЕ РЙЕСХБХОМ МР1 МТХМЕ() 8.Я. Р/ничеелизаиия и выгод 161 ИР1 з»ТХИЕ возвращает число с плавающей запятой, представляющее секунды, истекшие за период времени, начиная с некоторого момента в прошлом, Гарантируется, что "время з прошлом" не изменится в течение жизни процесса. Пользователь ответствен за преобраювание больших чисел, указывающих секунды, к другим единицам, если это необходимо. Функция переносима (она возвращает секунды, не "Взсйз«) и допускает высокое разрежение. Можно использовать ее аналогично этому: поиззХе есагссззпе, ецЖсзве; зпагсъззпе = ИР1 ззсйзпе(); /»... Програииа ... «/ еппсйпзе = ИР1 Ысзыпе(); ргзпсМ("Тззас сооК /Х весопбв'зп", епбсзве-всагппзае); Возвращенные времена — местные к узлам, которые вызывают функцию.

Не требуется, зтобы разные узлы возвратили "то же самое время". (Но смотрите также обсуждение МР1 ВЕТХИЕ ХБ 01СВА1 в п. 8.1.1.) МР1 ЗЗТХСК() запоХе ИР1 ИсзсК(ззойо) КБВХ.Е РВЕСХЯХСИ ИР1 ИТХСК() ИР1 з»ТХСК возвращает решение ИР1 з»ТХИЕ в секундах, т.е, число возвращается с двойным значением точности количества секунд между последовательными засечениями вреяепи. Например, если датчик времени выполнен счетчиком оборудования, с разрешающей способностью до миллисекунды, возвращаемое значение ИР1 ЖТХСК должно быть 10 з.

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

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

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

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