|
Методы и алгоритмы параллельных вычислений
Осенний семестр 2018-19гг.
План курса
Экспериментальная площадка
Экспериментальная площадка представляет собой кластер из виртуальных серверов на базе ОС Linux (OpenSuSe).
Каждый сервер обладает 4 ядрами по 1000 МГц каждое.
В кластере используется сетевой домашний каталог для хранения пользовательских данных.
Доступ к кластеру производится с использованием учетной записи вычислительной системы кафедры ИМО (от kappa).
Точка доступа:
- Адрес: etourism.cs.karelia.ru
- Порт: 20206
Имена серверов:
- cloud1 - основной сервер, сервер входа в кластер, хранилище сетевых домашних каталогов;
- cloud2 - дополнительный сервер.
Поддерживается переход между серверами с использованием протокола ssh (например, ssh cloud2).
Для упрощения перемещения между серверами рекомендуется выполнять аутентификацию по ключу:
Практическое задание
- Выполнить вход в кластер с использованием собственной учетной записи. Настроить аутентификацию по ключу.
- Создать тестовое приложение с использованием MPI (пример исходного кода и make-файла), скомпилировать и запустить в параллельном режиме на одном сервере (mpirun -n 4 ./mpi_hello_world) и на кластере (mpirun -n 4 --hostfile hosts_file ./mpi_hello_world) с использованием файла hosts_file содержащего имена серверов кластера.
Если во время компиляции выдает ошибку "gcc: error: libtool:: No such file or directory", то надо добавить путь к исполняемым файлам (например, прописать в .bashrc) "export PATH=/usr/lib64/mpi/gcc/openmpi/bin:$PATH".
- Расширить тестовое приложение mpi_hello_world: основной процесс отправляет параметры работы дочерним процессам, получает результаты и выполняет оценку времени работы; дочерние процессы получают задачу, выполняет вычисления и отправляет результат работы. Задачу придумать самим.
- Создать тестовое приложение с использованием OpenMP (пример исходного кода и make-файла), скомпилировать и запустить.
- Расширить тестовое приложение omp_hello добавив параллельную обработку цикла с оценкой времени работы. Задачу придумать самим.
Индивидуальная задача
Выполнение индивидуальной задачи подразумевает поиск алгоритма по выбранной теме, авторская реализация алгоритма с использованием технологий параллельной обработки данных и проведение серии экспериментов.
Результаты оформляются в виде отчета, содержащего:
- Описание алгоритма,
- Исходный код реализации,
- Оценка времени выполнения для 1, 2, 4, 6 и 8 параллельных процессов.
Приветствуется анализ вариантов параллелирования и его оценка.
Список тем.
Рекомендуемая литература
|