Главная » Просмотр файлов » 2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother)

2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother) (1186034), страница 12

Файл №1186034 2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother) (2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother)) 12 страница2006 Ответы на экзаменационные вопросы по ПОД (Lilalbrother) (1186034) страница 122020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Разрешаетсяпередавать сообщение самому себе.Блокировка гарантирует корректность повторного использования всех параметровпосле возврата из подпрограммы. Выбор способа осуществления этой гарантии:копирование в промежуточный буфер или непосредственная передача процессу dest,остается за MPI. Следует специально отметить, что возврат из подпрограммы MPI_Sendне означает ни того, что сообщение уже передано процессу dest, ни того, что сообщениепокинуло процессорный элемент, на котором выполняется процесс, выполнившийMPI_Send.int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int msgtag, MPI_Commcomm, MPI_Status *status)OUT buf - адрес начала буфера приема сообщенияcount - максимальное число элементов в принимаемом сообщенииdatatype - тип элементов принимаемого сообщенияsource - номер процесса-отправителяmsgtag - идентификатор принимаемого сообщенияcomm - идентификатор группыOUT status - параметры принятого сообщенияПрием сообщения с идентификатором msgtag от процесса source с блокировкой.Число элементов в принимаемом сообщении не должно превосходить значения count.Если число принятых элементов меньше значения count, то гарантируется, что в буфереbuf изменятся только элементы, соответствующие элементам принятого сообщения.

Еслинужно узнать точное число элементов в сообщении, то можно воспользоватьсяподпрограммой MPI_Probe.Блокировка гарантирует, что после возврата из подпрограммы все элементысообщения приняты и расположены в буфере buf.В качестве номера процесса-отправителя можно указать предопределенную константуMPI_ANY_SOURCE - признак того, что подходит сообщение от любого процесса. Вкачестве идентификатора принимаемого сообщения можно указать константуMPI_ANY_TAG - признак того, что подходит сообщение с любым идентификатором.Если процесс посылает два сообщения другому процессу и оба эти сообщениясоответствуют одному и тому же вызову MPI_Recv, то первым будет принято тосообщение, которое было отправлено раньше.int MPI_Get_count( MPI_Status *status, MPI_Datatype datatype, int *count)status - параметры принятого сообщенияdatatype - тип элементов принятого сообщенияOUT count - число элементов сообщенияПо значению параметра status данная подпрограмма определяет число ужепринятых (после обращения к MPI_Recv) или принимаемых (после обращения кMPI_Probe или MPI_Iprobe) элементов сообщения типа datatype.int MPI_Probe( int source, int msgtag, MPI_Comm comm, MPI_Status *status)source - номер процесса-отправителя или MPI_ANY_SOURCEmsgtag - идентификатор ожидаемого сообщения или MPI_ANY_TAGcomm - идентификатор группыOUT status - параметры обнаруженного сообщенияПолучение информации о структуре ожидаемого сообщения с блокировкой.Возврата из подпрограммы не произойдет до тех пор, пока сообщение с подходящимидентификатором и номером процесса-отправителя не будет доступно для получения.Атрибуты доступного сообщения можно определить обычным образом с помощьюпараметра status.

Следует обратить внимание, что подпрограмма определяет только фактприхода сообщения, но реально его не принимает.Прием/передача сообщений без блокировкиint MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int msgtag, MPI_Commcomm, MPI_Request *request)buf - адрес начала буфера посылки сообщенияcount - число передаваемых элементов в сообщенииdatatype - тип передаваемых элементовdest - номер процесса-получателяmsgtag - идентификатор сообщенияcomm - идентификатор группыOUT request - идентификатор асинхронной передачиПередача сообщения, аналогичная MPI_Send, однако возврат из подпрограммыпроисходит сразу после инициализации процесса передачи без ожидания обработки всегосообщения, находящегося в буфере buf.

Это означает, что нельзя повторно использоватьданный буфер для других целей без получения дополнительной информации озавершении данной посылки. Окончание процесса передачи (т.е. того момента, когдаможно переиспользовать буфер buf без опасения испортить передаваемое сообщение)можно определить с помощью параметра request и процедур MPI_Wait и MPI_Test.Сообщение, отправленное любой из процедур MPI_Send и MPI_Isend, может бытьпринято любой из процедур MPI_Recv и MPI_Irecv.int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int msgtag, MPI_Commcomm, MPI_Request *request)OUT buf - адрес начала буфера приема сообщенияcount - максимальное число элементов в принимаемом сообщенииdatatype - тип элементов принимаемого сообщенияsource - номер процесса-отправителяmsgtag - идентификатор принимаемого сообщенияcomm - идентификатор группыOUT request - идентификатор асинхронного приема сообщенияПрием сообщения, аналогичный MPI_Recv, однако возврат из подпрограммыпроисходит сразу после инициализации процесса приема без ожидания получениясообщения в буфере buf.

Окончание процесса приема можно определить с помощьюпараметра request и процедур MPI_Wait и MPI_Test.int MPI_Wait( MPI_Request *request, MPI_Status *status)request - идентификатор асинхронного приема или передачиOUT status - параметры сообщенияОжидание завершения асинхронных процедур MPI_Isend или MPI_Irecv,ассоциированных с идентификатором request. В случае приема, атрибуты и длинуполученного сообщения можно определить обычным образом с помощью параметраstatus.int MPI_Waitall( int count, MPI_Request *requests, MPI_Status *statuses)count - число идентификаторовrequests - массив идентификаторов асинхронного приема или передачиOUT statuses - параметры сообщенийВыполнение процесса блокируется до тех пор, пока все операции обмена,ассоциированные с указанными идентификаторами, не будут завершены.

Если во времяодной или нескольких операций обмена возникли ошибки, то поле ошибки в элементахмассива statuses будет установлено в соответствующее значение.int MPI_Waitany( int count, MPI_Request *requests, int *index, MPI_Status *status)count - число идентификаторовrequests - массив идентификаторов асинхронного приема или передачиOUT index - номер завершенной операции обменаOUT status - параметры сообщенийВыполнение процесса блокируется до тех пор, пока какая-либо операция обмена,ассоциированная с указанными идентификаторами, не будет завершена. Если несколькоопераций могут быть завершены, то случайным образом выбирается одна из них.Параметр index содержит номер элемента в массиве requests, содержащего идентификаторзавершенной операции.int MPI_Waitsome( int incount, MPI_Request *requests, int *outcount, int *indexes, MPI_Status*statuses)incount - число идентификаторовrequests - массив идентификаторов асинхронного приема или передачиOUT outcount - число идентификаторов завершившихся операций обменаOUT indexes - массив номеров завершившихся операции обменаOUT statuses - параметры завершившихся сообщенийВыполнение процесса блокируется до тех пор, пока по крайней мере одна изопераций обмена, ассоциированных с указанными идентификаторами, не будетзавершена.

Параметр outcount содержит число завершенных операций, а первые outcountэлементов массива indexes содержат номера элементов массива requests с ихидентификаторами. Первые outcount элементов массива statuses содержат параметрызавершенных операций.int MPI_Test( MPI_Request *request, int *flag, MPI_Status *status)request - идентификатор асинхронного приема или передачиOUT flag - признак завершенности операции обменаOUT status - параметры сообщенияПроверка завершенности асинхронных процедур MPI_Isend или MPI_Irecv,ассоциированных с идентификатором request. В параметре flag возвращает значение 1,если соответствующая операция завершена, и значение 0 в противном случае. Еслизавершена процедура приема, то атрибуты и длину полученного сообщения можноопределить обычным образом с помощью параметра status.int MPI_Testall( int count, MPI_Request *requests, int *flag, MPI_Status *statuses)count - число идентификаторовrequests - массив идентификаторов асинхронного приема или передачиOUT flag - признак завершенности операций обменаOUT statuses - параметры сообщенийВ параметре flag возвращает значение 1, если все операции, ассоциированные суказанными идентификаторами, завершены (с указанием параметров сообщений вмассиве statuses).

В противном случае возвращается 0, а элементы массива statusesнеопределены.int MPI_Testany(int count, MPI_Request *requests, int *index, int *flag, MPI_Status *status)count - число идентификаторовrequests - массив идентификаторов асинхронного приема или передачиOUT index - номер завершенной операции обменаOUT flag - признак завершенности операции обменаOUT status - параметры сообщенияЕсли к моменту вызова подпрограммы хотя бы одна из операций обменазавершилась, то в параметре flag возвращается значение 1, index содержит номерсоответствующего элемента в массиве requests, а status - параметры сообщения.int MPI_Testsome( int incount, MPI_Request *requests, int *outcount, int *indexes, MPI_Status*statuses)incount - число идентификаторовrequests - массив идентификаторов асинхронного приема или передачиOUT outcount - число идентификаторов завершившихся операций обменаOUT indexes - массив номеров завершившихся операции обменаOUT statuses - параметры завершившихся операцийДанная подпрограмма работает так же, как и MPI_Waitsome, за исключением того,что возврат происходит немедленно.

Если ни одна из указанных операций незавершилась, то значение outcount будет равно нулю.int MPI_Iprobe( int source, int msgtag, MPI_Comm comm, int *flag, MPI_Status *status)source - номер процесса-отправителя или MPI_ANY_SOURCEmsgtag - идентификатор ожидаемого сообщения или MPI_ANY_TAGcomm - идентификатор группыOUT flag - признак завершенности операции обменаOUT status - параметры обнаруженного сообщенияПолучение информации о поступлении и структуре ожидаемого сообщения безблокировки. В параметре flag возвращает значение 1, если сообщение с подходящимиатрибутами уже может быть принято (в этом случае ее действие полностью аналогичноMPI_Probe), и значение 0, если сообщения с указанными атрибутами еще нет.34.

MPI: различные виды операторов Send.int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int msgtag, MPI_Commcomm)buf - адрес начала буфера посылки сообщенияcount - число передаваемых элементов в сообщенииdatatype - тип передаваемых элементовdest - номер процесса-получателяmsgtag - идентификатор сообщенияcomm - идентификатор группыБлокирующая посылка сообщения с идентификатором msgtag, состоящего из countэлементов типа datatype, процессу с номером dest.

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

Список файлов ответов (шпаргалок)

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