1. Распараллелить при помощи MPI скалярное умножение векторов длины L типа int на N процессах. Можно считать, что L⋮N. Натуральное число L получить как аргумент командной строки. Исходные вектора сгенерировать, заполнив их случайными числами из множества {−1; +1} для простоты проверки. Исходные векторы и результат вычислений вывести в консоль. (До 4 баллов.)
a. Написать и выполнить программу (1 балл). Каждый процесс должен сделать максимально возможную часть параллельных вычислений.
b. Минимизировать количество данных передаваемых каждому процессу (1 балл). Проконтролируйте, что все переданные данные используются.
c. Минимизировать число вызовов MPI (1 балл). Всегда помните, что математическую модель можно по-разному реализовать в коде.
d. Поддержать случай, если L не делится на N (1 балл). Возможно, вам помогут команды ScatterV/GatherV.
2. Распараллелить при помощи MPI сложение двух матриц размера L×M типа float на N процессах. Можно считать, что L⋮N. Натуральные числа L и M считать из консоли. Исходные матрицы сгенерировать, заполнив их случайными целыми числами для простоты проверки. Исходные матрицы и результат вычислений вывести в консоль. (До 3 баллов.)
a. Написать и выполнить программу (0,75 балла).
b. Минимизировать количество данных передаваемых каждому процессу (0,75 балла).
c. Минимизировать число вызовов MPI (0,75 балла).
d. Поддержать случай, если L не делится на N (0,75 балла).
от 2000 больше, цена договорная
| Гарантия на работу | 1 год |
| Средний балл | 4.55 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |