Задания

Задача 1.Откомпилировать и выполнить программу 3.4.3.2., задающую базовую структуру MPI-программ. Запустить программу на количестве процессоров от 1 до 4.

Задача 2.Написать и отладить MPI-программу, в которой корневой процесс (процесс с рангом 0) выдает на консоль количество запущенных процессов, а также сообщение

 

Root process: Hello, world”,

 

а все остальные процессы выдают сообщение

 

“Slave process: my rank is xxxx”,

 

где xxx есть ранг соответствующего процесса.

Выполнить запуски программы на разном количестве процессоров.

Задача 3.Оттранслировать и запустить на выполнение программу 3.4.4.1.1. с параметром –np 2, в которой процесс с номером 0 “пингует” (посылает тестовое сообщение, в данном случае, длины 1) процессу с номером 1, и ждет от него ответного сообщения.

 

 

Задача 4.Написать программу, в которой процесс с номером 0 пингует все процессы в группе (кроме самого себя), посылая им однобайтовые сообщения и принимая от них такие же ответные сообщения.

Задача 5.Реализоватьпрограмму суммирования элементов вектора на заданном числе процессов (задается через аргументы): мастер-процесс посылает дочерним части вектора, дочерние возвращают суммы частей, после чего мастер-процесс их суммирует и выводит результат, время выполнения. Сравнить с последовательным вариантом суммирования для 5000, 10000, 50000 элементов (для замер времени выполнения использовать функции приложения 2).

 

Задача 6.Реализоватьпрограмму умножения матрицы A на вектор b: мастер-процесс посылает дочерним часть матрицы A(блок строк) и реплицирует вектор b, каждый процесс обрабатывает части, после чего все собирается мастер-процессом.

Задача 7.Реализоватьпрограмму умножения матрицы A на вектор b: мастер-процесс посылает дочерним части матрицы A(блок строк) и вектора b, дочерние анализируют часть А, определяют необходимые для вычислений части вектора b (случай разреженной матрицы), запрашивают у процессов, производят вычисления, частные результаты собираются мастер-процессом. Сравнить время выполнения с результатом зад.6.

 

Задача 8.Реализоватьпрограмму ленточного умножения матрицы A на матрицу В. Каждый процесс получает блок строк матрицы А и блок строк матрицы В. Запрашивает необходимые части матрицы В у других процессов. Проводит вычисления. Сбор результатов мастер-процессом.

 

Задача 10.Реализовать посылку сообщений (например, значений ранга) от всех процессов в группе, процессу с заданным рангом (этот ранг является входным параметром программы) с помощью функции MPI_Gather.

 

Задача 11.Оттранслировать и выполнить с параметром –np 4 программу 3.4.5.1.4. , в которой функция MPI_Scatter используется для рассылки строк матрицы чисел с плавающей точкой по отдельным процессам.

Дополнить эту программу фрагментом, в котором отдельные процессы суммируют все элементы полученной строки и возвращают полученные результаты корневому процессу с помощью функции MPI_Gather.

 

Задача 13. Реализовать программу, которая

1) рассылает строки исходной прямоугольной матрицы по процессам;

2) находит максимальный элемент в каждом столбце этой матрицы,

3) умножает все элементы i-ой строки матрицы на максимальный элемент i-го столбца,

4) собирает полученную матрицу в процессе с номером 0.

5) сохраняет результат на машине процессора 0.








Дата добавления: 2015-02-03; просмотров: 874;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.