Автор статьи
Валерия
Эксперт по сдаче вступительных испытаний в ВУЗах
- Сформировать практические навыки разработки программ алгоритмов имитационного моделирования на мультикомпьютерах.
- Выработать базовые навыки работы с системным программным обеспечением мультикомпьютеров.
- Выработать базовые навыки программирования мультикомпьютеров.
- Ознакомиться со способами оптимизации программ для мультикомпьютеров.
- На базе имеющейся последовательной программы написать программу имитации работы клеточного автомата или изучаемых алгоритмов численного моделирования с использованием MPI.
- Встроить в программу код измерения времени работы программы.
- Использовать все известные способы оптимизации разработанных параллельных программ.
- Измерить время работы всех программ и построить графики функции зависимости времени исполнения от объема входных данных (размера массив, количества отсчетов и т. д., в зависимости от вычислительной задачи).
- Выполнить сравнительный анализ времени выполнения параллельных программ на мультипроцессорах и мультикомпьютерах с разной топологией сети связи. Объяснить причины и сделать выводы.
- Изучить набор базовых функций MPI (MPI_Init, MPI_Comm_rank, MPI_comm_size, MPI_Send, MPI_Recv, MPI_Barrier). Кроме базовых функций, в зависимости от выбранного алгоритма, могут потребоваться изучить другие функции. Изучить скрипт компиляции MPI программ mpicc и скрипт запуска MPI программ mpirun/mipexec.
- Ознакомиться с примерами программ на OpenMP и MPI (примеры даются преподавателем в начале лабораторной работы).
- Получить программу на MPI, модернизируя последовательную программу. Для этого необходимо необходимо добавить операции обмена значениями клеток теневых граней после счета на каждом шаге работы модели. Принадлежность клеток теневым граням определяется видом окрестности правила, вычисляющего новые значения клеток автомата, и способом разрезания и распределения частей массива по узлам мультикомпьютера.
- Для проведения замеров времени исполнения программ на множестве массивов с различными размерами написать скрипт (на bash, csh или ином скриптовом языке), запускающий компиляцию и счет программы в цикле по размеру массива.
- Для отрисовки графиков времени работы программ использовать утилиту GNU Plot.
- По результатам тестирования сформулировать рекомендации по эффективному программированию мультипроцессоров.
- Выявить преимущества и недостатки общей памяти по сравнению с распределенной памятью. Сравнить средства программирования мультипроцессоров и мультикомпьютеров.
О сайте
Ссылка на первоисточник:
https://jurac.ru
Поделитесь в соцсетях: