Параллелизация алгоритма Якоби решения дифференциальных уравнений с использованием Intel® Cilk Plus
Материалы к лабораторной работе Вы можете скачать здесь.
Задание 1 - Последовательная программа численного решения дифференциального уравнения Пуассона методом Якоби
Время на выполнение задания | 15 минут |
---|---|
Цель | Измерение производительности последовательной программы решения уравнения Пуассона методом Якоби |
Подготовка
Скопируйте папку cilk_lab3 с файлами демонстрационной решения уравнения Пуассона методом Якоби из папки classfiles/Lab03/WTemplates в папку classfiles/Lab03/Explorations.
Компиляция и запуск последовательного метода Якоби
- Перейдите в каталог classfiles/Lab03/Explorations/cilk_lab3 и откройте файл с решением Microsoft® Visual Studio 2010 cilk_lab3.sln. Скомпилируйте приложение, выбрав кнопку меню Build—>Build Solution.
- Обратите внимание, что инициализация задачи и вызов алгоритмов решения находится в функции main в файле p_jakobi.cpp, а их реализация содержится в заголовочном файле poisson.h. Убедитесь, что в тексте программы в файле p_jakobi.cpp закомментированы шаги 2-3 (активен вызов последовательного метода Якоби).
-
Запустите приложение, выбрав кнопку меню Debug—>Start Without Debugging.
Запишите время его выполнения в последовательном режиме:_______.
Повторите 2) не менее 5 раз и найдите среднее время выполнения:________.
- Сравните время решения при использовании методов Гаусса-Зейделя (лабораторная работа Intel® Cilk Plus.02) и Якоби. Как вы объясните полученные результаты?
Задание 2 - Параллельная программа численного решения дифференциального уравнения Пуассона методом Якоби с помощью OpenMP.
Время на выполнение задания | 25 минут |
---|---|
Цель | Измерение производительности параллельной программы решения уравнения Пуассона методом Якоби с помощью средств OpenMP |
Компиляция и запуск параллельного метода Якоби
- В тексте программы в файле p_jakobi.cpp раскомментируйте шаг 2 (тем самым станет активен вызов параллельного решения методом Якоби с помощью средств OpenMP).
- Запустите приложение, выбрав кнопку меню Debug—>Start Without Debugging. Запишите время его выполнения в параллельном режиме с использованием OpenMP:
При помощи изменения строчки omp_set_num_threads (n); в файле p_seidel.cpp можно менять число потоков OpenMP.
Повторите 2) не менее, чем по 5 раз для каждого значения числа потоков (от 2 до 4) и найдите среднее время выполнения в каждом случае:______
- Сравните полученный результат с результатом задания 1 и объясните причину сходства/различия.
Задание 3 - Параллельная программа численного решения дифференциального уравнения Пуассона методом Якоби с помощью с помощью средств Intel® Cilk Plus
Время на выполнение задания | 25 минут |
---|---|
Цель | Измерение производительности параллельной программы решения уравнения Пуассона методом Якоби с помощью средств OpenMP |
Компиляция и запуск параллельного метода Якоби
- В тексте программы в файле p_jakobi.cpp раскомментируйте шаг 3 (тем самым станет активен вызов параллельного решения методом Якоби с помощью средств Intel® CilkTM Plus).
- Запустите приложение, выбрав кнопку меню Debug—>Start Without Debugging. Запишите время его выполнения в параллельном режиме с использованием Cilk:_____
При помощи изменения строчки cilkrts_set_param ( " nworkers" , "n") ; в файле p_seidel.cpp можно менять число рабочих потоков Cilk.
Повторите 2) не менее, чем по 5 раз для каждого значения числа потоков (от 2 до 4) и найдите среднее время выполнения в каждом случае:______
- Сравните полученный результат с результатом заданий 1 и 2 и объясните причину сходства/различия.