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

Параллелизация метода волнового фронта решения уравнения Пуассона с использованием

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

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

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

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

Подготовка

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

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

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

    Примечание: при решении задачи методом волнового фронта рекомендуется повысить размерность задачи до 1000 (строчка кода const int Size = N;)

  3. Запустите приложение, выбрав кнопку меню Debug—>Start Without Debugging. Запишите время его выполнения в параллельном режиме с использованием OpenMP:_______
  4. Сравните полученный результат с результатами лабораторных работ Intel® Cilk Plus.02 (например, раскомментировав шаг 0, можно активировать решение той же задачи методом Гаусса-Зейделя) и Intel® Cilk Plus.03 и попробуйте объяснить причину сходства/различия.

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

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

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

  1. В тексте программы в файле p_цфмyакщте.cpp раскомментируйте шаг 2 (тем самым станет активен вызов параллельного решения методом волнового фронта с использованием Cilk). Примечание: при решении задачи методом волнового фронта рекомендуется повысить размерность задачи до 1000 (строчка кода const int Size = N;)
  2. Запустите приложение, выбрав кнопку меню Debug—>Start Without Debugging. Запишите время его выполнения в параллельном режиме с использованием Cilk:_____

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

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