Опубликован: 19.10.2012 | Доступ: свободный | Студентов: 299 / 65 | Длительность: 05:51:00
Самостоятельная работа 3:

Параллелизация алгоритма Якоби решения дифференциальных уравнений с использованием Intel® Cilk Plus

Аннотация: На примере задачи о численном решении уравнения Пуассона рассматривается организация параллельных вычислений с помощью Intel® CilkTM Plus и OpenMP. Предлагается сравнить эффективность этих подходов с эффективностью последовательного алгоритма.

Материалы к лабораторной работе Вы можете скачать здесь.

Задание 1 - Последовательная программа численного решения дифференциального уравнения Пуассона методом Якоби

Время на выполнение задания 15 минут
Цель Измерение производительности последовательной программы решения уравнения Пуассона методом Якоби

Подготовка

Скопируйте папку cilk_lab3 с файлами демонстрационной решения уравнения Пуассона методом Якоби из папки classfiles/Lab03/WTemplates в папку classfiles/Lab03/Explorations.

Компиляция и запуск последовательного метода Якоби

  1. Перейдите в каталог classfiles/Lab03/Explorations/cilk_lab3 и откройте файл с решением Microsoft® Visual Studio 2010 cilk_lab3.sln. Скомпилируйте приложение, выбрав кнопку меню Build—>Build Solution.
  2. Обратите внимание, что инициализация задачи и вызов алгоритмов решения находится в функции main в файле p_jakobi.cpp, а их реализация содержится в заголовочном файле poisson.h. Убедитесь, что в тексте программы в файле p_jakobi.cpp закомментированы шаги 2-3 (активен вызов последовательного метода Якоби).
  3. Запустите приложение, выбрав кнопку меню Debug—>Start Without Debugging.

    Запишите время его выполнения в последовательном режиме:_______.

    Повторите 2) не менее 5 раз и найдите среднее время выполнения:________.

  4. Сравните время решения при использовании методов Гаусса-Зейделя (лабораторная работа Intel® Cilk Plus.02) и Якоби. Как вы объясните полученные результаты?

Задание 2 - Параллельная программа численного решения дифференциального уравнения Пуассона методом Якоби с помощью OpenMP.

Время на выполнение задания 25 минут
Цель Измерение производительности параллельной программы решения уравнения Пуассона методом Якоби с помощью средств OpenMP

Компиляция и запуск параллельного метода Якоби

  1. В тексте программы в файле p_jakobi.cpp раскомментируйте шаг 2 (тем самым станет активен вызов параллельного решения методом Якоби с помощью средств OpenMP).
  2. Запустите приложение, выбрав кнопку меню Debug—>Start Without Debugging. Запишите время его выполнения в параллельном режиме с использованием OpenMP:

    При помощи изменения строчки omp_set_num_threads (n); в файле p_seidel.cpp можно менять число потоков OpenMP.

    Повторите 2) не менее, чем по 5 раз для каждого значения числа потоков (от 2 до 4) и найдите среднее время выполнения в каждом случае:______

  3. Сравните полученный результат с результатом задания 1 и объясните причину сходства/различия.

Задание 3 - Параллельная программа численного решения дифференциального уравнения Пуассона методом Якоби с помощью с помощью средств Intel® Cilk Plus

Время на выполнение задания 25 минут
Цель Измерение производительности параллельной программы решения уравнения Пуассона методом Якоби с помощью средств OpenMP

Компиляция и запуск параллельного метода Якоби

  1. В тексте программы в файле p_jakobi.cpp раскомментируйте шаг 3 (тем самым станет активен вызов параллельного решения методом Якоби с помощью средств Intel® CilkTM Plus).
  2. Запустите приложение, выбрав кнопку меню Debug—>Start Without Debugging. Запишите время его выполнения в параллельном режиме с использованием Cilk:_____

    При помощи изменения строчки cilkrts_set_param ( " nworkers" , "n") ; в файле p_seidel.cpp можно менять число рабочих потоков Cilk.

    Повторите 2) не менее, чем по 5 раз для каждого значения числа потоков (от 2 до 4) и найдите среднее время выполнения в каждом случае:______

  3. Сравните полученный результат с результатом заданий 1 и 2 и объясните причину сходства/различия.