Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Лабораторная работа №8. Функции глобальных вычислений
Для решения задач следует использовать библиотеку 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. В каждом процессе получить случайное число с помощью генератора случайных чисел. Произвести сложение полученных результатов, используя метод Intracommunicator.Reduce и свойство Operation<T>.Add. Конечный результат работы метода Reduce вывести на консоль в процессе с рангом 0.
2. В каждом процессе получить случайное число с помощью генератора случайных чисел. Произвести умножение полученных результатов, используя метод Intracommunicator.AllReduce и свойство Operation<T>.Multiply. Конечный результат работы метода AllReduce вывести на консоль в процессе с рангом 0.
3. Создать метод, производящий вычисления над целыми числами. Логика и характер исполняемых в методе операций определяются на усмотрение студента. Например, метод может выполнять вычисление факториала для переданного в метод параметра. В каждом процессе получить случайное число с помощью генератора случайных чисел. Произвести вычисления над полученными случайными числами, используя метод Intracommunicator.Reduce. При вызове метода Reduce передать ему делегат на созданный метод, как параметр типа ReductionOperation<T>. Конечный результат работы метода Reduce вывести на консоль в процессе с рангом 0.
4. Создать метод, производящий вычисления над целыми числами. Логика и характер исполняемых в методе операций определяются на усмотрение студента. Например, метод может выполнять возведение в квадрат переданного в метод параметра. В каждом процессе получить случайное число с помощью генератора случайных чисел. Использовать созданный метод при проведении префиксного приведения массива случайных данных в процессах выполняющих программу, используя метод Intracommunicator.Scan. При вызове метода Scan передать делегат на созданный метод как параметр типа ReductionOperation<T>. Вывести на консоль результаты, полученные в процессе с рангом 0 и в процессе с самым большим рангом.
5. В каждом процессе получить случайное число с помощью генератора случайных чисел. Произвести префиксное приведение полученного массива во всех процессах, используя метод Intracommunicator.Scan. При вызове метода передать в качестве делегата ReductionOperation<T> свойство Add класса Operation<T>. Вывести на консоль результаты, полученные в процессе с рангом 0 и в процессе с самым большим рангом.
6. В каждом запущенном в окружении процессе получить случайное число с помощью генератора случайных чисел. Произвести префиксное приведение полученного массива во всех процессах, используя метод Intracommunicator.ExclusiveScan. При вызове метода передать делегат на свойство Max класса Operation<T>, как параметр типа ReductionOperation<T>. Вывести на консоль результаты, полученные в процессе с рангом 0 и в процессе с самым большим рангом.
1. Произвести расчёт определённого интеграла , где – функция, заданная на усмотрение студента. Границы определённого интеграла a и b также определяются по усмотрению студента. При расчёте рекомендуется воспользоваться свойством аддитивности интеграла: , где p – число процессов. Для реализации расчёта использовать средства MPI.NET.
2. Произвести умножение двух двумерных матриц целых чисел по алгоритму Штрассена (http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A8%D1%82%D1%80%D0%B0%D1%81%D1%81%D0%B5%D0%BD%D0%B0), используя средства MPI.NET. Данные для матриц выбираются на усмотрение студента.
3. Осуществить сортировку массива целых чисел методом пузырька (http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D1%83%D0%B7%D1%8B%D1%80%D1%8C%D0%BA%D0%BE%D0%BC) в параллельном режиме, используя средства MPI.NET. Данные для массива выбираются на усмотрение студента.
Творческая часть: отсутствует.
Вариант |
Функции глобальных вычислений |
Расчет значений по алгоритмам |
|||||||
1 |
2 |
3 |
4 |
5 |
6 |
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).
Ссылка на скачивание - внизу страницы.