Автор статьи
Валерия
Эксперт по сдаче вступительных испытаний в ВУЗах
- Выработать навыки совместного использования средств организации параллельных вычислений внутри одного узла и между узлами в рамках одного счетного приложения.
- Выработать базовые навыки работы с системным программным обеспечением гибридного кластера и навыки написания параллельных и эффективных программ для гибридного кластера.
- Встроить в реализованные программы код измерения времени работы программы.
- Измерить время работы обеих программам для массивов с разными размерами и нарисовать графики с результатами измерений в осях OX – размер массива в тысячах клеток, OY – время работы в секундах.
- На основе полученных измерений оценить эффективность обеих программ и сделать вывод о размерах моделируемого массива, при которых многоузловая реализация дает выигрыш по сравнению с одноузловой.
- Изучить базовый набор функций MPI (MPI_Init, MPI_Comm_rank, MPI_comm_size, MPI_Send, MPI_Recv, MPI_Barrier), CUDA (cudaMalloc, cudaFree, cudaMemcpy, cudaDeviceSynchronize). Изучить команды компиляции CUDA программ. Изучить команды управления очередью заданий PBS на гибридном кластере и синтаксис файла настроек запускаемой задачи.
- Ознакомиться с примерами программ имитации работы клеточного автомата на базе CUDA и MPI или OpenCL и MPI. (примеры даются преподавателем в начале лабораторной работы).
- Построить процедуру моделирования одного шага работы клеточного автомата на графической карте и процедуры передачи данных между узлом и графической карты как для всего моделируемого массива, так и только для его теневых граней с использованием пакетов CUDA или OpenCL.
- Реализовать на MPI процедуру межузловых коммуникаций для обмена значениями клеток теневых граней.
- Для проведения замеров времени исполнения программ на множестве массивов с различными размерами рекомендуется написать скрипт (на bash, csh или ином скриптовом языке), запускающий компиляцию и счет программы в цикле по размеру массива.
- Для отрисовки графиков времени работы программ рекомендуется использовать утилиту GNU Plot.
О сайте
Ссылка на первоисточник:
https://infourok.ru
Поделитесь в соцсетях: