Лабораторная работа №5.. Параллельное программирование на основе MPI. Операции над векторами. Инструкция к запуску и компиляции MPI-программы на кластере claster-sfu.krasn.ru.. Задачи (для «опытных»).
Лабораторная работа №5.
Параллельное программирование на основе MPI. Операции над векторами
ЦЕЛЬ РАБОТЫ: Знакомство с кластером. Компиляция и запуск программ на кластере
Инструкция к запуску и компиляции MPI-программы на кластере claster-sfu.krasn.ru.
- Зайдите на кластер под своим логином.
- Загрузите Midnight Commander командой mc
- Создайте папку для хранения программ клавишей F7, перейдите в созданную папку.
- Загрузите в созданную папку исходный код программы с помощью WinSCP или создайте новый файл в Midnight Commander, нажав Shift+F4 и отредактировав его в текстовом редакторе mc (переход в текстовый редактор F4)
- Наберите текст программы, выводящей сообщения (Hello, world!!) от процессов (пример из лекции 14). Для сохранения изменений в текстовом редакторе mc используйте F2.
- Для компиляции программы:
- Сверните панели mc (ctrl+o)
- Выполните компиляцию файла программы командой: mpicc –o <имя_объектного_файла> <имя_компилируемого_файла>. Или mpiСС –o <имя_объектного_файла> <имя_компилируемого_файла>..Если компиляция выполнена без ошибок, то в папке появится объектный файл (выделен зеленым цветом)
- Запустите программу на выполнение командой: mpirun –np <количество_процессов> -maxtime 1 <имя_объектного_файла>
Задачи (для «опытных»).
- Написать программу, которая передаёт некоторое число по кольцу: от процесса с рангом 0, на процесс 1, процесс 1 прибавляет к числу 1 и передаёт на процесс 2 и т.д. Полученное в результате число выводится на консоль процессом с рангом 0. Замерить время выполнения программы
- Составить параллельную программу подсчёта суммы нечётных элементов вектора. Замерить время выполнения программы. Использовать функции широковещательной рассылки и редукции. *Использовать функцию распределения данных MPI_Scatter(…) или MPI_Scatterv(…)
Для каждой задачи:
- Запустить программу с одной и той же размерностью вектора несколько раз на 2-х, 4-х, 8-ми, 16-ти и 32-х процессорах с фиксацией времени выполнения программы при каждом запуске.
- Построить в Excel график зависимости скорости выполнения программы от количества процессоров.
- Запустить программу несколько раз на 16 процессорах, изменяя размерность массива в несколько раз при каждом запуске. Зафиксировать время выполнения
- Построить в Excel график зависимости скорости выполнения программы от увеличения количества входных данных при одном и том же количестве процессоров
|