Порядок выполнения РГЗ
Студент получает у преподавателя вариант задания в начале семестра и защищает выполненную работу в течение учебных недель семестра. Защита состоит в демонстрации работы программы, предъявлении отчета и в ответах на вопросы по программе и по отчету. Отчет должен содержать постановку задачи, анализ проблемы, формулировку основных подходов к решению задачи, описание тестов для проверки корректности работы программы и исследования ее эффективности, результаты тестирования, выводы по результатам тестирования и основые содержательные части кода программы.
Примеры вариантов РГЗ
- Реализация асинхронного вызова функций (async и future в С++11) с помощью потоков. Реализовать функцию async, которая асинхронно вызывает переданную ей подзадачу в отдельном потоке. Функция возвращает объект-future, позволяющий получить результат подзадачи. Можно создавать произвольное число асинхронных подзадач и произвольное число потоков. Реализовать задачу умножения матрицы на вектор, сравнить эффективность с OpenMP реализацией.
- Асинхронные операции, но максимальное число потоков фиксировано, нужно производить балансировку подзадач между потоками. Реализовать задачу умножения матрицы на вектор, сравнить эффективность с OpenMP реализацией.
- Реализация аналогов функций MPI_Send и MPI_Recv с помощью операций с сокетами. Реализовать задачу умножения матрицы на вектор, используя новые функции, сравнить с MPI-реализацией.
- Реализация аналогов функций MPI_Isend, MPI_Irecv и MPI_Wait с помощью операций с сокетами. Реализовать задачу умножения матрицы на вектор, используя новые функции, сравнить эффективность с MPI-реализацией.
- Реализация аналогов функций MPI_Send, MPI_Recv и MPI_Reduce с помощью операций с сокетами. Реализовать задачу решения СЛАУ методом простых итераций, используя новые функции, сравнить эффективность с MPI-реализацией.
- Реализация аналога функции MPI_Allgatherv с помощью операций с сокетами. Реализовать задачу умножения матрицы на вектор, используя новые функции, сравнить эффективность с MPI-реализацией на разных размерах матриц.
- Умножение матрицы на матрицу на GPU с использованием технологии CUDA.
- Решение 2D уравнения Пуассона (л/р №3) на GPU с использованием технологии CUDA.
- CUDA Ray tracing
- CUDA Реализация алгоритма параллельной сортировки Бэтчера
- Реализация алгоритма параллельной сортировки Бэтчера в MPI.
- Исследование скорости чтения/записи различных объемов данных средствами С/С++ и средствами MPI I/O
- Реализация ЛР №4 (балансировка вычислительной нагрузки) с использованием функций для односторонних коммуникаций MPI_Put(), MPI_Get() для организации межпроцессных взаимодействий.
- Реализация ЛР №3 (решение уравнения Пуассона) с использованием функций для односторонних коммуникаций MPI_Put(), MPI_Get() для организации межпроцессных взаимодействий.
- MPI-программа для моделирования движения N гравитирующих тел
- Параллельная реализация в MPI одного из алгоритмов обработки графов по выбору (поиск компонент связанности, задача коммивояжера, разбиение на подграфы с заданными свойствами, обход графа в глубину, ширину и т.д.)
- Решение задачи обработки данных (по заданию преподавателя) в технологии Map-Reduce.