Передача сообщений Point-to-Point. Неблокирующие методы. Творческая часть. Консоль

Страницы работы

Содержание работы

Учебный курс: Многопоточное программирование

Кафедра: ИС Факультет: ИТиП

Лабораторная работа №6. Простейшая передача сообщений точка-точка.

Выполнил: Группа: 5516

Преподаватель:

Задание

Передача сообщений Point-to-Point

1.  Одновременно отправить и получить текстовое сообщение с помощью метода Communicator.SendReceive с параметром CompletedStatus. Вывести на консоль поля этого параметра после завершения отправки. Ранги процессов отправителя и получателя сообщения определяются на усмотрение студента.

2.  Реализовать класс, осуществляющий моделирование работы отдела кадров – хранение данных о сотрудниках компании (допускается использование аналогичного класса, реализованного в работе №4). Одновременно отправить и получить объект созданного типа с помощью метода Communicator.SendReceive. Ранги процессов отправителя и получателя сообщения определяются на усмотрение студента.

Неблокирующие методы

1.  С помощью метода Communicator.ImmediateProbe проверить, доступно ли для получения сообщение, отправленное из процесса с рангом 0 и с тегом 1.

2.  Осуществить приём данных из root процесса и передачу их по цепочке другим процессам. При этом процесс с рангом I должен принять данные и отправить их процессу с рангом i+1. Процесс с максимальным номером ранга должен переслать сообщение root процессу. Реализовать однократную пересылку сообщения по цепочке, т.е. сообщение, отправленное из root процесса должно вернуться в него один раз. Для отправки и приёма сообщений использовать неблокирующие методы.

Творческая часть

Осуществить неблокирующую рассылку текстовых сообщений произвольного содержания (содержание всех сообщений одинаково и определяется на усмотрение студента) из root процесса всем остальным процессам с уведомлением о доставке.

Входные данные

Отсутствуют

Консоль

Part 1. Message passing Point-to-Point.

Process 0 has received the message: Hello from process 1

Process 1 has received the message: Hello from process 0

Process 0:

CompletedStatus.Cancelled = False

CompletedStatus.Source = 1

CompletedStatus.Tag = 141

Process 1:

CompletedStatus.Cancelled = False

CompletedStatus.Source = 0

CompletedStatus.Tag = 141

Process 0:

Employee.ID = 1

Employee.FirstName = Petr

Employee.LastName = Ivanov

Process 1:

Employee.ID = 0

Employee.FirstName = Vasya

Employee.LastName = Petrovich

Part 2. Non-blocking methods.

ImmediateProbe(0, 1) = MPI.Status

Process 1 received message: Test ImmediateProbe

Process 1 received message "Circle message" from process 0.

Process 2 received message "Circle message" from process 1.

Process 3 received message "Circle message" from process 2.

Process 4 received message "Circle message" from process 3.

Process 5 received message "Circle message" from process 4.

Process 6 received message "Circle message" from process 5.

Process 7 received message "Circle message" from process 6.

Process 8 received message "Circle message" from process 7.

Process 9 received message "Circle message" from process 8.

Process 0 received message "Circle message" from process 9.

Part 3. Creative part.

Process 1 received message: Hello from root.

Process 7 received message: Hello from root.

Process 3 received message: Hello from root.

Process 2 received message: Hello from root.

Process 9 received message: Hello from root.

Process 5 received message: Hello from root.

Process 8 received message: Hello from root.

Process 6 received message: Hello from root.

Process 4 received message: Hello from root.

Для продолжения нажмите любую клавишу . . .

Снимки экрана

Отсутствуют

Архив проекта

Похожие материалы

Информация о работе