Учебный курс: Многопоточное программирование
Кафедра: ИС Факультет: ИТиП
Лабораторная работа №6. Простейшая передача сообщений точка-точка.
Выполнил: Группа: 5516
Преподаватель:
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.
Для продолжения нажмите любую клавишу . . .
Отсутствуют
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.