Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Лабораторная работа №7. Сбор и трансляция сообщений
Для решения задач следует использовать библиотеку MPI.Net, доступную на сайте http://www.osl.iu.edu/research/mpi.net/. Документация о библиотеке MPI.NET доступна по ссылке http://www.osl.iu.edu/research/mpi.net/documentation/reference/current/Index.html.
Для демонстрации разработанного приложения использовать не менее 10 процессов.
1. Осуществить синхронизацию всех процессов в одной точке программы, используя метод Communicator.Barrier. вызов этого метода осуществить в root процессе. Вывести на консоль текстовое сообщение о прибытии всех процессов в точку синхронизации из root процесса.
2. Отправить текстовое сообщение, содержащее имя текущего процесса, в процесс с рангом 0 из всех остальных процессов, используя метод Intracommunicator.Gather. Вывести на консоль массив результатов из процесса с рангом 0.
3. В каждом процессе, получить случайное целое число с помощью генератора случайных чисел. Отправить полученное значение остальным процессам, используя метод Intracommunicator.AllGather. Вывести на консоль массив результатов из процесса с рангом 0.
4. Создать массив текстовых переменных в root процессе, размер массива должен быть равен количеству процессов. Содержание массива выбирается на усмотрение студента. Отправить элементы этого массива процессам с помощью метода Intracommunicator.Scatter. При этом i-й элемент массива должен быть доставлен процессу с рангом i. Вывести на консоль значение массива, полученное каждым процессом.
5. Осуществить пересылку ранга текущего процесса в виде целого числа в root процесс из всех процессов с рангом больше 0. Для получения сообщений в root процессе использовать метод Intracommunicator.Gather. Вывести на экран полученные значения из root процесса.
1. Осуществить отправку случайного целого числа из root процесса всем другим процессам с помощью метода Intracommunicator.Broadcast. Каждый процесс при получении числа должен вывести на консоль свой ранг и полученное значение.
2. Осуществить отправку массива случайных целых чисел из root процесса всем другим процессам с помощью метода Intracommunicator.Broadcast. Каждый процесс при получении массива должен вывести на консоль свой ранг и полученные значения.
3. Создать матрицу случайных целых чисел, количество строк и столбцов которой должно равняться количеству процессов. Осуществить транспонирование созданной матрицы с помощью метода Intracommunicator.Alltoall транспонировать созданную матрицу, передав созданный массив в качестве параметра. Вывести на консоль элементы исходной и транспонированной матриц.
Творческая часть: создать две группы процессов, созданные на основе непересекающихся множеств процессов. Передать массивы целых чисел между созданными группами, используя 2-3 метода класса Intercommunicator.
Вариант |
Сбор и размещение |
Рассылка и обмен |
||||||
1 |
2 |
3 |
4 |
5 |
1 |
2 |
3 |
|
1 |
× |
× |
× |
|||||
2 |
× |
× |
× |
|||||
3 |
× |
× |
× |
|||||
4 |
× |
× |
× |
|||||
5 |
× |
× |
× |
|||||
6 |
× |
× |
× |
|||||
7 |
× |
× |
× |
|||||
8 |
× |
× |
× |
|||||
9 |
× |
× |
× |
|||||
10 |
× |
× |
× |
|||||
11 |
× |
× |
× |
|||||
12 |
× |
× |
× |
|||||
13 |
× |
× |
× |
|||||
14 |
× |
× |
× |
|||||
15 |
× |
× |
× |
|||||
16 |
× |
× |
× |
|||||
17 |
× |
× |
× |
|||||
18 |
× |
× |
× |
|||||
19 |
× |
× |
× |
|||||
20 |
× |
× |
× |
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.