Международный научно-исследовательский журнал
▪
№ 5 (95) ▪ Часть 3 ▪ Май
95
Организация распараллеливания расчетов с использованием технологии OpenMP
предполагает использование
библиотечных
процедур,
специально
предназначенных
для
разработки
многопоточных
приложений,
функционирующих на многопроцессорных системах с общей памятью [8].
Таким образом, с одной стороны, в работе реализованы различные алгоритмы для распараллеливания метода
трехдиагональной прогонки, с другой стороны эти алгоритмы используют различные параллельные вычислительные
технологии.
Для выполнения численного эксперимента было разработано две программы в среде
программирования Visual
Studio 2017: на языке программирования С# с использование технологии Thread., на языке программирования C++ с
использованием технологии OpenMP.
В результате выполненного вычислительного эксперимента по исследованию эффективности параллельных
алгоритмов для решения систем линейных уравнений с трехдиагональной матрицей коэффициентов при неизвестных
были измерены время работы
T
(сек, мсек) и
ускорение
S
работы параллельных алгоритмов относительно
последовательных алгоритмов.
Применение системы расчета рассмотрено на тестовых данных,
например, для решения задачи распределения
температуры при заданных начальных и краевых условиях. Тестирование было проведено на одномерной задаче
теплопроводности с неявной схемой аппроксимации.
Размерность задачи варьировалась для
значений
N
от 1.0E+04 до 4.2E+07 в направлении
x
. Задача была рассчитана
в различных сочетаниях количества Thread – потоков и OpenMP-потоков.
Результаты сравнения времени расчета последовательного и параллельного алгоритмов встречной прогонки
показали, что эффект ускорения расчетов заметен для размерностей задачи
N
> 2
⋅
10
6
. Величина
ускорения достигает
предельного значения
S
1.6 для
N
> 9
10
6
. Дальнейшее увеличение размерности массива не приводит к увеличению
величины ускорения расчетов.
В случае блочного алгоритма сокращение времени расчета за счет увеличения числа потоков при использовании
технологии Thread заметно для размерностей
N
> 2.4
10
7
(см. рисунок 1а). При использовании OpenMP - технологии
эффект ускорения достигается для
N
, меньших на порядок, а общее время работы алгоритма сокращается примерно в
3-5 раз (см. рисунок 1б). При больших
N
эффективность распараллеливания очевидна и стремится к теоретическому
максимуму.
(а)
(б)
Рис. 1 – Время работы алгоритма блочной прогонки в зависимости от числа потоков
p
и размерности задачи
N
:
(
a)
- технология Thread, (
б)
- технология OpenMP