Разработка интеллектуального программного обеспечения для обучения студентов приёмам распараллеливания вычислений
Методика численного решения краевой задачи для уравнения теплопроводности с использованием неявной конечно-разностной схемы. Применение алгоритма встречной прогонки для вычисления системы линейных уравнений с трехдиагональной матрицей коэффициентов.
Рубрика | Математика |
Вид | статья |
Язык | русский |
Дата добавления | 12.08.2020 |
Размер файла | 500,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Разработка интеллектуального программного обеспечения для обучения студентов приёмам распараллеливания вычислений
Ступников А.А., Гаврилова Н.М.
Аннотации
В работе содержится описание подхода к разработке интеллектуального программного обеспечения для выполнения учебных и научных исследований в области распараллеливания вычислений. На примере численного решения уравнения теплопроводности с использованием неявной схемы рассматриваются особенности организации распараллеливания метода трехдиагональной прогонки на многопроцессорной системе с общей памятью. Оценивается время расчета последовательного и параллельного алгоритмов. Приводятся результаты сравнения времени и ускорения при использовании разных алгоритмов распараллеливания и технологий реализации.
Ключевые слова: система линейных алгебраических трехточечных уравнений, метод трехдиагональной прогонки, распараллеливание прогонки, последовательный алгоритм, блочный алгоритм.
The paper describes an approach to the development of intelligent software for the implementation of educational and scientific research in the field of computing parallelization. We consider the organization features of parallelization in the tridiagonal sweep method on a multiprocessor system with shared memory using the numerical solution of the heat equation with an implicit scheme as an example. The authors estimate calculation time of sequential and parallel algorithms. The results of comparing time and acceleration using different parallelization algorithms and implementation technologies are presented.
Keywords: system of linear algebraic three-point equations, three-diagonal sweep method, parallel sweep parallelization, sequential algorithm, block algorithm.
В ходе численного решения задач, моделирующих физические процессы, основное внимание исследователь уделяет выбору подходящих методов решения и грамотной компьютерной реализации этих методов. Вопросы, связанные с визуализацией решения, внедрением результатов решения в другие проекты, повышением эффективности и скорости расчётов, обычно рассматриваются как второстепенные, не значимые для расчета конкретной задачи.
В рамках выполнения научных исследований решения одной задачи чаще всего бывает недостаточно, и исследователю приходится многократно выполнять целый комплекс основных и вспомогательных процедур, затрачивая значительное время на переключения между этапами.
Например, при изучении влияния характера источникового члена в задачах теплопроводности основное внимание уделяется численной реализации. При этом не меньшее время затрачивается на конвертацию полученных результатов в разные форматы как для визуального оценки полученных результатов, так и для дальнейшей обработки в специализированных пакетах с целью получения наглядного изображения исследуемого процесса. Исследователю приходится многократно повторять указанные шаги, с целью получения обобщающего вывода на основе комплекса исследований, что делает процесс исследования затратным по времени и допускающим ошибки человеческого фактора.
Авторами реализован подход, обеспечивающий соединение этапов научных исследований расчетно-аналитического типа в виде программного комплекса, позволяющего выполнять расчёты, аккумулировать результаты и формировать динамические карты распределения результатов для визуального анализа возникающих ситуаций. Построение подобных динамических карт требует как повышения скорости работы вычислительных устройств, так и одновременного решения на них различных задач.
Подобный подход важен в частности и для других задач, имеющих практический интерес, например, для задач, связанных с распространением загрязнений, для диспетчера, который следит за состоянием температурного режима здания, и т.п. Полученные результаты, в том числе, могут быть использованы для отслеживания, выявления и оповещения о каких-то критических ситуациях, в том числе, чисто визуально.
В данной работе рассматривается реализация первого блока этого комплекса, обеспечивающего распараллеливание расчетного алгоритма. Важным фактором реализации является оценка эффективности различных подходов к организации способов распараллеливания вычислительных процессов.
Численное решение краевой задачи для уравнения теплопроводности с использованием неявной конечно-разностной схемы сводится к решению системы линейных алгебраических уравнений, имеющей специальный (трехдиагональный) вид. Для нахождения решения таких систем используется метод прогонки, который реализуется в последовательном режиме. Для требуемого ускорения расчетов при большом объеме начальных данных и высокой требуемой точности вычисления необходимо использовать параллельные алгоритмы для решения СЛАУ с трехдиагональной матрицей коэффициентов при неизвестных.
Так как данная разработка предназначена для использования в образовательном процессе для студентов, изучающих как численное моделирование, так и методы распараллеливания вычислений, были выполнены несколько реализаций распараллеливания алгоритма прогонки на общей памяти средствами OpenMP и с использованием технологии организации параллельных вычислений на основе потоков.
Особенности организации параллельных вычислений с использованием многопроцессорных вычислительных систем рассматриваются в работах [1], [2], [3]. Варианты организации ускорения параллельных расчетов задачи теплопроводности рассматривались разными коллективами авторов. Очевидно, что практический интерес вызывают работы, связанные с реализацией неявной разностной схемы для уравнения теплопроводности с использованием методов распараллеливания трехдиагональной прогонки [6], [7], [9]. Среди различных способов распараллеливания вычислений при решении систем алгебраических уравнений с трехдиагональной матрицей рассматривались алгоритмы, вычислительная практика использования которых достаточно известна: метод встречной прогонки, метод параметрической прогонки (метод Яненко [4]), параллельно-конвейерный метод [6], метод параллельно-циклической редукции, горизонтально-блочный параллельный алгоритм [5].
В данной работе для распараллеливания метода трехдиагональной прогонки рассматривается использование алгоритма встречной прогонки и блочного алгоритма на системах с общей памятью.
Кратко рассмотрим особенности этих подходов для системы линейных уравнений с трехдиагональной матрицей коэффициентов при неизвестных вида:
(1)
Прямой ход метода правой прогонки позволяет вычислить прогоночные коэффициенты по формулам:
(2)
По формулам обратного хода правой прогонки вычисляются неизвестные .
(3)
Для выполнения левой прогонки расчётные формулы строятся аналогично.
Прямой ход:
(4)
Обратный ход:
(5)
Алгоритм встречной прогонки подразумевает независимое применение обоих методов, что позволяет одновременно использовать два параллельных потока, реализующих эти методы. Первый из потоков, реализуя метод правой прогонки для уравнений с номерами , вычисляет коэффициенты по формулам (1) и (2). Вычисление прогоночных коэффициентов (4) метода левой прогонки для уравнений с номерами выполняется во втором потоке.
Сопряжение решений обоих потоков в виде (3) и (5) происходит при . Здесь значение , присутствующее в результатах обеих прогонок, находится из системы двух уравнений:
линейный уравнение численный
(6)
Определив значение , можно найти все , при в первом потоке, и все значения , при во втором потоке.
Время решения системы последовательным методом прогонки при больших значения размерности системы определяется как , где ф время выполнения одной операции. При параллельной реализации методом встречной прогонки время работы алгоритма можно оценить, как , где д - время обслуживания потоков, затрачиваемое при создании и закрытии параллельной секции. В обоих случаях при увеличении размера системы время расчета возрастает линейно, но параллельный алгоритм сокращает время примерно в 2 раза.
Большее ускорение можно получить при использовании для распараллеливания блочного алгоритма [5], позволяющего нагружать расчетами большее число процессоров (потоков p>2).
Алгоритм блочной прогонки осуществляет исключение поддиагональных элементов для каждой полосы размера строк основной матрицы, т.е. k-й поток обрабатывает строки с номерами Например, расчеты для матрицы системы размерности n=12 и числе потоков p=3, сводятся к параллельному решению трех систем размерности m=4.
Поскольку каждая полоса матрицы, соответствующая потоку с номером k, (кроме k=1) содержит по три неизвестных в каждой строке, то после прямого хода в каждой полосе, за исключением первой, появится новый столбец коэффициентов.
Формулы прямого хода алгоритма горизонтально - блочной прогонки позволяют вычислить прогоночные коэффициенты б, в и г для каждой полосы (потока) размера по формулам (при p=1 верны формулы правой прогонки (2)):
(7)
Использование в блочном алгоритме формул обратного хода позволяет в каждом потоке исключить наддиагональные элементы.
Обратный ход метода вычисляет прогоночные коэффициенты m, l, k:
(8)
В итоге матрица коэффициентов исходной системы уравнений принимает блочный вид.
Затем, с помощью найденных коэффициентов, формируется система уравнений размера () с трехдиагональной матрицей, состоящая из уравнений на нижних границах каждой полосы вида:
с коэффициентами:
(9)
Ее решение находится обычным последовательным методом прогонки.
Далее, с помощью найденных граничных значений неизвестных каждой полосы, остальные неизвестные (внутренние переменные в каждом блоке) находятся по формулам:
(10)
Эти значения опять можно вычислять независимо в каждом потоке.
Общую трудоемкость параллельного метода прогонки (p - число процессоров, m - число полос в матрице) можно оценить как .
Показатели ускорения и эффективности в соответствии с [7] оцениваются по формулам:
Существуют различные подходы для организации параллельных вычислений на вычислительных системах с общей памятью. Авторами использованы технологии организации параллельных вычислений на основе потоков (класс Thread из библиотеки .NET), предполагающие ручное управление аспектами распараллеливания, и технологии OpenMP, использующей встроенную библиотеку организации распараллеливания.
Организация параллельной обработки данных с использованием потоков предполагает, что программист сам устанавливает сколько данных организуется в тот или иной поток, как он работает. Это трудоемкий процесс, но в некоторых случаях это позволяет четко контролировать процесс вычислений и производить его мониторинг.
Организация распараллеливания расчетов с использованием технологии OpenMP предполагает использование библиотечных процедур, специально предназначенных для разработки многопоточных приложений, функционирующих на многопроцессорных системах с общей памятью [8].
Таким образом, с одной стороны, в работе реализованы различные алгоритмы для распараллеливания метода трехдиагональной прогонки, с другой стороны эти алгоритмы используют различные параллельные вычислительные технологии.
Для выполнения численного эксперимента было разработано две программы в среде программирования Visual Studio 2017: на языке программирования С# с использование технологии Thread., на языке программирования C++ с использованием технологии OpenMP.
В результате выполненного вычислительного эксперимента по исследованию эффективности параллельных алгоритмов для решения систем линейных уравнений с трехдиагональной матрицей коэффициентов при неизвестных были измерены время работы T (сек, мсек) и ускорение S работы параллельных алгоритмов относительно последовательных алгоритмов.
Применение системы расчета рассмотрено на тестовых данных, например, для решения задачи распределения температуры при заданных начальных и краевых условиях. Тестирование было проведено на одномерной задаче теплопроводности с неявной схемой аппроксимации.
Размерность задачи варьировалась для значений N от 1.0E+04 до 4.2E+07 в направлении x. Задача была рассчитана в различных сочетаниях количества Thread - потоков и OpenMP-потоков.
Результаты сравнения времени расчета последовательного и параллельного алгоритмов встречной прогонки показали, что эффект ускорения расчетов заметен для размерностей задачи N> 2?106. Величина ускорения достигает предельного значения S ? 1.6 для N> 9Ч106. Дальнейшее увеличение размерности массива не приводит к увеличению величины ускорения расчетов.
В случае блочного алгоритма сокращение времени расчета за счет увеличения числа потоков при использовании технологии Thread заметно для размерностей N> 2.4Ч107 (см. рисунок 1а). При использовании OpenMP - технологии эффект ускорения достигается для N, меньших на порядок, а общее время работы алгоритма сокращается примерно в 3-5 раз (см. рисунок 1б). При больших N эффективность распараллеливания очевидна и стремится к теоретическому максимуму.
Рис. 1 - Время работы алгоритма блочной прогонки в зависимости от числа потоков p и размерности задачи N:
(a) - технология Thread, (б) - технология OpenMP
Разработанное программное обеспечение было апробировано на практических занятиях со студентами при изучении темы «Автоматизированные системы научных исследований» для моделирования процесса массопереноса с использованием распределенных вычислений. Это позволило в рамках одного программного продукта в динамике отслеживать развитие изучаемого процесса с возможностью изменять параметры задачи.
Предлагаемый подход и, соответственно, методы станут более востребованы для решения задач, когда помимо проведения самих расчётов особое значение приобретает и параллельная визуализация результатов расчета для того, чтобы можно было наглядно видеть то, каким образом идут вычисления. Исследователь получает средство, которое позволяет в реальном времени с использованием технологий параллельных расчетов получать визуальный результат моделирования процесса распространения температуры в исследуемой области.
Список литературы
1. Воеводин В.В. Параллельные вычисления/ В.В. Воеводин, Вл. В. Воеводин - СПб.: БХВ-Петербург, 2002. - 608с.
2. Гергель В.П. Основы параллельных вычислений для многопроцессорных вычислительных систем./ Гергель В.П., Стронгин Р.Г. - Н. Новгород, Изд-во ННГУ, 2003. - 178 с.
3. Гергель В.П. Теория и практика параллельных вычислений./ Гергель В.П. - М.: БИНОМ, 2007. - 424 с.
4. Яненко Н.Н. Об организации параллельных вычислений и «распараллеливании» прогонки / Яненко Н.Н., Коновалов А.Н., Бугров А.Н., Шустов Г.В. // Численные методы механики сплошной среды. 1978.Т.9. №7. С.139-146.
5. Образовательный комплекс «Параллельные численные методы» Лекционные материалы Баркалов К.А. [Электронный ресурс] Нижегородский государственный университет им. Н.И. Лобачевского Факультет вычислительной математики и кибернетики 2011 г. URL: http://www.hpcc.unn.ru/?doc=491. (дата обращения: 16.02.2020)
6. Ильин С.А. Распараллеливание схемы покомпонентного расщепления для численного решения уравнения теплопроводности . Ильин С.А., Старченко А.В.// Параллельные вычислительные технологии (ПаВТ-2015): Труды международной научной конференции (Екатеринбург, 2015 г.). Челябинск: ЮУрГУ, 2015. С. 399-402.
7. Федоров А. А. Метод двухуровневого распараллеливания прогонки для решения трехдиагональных линейных систем на гибридных ЭВМ с многоядерными сопроцессорами, . Федоров А. А., Быков А. Н. // Вычислительные методы и программирование, 2016, Т.17, вып. 3, С 234 - 244.
8. Антонов А. С. Параллельное программирование с использованием технологии OpenMP: учебное пособие / А. С. Антонов // М.: Издательство МГУ, 2009. - 77 с.
9. Головашкин Д.Л.Ускорение вычислений по блочным алгоритмам разностного решения уравнения теплопроводности. СБОРНИК ТРУДОВ ИТНТ. Головашкин Д.Л., Яблокова Л.В. Резник И.Д. - 2019. С. 601-607.
Размещено на Allbest.ru
...Подобные документы
Параллельные методы решения систем линейных уравнений с ленточными матрицами. Метод "встречной прогонки". Реализация метода циклической редукции. Применение метода Гаусса к системам с пятидиагональной матрицей. Результаты численного эксперимента.
курсовая работа [661,7 K], добавлен 21.10.2013Последовательность решения линейной краевой задачи. Особенности метода прогонки. Алгоритм метода конечных разностей: построение сетки в заданной области, замена дифференциального оператора. Решение СЛАУ методом Гаусса, конечно-разностные уравнения.
контрольная работа [366,5 K], добавлен 28.07.2013Общая характеристика параболических дифференциальных уравнений на примере уравнения теплопроводности. Основные определения и конечно-разностные схемы. Решение дифференциальных уравнений параболического типа методом сеток или методом конечных разностей.
контрольная работа [835,6 K], добавлен 27.04.2011Метод главных элементов, расширенная матрица, состоящая из коэффициентов системы и свободных членов. Метод квадратных корней для решения систем с симметричной матрицей коэффициентов. Практическая реализация метода Халецкого: программа на языке Pascal.
контрольная работа [761,7 K], добавлен 22.08.2010Сущность методов сведения краевой задачи к задаче Коши и алгоритмы их реализации на ПЭВМ. Применение метода стрельбы (пристрелки) для линейной краевой задачи, определение погрешности вычислений. Решение уравнения сшивания для нелинейной краевой задачи.
методичка [335,0 K], добавлен 02.03.2010Порядок и принципы составления дифференциального уравнения, методика нахождения неизвестных значений. Замена исходного дифференциального уравнения на систему n-линейных уравнений относительно n-неизвестных. Формирование и решение системы уравнений.
задача [118,8 K], добавлен 20.09.2013Правила вычисления коэффициентов n-образов. Рассмотрение алгоритмов решения линейных ОДУ с переменными коэффициентами второго и произвольного порядков. Общепринятые способы определения частного решения неоднородного дифференциального уравнения.
книга [1,7 M], добавлен 03.10.2011Анализ методов решения систем дифференциальных уравнений, которыми можно описать поведение материальных точек в силовом поле, законы химической кинетики, уравнения электрических цепей. Этапы решения задачи Коши для системы дифференциальных уравнений.
курсовая работа [791,0 K], добавлен 12.06.2010Уравнения параболического типа. Разностные схемы для уравнения теплопроводности, задача Коши. Явная и неявная разностные схемы. Применение двухслойных разностных шаблонов. Устойчивость двухслойных разностных схем. Решение задач методом прогонки.
лекция [494,0 K], добавлен 28.06.2009Решение краевой задачи. Методы конечно-разностных, центрально-разностных отношений и метод прогонки. Приближенное решение линейного дифференциального уравнения второго порядка с помощью методов Галеркина, Ритца и коллокации, сравнение результов.
курсовая работа [596,2 K], добавлен 27.04.2011Понятие волнового уравнения, описывающего различные виды колебаний. Рассмотрение явной разностной схемы "крест" для решения данной задачи. Нахождение решений на нулевом и первом слоях с помощью начальных условий. Виды и решения интегральных уравнений.
презентация [240,6 K], добавлен 18.04.2013Банаховы функциональные пространства. Постановка краевой задачи и исследование ее однозначной разрешимости и отрицательности функции Грина. Признаки существования решения краевой задачи для нелинейного функционально-дифференциального уравнения.
курсовая работа [440,4 K], добавлен 27.05.2015Способы решения системы линейных алгебраических уравнений: по правилу Крамера, методом матричным и Жордана-Гаусса. Анализ решения задачи методом искусственного базиса. Характеристика основной матрицы, составленной из коэффициентов системы при переменных.
контрольная работа [951,8 K], добавлен 16.02.2012Решение дифференциальных уравнений в частных производных. Метод минимальных невязок, минимальных поправок, скорейшего спуска, сопряженных градиентов. Алгоритмы и блок-схемы решения. Руководство пользователя программы. Решение системы с матрицей.
курсовая работа [380,3 K], добавлен 21.01.2014Метод Гаусса–Жордана: определение типа системы, запись общего решения и базиса. Выражение свободных переменных с использованием матричного исчисления. Нахождение координат вектора в базисе. Решение системы уравнений по правилу Крамера и обратной матрицей.
контрольная работа [200,4 K], добавлен 17.12.2010Описание общих принципов метода сеток, его применение к решению параболических уравнений. Исследование разрешимости получаемой системы разностных уравнений. Разработка программы для численного решения поставленной задачи, выполнение тестовых расчетов.
курсовая работа [165,8 K], добавлен 12.10.2009Особенности решения обыкновенного линейного неоднородного дифференциального уравнения второго порядка с заданными граничными условиями методом конечной разности. Составление трехдиагональной матрицы. Реализация решения в программе Microsoft Office Excel.
курсовая работа [1,4 M], добавлен 23.12.2013Метод разделения переменных в задаче Штурма-Лиувилля. Единственность решения смешанной краевой задачи, реализуемая методом априорных оценок. Постановка и решение смешанной краевой задачи для нелокального волнового уравнения с дробной производной.
курсовая работа [1003,8 K], добавлен 29.11.2014Общий вид системы линейных уравнений и ее основные понятия. Правило Крамера и особенности его применения в системе уравнений. Метод Гаусса решения общей системы линейных уравнений. Использование критерия совместности общей системы линейных уравнений.
контрольная работа [35,1 K], добавлен 24.06.2009Способы решения системы уравнений с двумя переменными. Прямая как график линейного уравнения. Использование способов подстановки и сложения при решении систем линейных уравнений с двумя переменными. Решение системы линейных уравнений методом Гаусса.
реферат [532,7 K], добавлен 10.11.2009