Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI

В статье рассмотрен программный подход к решению интегрального уравнения Фредгольма I рода методом регуляризации Тихонова, который заключается в использовании многопроцессорных компьютерных систем и стандарта параллельного программирования MPI....

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Datum:2008
1. Verfasser: Карпенко, Е.Ю.
Format: Artikel
Sprache:Russian
Veröffentlicht: Інститут кібернетики ім. В.М. Глушкова НАН України 2008
Schriftenreihe:Математичне та комп'ютерне моделювання. Серія: Фізико-математичні науки
Online Zugang:http://dspace.nbuv.gov.ua/handle/123456789/18679
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Zitieren:Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI / Е.Ю. Карпенко // Математичне та комп'ютерне моделювання. Серія: Технічні науки: зб. наук. пр. — Кам’янець-Подільський: Кам'янець-Подільськ. нац. ун-т, 2008. — Вип. 1. — С. 86-94. — Бібліогр.: 4 назв. — рос.

Institution

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-18679
record_format dspace
spelling irk-123456789-186792011-04-08T12:03:52Z Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI Карпенко, Е.Ю. В статье рассмотрен программный подход к решению интегрального уравнения Фредгольма I рода методом регуляризации Тихонова, который заключается в использовании многопроцессорных компьютерных систем и стандарта параллельного программирования MPI. The article reviewed the program approach to solving Fredholm integral equation I kind by Tikhonov regularization method, which is used a multiprocessor computer systems, and standard of parallel programming MPI. 2008 Article Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI / Е.Ю. Карпенко // Математичне та комп'ютерне моделювання. Серія: Технічні науки: зб. наук. пр. — Кам’янець-Подільський: Кам'янець-Подільськ. нац. ун-т, 2008. — Вип. 1. — С. 86-94. — Бібліогр.: 4 назв. — рос. XXXX-0060 http://dspace.nbuv.gov.ua/handle/123456789/18679 519.6:519.85 ru Математичне та комп'ютерне моделювання. Серія: Фізико-математичні науки Інститут кібернетики ім. В.М. Глушкова НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Russian
description В статье рассмотрен программный подход к решению интегрального уравнения Фредгольма I рода методом регуляризации Тихонова, который заключается в использовании многопроцессорных компьютерных систем и стандарта параллельного программирования MPI.
format Article
author Карпенко, Е.Ю.
spellingShingle Карпенко, Е.Ю.
Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI
Математичне та комп'ютерне моделювання. Серія: Фізико-математичні науки
author_facet Карпенко, Е.Ю.
author_sort Карпенко, Е.Ю.
title Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI
title_short Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI
title_full Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI
title_fullStr Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI
title_full_unstemmed Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI
title_sort параллельное решение интегральных уравнений фредгольма i рода методом регуляризации тихонова с использованием технологии mpi
publisher Інститут кібернетики ім. В.М. Глушкова НАН України
publishDate 2008
url http://dspace.nbuv.gov.ua/handle/123456789/18679
citation_txt Параллельное решение интегральных уравнений Фредгольма I рода методом регуляризации Тихонова с использованием технологии MPI / Е.Ю. Карпенко // Математичне та комп'ютерне моделювання. Серія: Технічні науки: зб. наук. пр. — Кам’янець-Подільський: Кам'янець-Подільськ. нац. ун-т, 2008. — Вип. 1. — С. 86-94. — Бібліогр.: 4 назв. — рос.
series Математичне та комп'ютерне моделювання. Серія: Фізико-математичні науки
work_keys_str_mv AT karpenkoeû parallelʹnoerešenieintegralʹnyhuravnenijfredgolʹmairodametodomregulârizaciitihonovasispolʹzovaniemtehnologiimpi
first_indexed 2025-07-02T19:37:26Z
last_indexed 2025-07-02T19:37:26Z
_version_ 1836565184410288128
fulltext Математичне та комп’ютерне моделювання 86 УДК 519.6:519.85 Е. Ю. Карпенко Институт проблем моделирования в энергетике им. Г. Е. Пухова НАН Украины, г. Киев ПАРАЛЛЕЛЬНОЕ РЕШЕНИЕ ИНТЕГРАЛЬНЫХ УРАВНЕНИЙ ФРЕДГОЛЬМА I РОДА МЕТОДОМ РЕГУЛЯРИЗАЦИИ ТИХОНОВА С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ MPI В статье рассмотрен программный подход к решению ин- тегрального уравнения Фредгольма I рода методом регуляри- зации Тихонова, который заключается в использовании мно- гопроцессорных компьютерных систем и стандарта парал- лельного программирования MPI. Ключевые слова: метод регуляризации Тихонова, инте- гральное уравнение Фредгольма, MPI, ScaLAPACK, mpich. Введение и постановка задачи. Целый ряд прикладных задач, таких как, восстановление непрерывного спектра в обратной задаче спектроскопии, редукция протяженных сигналов, восстановление сигналов в системе не являющейся динамической, распад клеток и радиоактивных элементов, вентиляция в легких и другие описывают- ся интегральным уравнением Фредгольма I рода [1]: dxcxfdssysxK b a ≤≤=∫ ),()(),( , (1) где ),( sxK , с математической точки зрения является ядром инте- грального уравнения (с физической, или технической – аппаратная функция, характеристика направленности и т.д.), )(xf – правая часть (выходной сигнал, сканирующая функция, индикаторный процесс и т.д.), )(sy – искомая функция (сигнал на входе и т.д.). Уравнение (1) занимает особое положение среди других инте- гральных уравнений, по причине своей некорректности (нарушается устойчивость решения по Адамару). Например, если решать уравнение (1) методом квадратур, заменяя интеграл конечной суммой по формуле трапеций, и решая полученную СЛАУ, то вместо истинного решения, как правило, получается знакопеременная “пила” большой амплитуды, которая при подстановке в интеграл, тем не менее, дает правую часть уравнения. При этом, чем меньше шаг разбиения и чем, казалось бы, точнее аппроксимируется интегральное уравнение посредством СЛАУ, тем грубее решение (больше амплитуда “пилы”). Аналогичная неус- тойчивость имеет место при решении уравнения (1) методами собст- венных функций, итераций, проекционными методами [2]. © Е. Ю. Карпенко, 2008 Серія: Технічні науки. Випуск 1 87 В настоящее время известно большое количество эффективных методов решения интегральных уравнений Фредгольма I-го рода. В основе большинства таких методов лежит сведение интегрального уравнения (каким либо способом) к СЛАУ. При этом если требуется повысить точность решения исходного интегрального уравнения, уве- личив размерность СЛАУ, то это, в свою очередь, приведет к пониже- нию скорости решения системы, а в некоторых случаях и к дефициту компьютерного ресурса (памяти). В таких случаях целесообразно ис- пользовать современные эффективные средства распараллеливания. Метод регуляризации Тихонова. Метод регуляризации Тихо- нова является продолжением развития метода наименьших квадратов (МНК) Гаусса и метода псевдо-обратной матрицы (МПОМ) Мура- Пенроуза (дающего нормальное решение). Рассмотрим сначала сущность метода применительно к опера- торному уравнению: 2,, LfyfAy ∈= , (2) где A – линейный оператор, f – заданная правая часть, а y – иско- мое решение. В методе регуляризации Тихонова ставятся два условия: условие минимизации невязки (как в МНК) и условие минимизации нормы решения (как в МПОМ). Получаем задачу условной минимизации, которая решается методом неопределенных множителей Лагранжа: yLL yfAy min22 22 =+− α , (3) где 0>α параметр регуляризации, играющий роль неопределенного множителя Лагранжа. Отсюда вытекает уравнение Тихонова: ( ) fAyAAE ** =+ αα , (4) вследствие чего мы получаем операторное уравнение второго рода. Метод регуляризации Тихонова устойчив, т.е. выполняется 3-й пункт корректности по Адамару и эта устойчивость заключается в следующем. Оператор AA* является положительно определенным, поэтому все его собственные значения вещественны и неотрицатель- ны. Наличие же слагаемого Eα увеличивает спектр на α , вследствие чего оператор AAE *+α становится обратимым и решение предста- вимо в виде: ( ) fAAAEy *1* − += αα . (5) Применительно к интегральному уравнению Фредгольма I рода dxcxfdssysxKAy b a ≤≤=≡ ∫ ),()(),( (6) Математичне та комп’ютерне моделювання 88 соотношение (4) приобретает вид интегрального уравнения Фред- гольма II рода с положительно определенным ядром: btatFdssystRty b a ≤≤=+ ∫ ),()(),()( ααα , (7) где ,),(),(),(),( ∫== d c dxsxKtxKtsRstR (8) .)(),()( ∫= d c dxxftxKtF (9) Численный алгоритм. Достаточно эффективным при числен- ном решении интегрального уравнения (7) является квадратурный метод. Пусть правая часть уравнения f (x) задана на неравномерной сет- ке узлов { }l iix 1= : dxxxc l =<<<= ...21 , а решение )(syα ищется на неравномерной сетке { }n jjs 1= , совпадаю- щей с −t сеткой: btststsa nn ==<<=<== ...2211 . Распишем интеграл в (7) по квадратурной формуле трапеций: nkFyRry k n j jkjjk ,1, 1 ==+∑ = α , (10) где ( )kk tyy α= , ( )jj syy α= , ( )jkkj stRR ,= , ( )kk tFF = . Аналогичным образом интегралы в (8) и (9) аппроксимируем конечными суммами по квадратурной формуле: ∑ = === l i ijikijkkj njkKKpRR 1 ,1,, , (11) ∑ = == l i iikik nkfKpF 1 ,1, , (12) где ( )kiik txKK ,= , ( )jiij sxKK ,= , ( )ii xff = , а jr и ip – коэффици- енты квадратурных формул. Запись (10) является СЛАУ относительно njy j ,1, = . При больших n время, затраченное на решение системы, играет заметную роль. Серія: Технічні науки. Випуск 1 89 Стандарт MPI. Наиболее распространенной технологией про- граммирования для параллельных компьютеров с распределенной памятью в настоящее время является MPI [3]. Основным способом взаимодействия параллельных процессов в таких системах является передача сообщений друг другу. Это и отражено в названии данной технологии Massage Passing Interface (интерфейс передачи сообщений). В модели программирования, которую поддерживает MPI, про- грамма порождает несколько процессов, взаимодействующих между собой с помощью обращений к подпрограммам передачи и приема сообщений. Все процессы порождаются один раз, образуя параллель- ную часть программы. При этом каждый процесс работает в своем адресном пространстве, никаких общих переменных или данных в MPI нет. Обычно, при инициализации MPI-программы создается фиксированный набор процессов, причем каждый процесс выполня- ется на своем процессоре. В этих процессах могут выполняться раз- ные программы, поэтому модель программирования MPI иногда на- зывают MPMD-моделью (Multiple Program Multiple Data – множество программ множество данных), в отличие от SPMD-модели, где на каждом процессоре выполняются только одинаковые задачи. Для локализации взаимодействия параллельных процессов про- граммы можно создавать группы процессов, предоставляя им отдель- ную среду для процессов – коммуникатор. Состав образуемых групп произволен. Группы могут полностью совпадать, входить одна в дру- гую, не пересекаться или пересекаться частично. Процессы могут взаимодействовать только внутри некоторого коммуникатора, сообще- ния, отправленные в разных коммуникаторах, не пересекаются и не мешают друг другу. При старте программы всегда считается, что все порожденные процессы работают в рамках всеобъемлющего коммуни- катора, имеющего предопределенное имя MPI_COMM_WORLD. Каждый процесс MPI программы имеет в каждой группе, в ко- торую он входит, уникальный атрибут – номер процесса, который является целым неотрицательным числом. Как уже было отмечено, основным способом общения процессов между собой является явная посылка сообщений. Каждое сообщение имеет несколько атрибутов, в частности, номер процесса-отправителя, номер процесса-получате- ля, идентификатор сообщения и другие. По идентификатору процесс, принимающий сообщение, например, может различить два сообще- ния, пришедшие к нему от одного и того же отправителя. MPICH (MPI CHameleon) представляет собой одну из реализа- ций спецификации MPI, которая поддерживает работу на большом числе платформ и с различными коммуникационными интерфейсами, в том числе TCP/IP. В настоящее время для решения стандартных задач, таких как, например, задачи линейной алгебры, разработаны библиотеки, по- строенные на основе стандарта MPI. Математичне та комп’ютерне моделювання 90 Использование библиотеки ScaLAPACK. ScaLAPACK является библиотекой высокоэффективных подпрограмм линейной алгебры раз- работанных для компьютерных систем с распределенной памятью, на основе стандартов параллельного программирования PVM или MPI [4]. Иерархия программных компонент библиотеки ScaLAPACK представлена на рис. 1. ScaLAPACK PBLAS Глобальные Локальные LAPACK BLAS BLACS MPI Рис. 1. Иерархия программных компонент библиотеки ScaLAPACK LAPACK (Linear Algebra PACKage) – библиотека, содержащая подпрограммы для решения систем линейных алгебраических урав- нений, метода наименьших квадратов, решения задач на собственные значения и вычисления сингулярных разложений. BLAS (Basic Linear Algebra Subprograms) – содержит подпро- граммы для наиболее распространенных операций линейной алгебры: скалярное произведение, матрично-векторное умножение, умножение матрицы на матрицу. PBLAS (Parallel Basic Linear Algebra Subprograms) – для упро- щения библиотеки ScaLAPACK и в связи с тем, что полезные инст- рументы не вошли в библиотеку LAPACK была разработана парал- лельная часть библиотеки BLAS. BLACS (Basic Linear Algebra Communication Subprograms) – библиотека передачи сообщений, приспособленная для линейной алгебры. Вычислительная модель разработана для одномерной и двумерной решетки процессов, в которой каждый процесс содержит часть матрицы или вектора. Процедуры и функции из локальных компонентов вызываются на одном процессе и их аргументы также хранятся только на одном процессе. В свою очередь глобальные компоненты содержат синхро- низированные параллельные подпрограммы, чьи аргументы пред- ставляют собой матрицы и векторы, распределенные по процессам. Серія: Технічні науки. Випуск 1 91 В основу подпрограмм ScaLAPACK положены блочные алго- ритмы, которые разработаны для минимизации передачи данных ме- жду различными уровнями памяти. Вызов любой подпрограммы из библиотеки ScaLAPACK состо- ит из 4-х базовых шагов: 1) инициализация решетки процессов; 2) распределение матрицы по решетки процессов; 3) вызов процедуры ScaLAPACK; 4) освобождение решетки процессов. Программный алгоритм. Для программной реализации в среде Microsoft Visual Studio 2005 Express Edition с использованием языка Visual Fortran 10 (Trial Version) был написан программный модуль, рассчитанный на решение задачи в компьютерной системе, состоя- щей из произвольного числа процессоров. Для организации стандарта параллельного программирования MPI использовался комплекс MPICH2. Алгоритм программной реализации решения интегрального уравнения Фредгольма І рода методом регуляризации Тихонова мо- жет быть представлен в виде последовательности следующих дейст- вий: 1) Описание глобальных и локальных переменных, массивов, подпрограмм, функций. Задание размеров матрицы ( N ), блока раз- биения ( NB ), максимального размера подматрицы ( MAXA ). 2) Инициализация BLACS: call blacs_pinfo(iam, nprocs) 3) Вычисление сетки процессов наиболее приближенной к квад- ратной: nprow = int(sqrt(real(nprocs))) npcol = nprocs/nprow 4) Инициализация решетки процессов: call blacs_get(-1, 0, ictxt) call blacs_gridinit(ictxt, 'row-major', nprow, npcol) call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) Процедура BLACS_GRIDINIT инициализирует решетку процес- сов с идентификатором ICTXT размера NPROW x NPCOL. После инициализации решетки процессов функция BLACS_GRIDINFO по- зволит узнать координаты процесса, вызвавшего ее. 5) Если процесс не попал в сетку он “отдыхает” if(myrow.ge.nprow.or.mycol.ge.npcol) go to 500 6) Инициализация массивов-дескрипторов для матриц A и B : call descinit(desca, n, n, nb, nb, 0, 0, ictxt, maxa, info) call descinit(descb, n, 1, nb, 1, 0, 0, ictxt, maxa, info) Математичне та комп’ютерне моделювання 92 Все глобальные матрицы перед вызовом процедуры ScaLA- PACK должны быть разбросаны по решетки процессов, для этого каждой матрице назначается так называемый массив-дескриптор, состоящий из 9 элементов. 7) Вычисление реальных размеров матрицы на процессоре: np = numroc(n, nb, myrow, 0, nprow) nq = numroc(n, nb, mycol, 0, npcol) 8) Вычисление начальных условий (шаг разбиения, сетка раз- биения, квадратурные коэффициенты) 9) Вычисление правой части системы (матрица B) и распределе- ние ее по решетке процессов (участвует только 1-я колонка сетки процессов). Правая часть интегрального уравнения берется из файла F.dat, который формируется служебной программой BUILD_F. if (mycol.eq.0) then open(unit=myrow, file='\\k0\mpi\projects\solve\debug\f.dat') read (myrow, * ) f do jj = 1, np j=indxl2g(jj, nb, myrow, 0, nprow) do i = 1, n b(jj)=b(jj)+at(i)*ker(x(i),x(j))*f(i) end do end do end if 10) Вызов подпрограммы формирования матрицы A: call matinit (a, desca, n, nb, maxa, x, at, myrow, mycol, nprow, npcol, np, nq) Данная подпрограмма служит для формирования матрицы A на процессах участвующих в программе. Следует отметить, что на каж- дом процессе формируется своя часть матрицы, которая отвечает сетке разбиения процессов и сетке разбиения самой матрицы. На процессах матрица A должна задаваться как одномерный массив (ну- мерация ведется по столбцам). 11) Формирования матрицы A на процессах согласно формулам (10)-(11): l=0 do ii=1, nq i=indxl2g(ii, nb, mycol, 0, npcol) do jj=1, np j=indxl2g(jj, nb, myrow, 0, nprow) l=l+1 temp=0 do k=1,n temp=temp+at(k)*ker(x(k),x(i))*ker(x(k),x(j)) end do Серія: Технічні науки. Випуск 1 93 aa(l)=at(i)*temp if (i.eq.j) then aa(l)=aa(l)+alpha end if end do end do Служебная функция INDXL2G позволяет перейти от локальных индексов в распределенной матрице к глобальным индексам в исходной. 12) Вызов подпрограммы из ScaLAPACK для решения СЛАУ методом LU разложения call pdgesv(n, 1, a, ia, ja, desca, ipiv, b, ib, jb, descb, info) 13) Посылка главному процессу (“мастеру”) решения от процес- сов первой колонки сетки if (myrow.gt.0.and.mycol.eq.0) then call mpi_send (b, np, mpi_double_precision, 0, 1, mpi_comm_world, ierr) end if 14) Часть программы, выполняемая главным процессом (“масте- ром”) – сбор решения. Получение решения от других процессов пер- вой колонки. do k=1,np j=indxl2g(k, nb, myrow, 0, nprow) y(j)=b(k) end do do i=1,nprow-1 source=int(npcol*i) call mpi_recv (temp, np, mpi_double_precision, source, 1, mpi_comm_world, status, ierr) row_of_send=status(mpi_source)/nprow do k=1,np j=indxl2g(k, nb, row_of_send, 0, nprow) y(j)=temp(k) end do end do 15) Закрытие BLACS: call blacs_gridexit(ictxt) call blacs_exit(0) 16) Для компиляции программы и для создания исполняемого файла необходимо пролиньковать следующие библиотеки: mpi.lib, fmpich2.lib, SCALAPACKd.lib, BLACSd.lib, BLACS_Finitd.lib, LAPACKd.lib, MATGENd.lib, extrasd.lib, BLASd.lib. Выводы. Заметный эффект от распараллеливания начинает на- блюдаться при решении систем с 1000 и более неизвестными. На кла- Математичне та комп’ютерне моделювання 94 стерных системах ситуация еще хуже. Разработчики пакета ScaLAPACK для многопроцессорных систем с приемлемым соотно- шением между производительностью узла и скоростью обмена дают следующую формулу для количества процессоров, которое рекомен- дуется использовать при решении задач линейной алгебры: 610/NMP ×= , (13) где M, N – размерность матрицы Или, другими словами, количество процессоров должно быть таково, чтобы на процессор приходился блок матрицы размером примерно 1000x1000. Эта формула, конечно, носит рекомендатель- ный характер, но, тем не менее, наглядно иллюстрирует, для задач какого масштаба разрабатывался пакет ScaLAPACK. Рост эффектив- ности распараллеливания при увеличении размера решаемой системы уравнений объясняется очень просто: при увеличении размерности решаемой системы уравнений объем вычислительной работы растет пропорционально n3, а объем обменов между процессорами пропор- ционально n2. Это снижает относительную долю коммуникационных затрат при увеличении размерности системы уравнений. При решении тестовых примеров были сформированы матрицы размерности (512х512, 1024х1024, 2048х2048), что позволило прове- рить эффективность решения системы на одном, двух и четырех про- цессорах. Как оказалось, рассмотренный в работе подход к расспара- леливанию формирования СЛАУ, получаемой при решении инте- грального уравнения Фредгольма I рода методом регуляризации Ти- хонова позволяет существенно повысить скорость формирования матрицы системы (n-кратное увеличение). Однако скорость решения получаемой СЛАУ падает, что вызвано относительно небольшими размерами матрицы. Список использованной литературы: 1. Сизиков В. С. Устойчивые методы обработки результатов измерений. Учебное пособие. – СПб.: СпецЛит, 1999. – 240 с. 2. Верлань А. Ф., Сизиков В. С. Интегральные уравнения: методы, алгорит- мы, программы: Справочное пособие. – К.: Наукова думка, 1986. – 544 с. 3. Немнюгин С. А., Стесик О. Л. Параллельное программирование для мно- гопроцессорных вычислительных систем – СПб.: БХВ-Петербург, 2002. – 400 с. 4. Интернет ресурс: http://www.netlib.org The article reviewed the program approach to solving Fredholm integral equation I kind by Tikhonov regularization method, which is used a multi- processor computer systems, and standard of parallel programming MPI. Key words: Tikhonov regularization method, Fredholm integral equa- tion, MPI, ScaLAPACK, mpich. Отримано: 05.06.2008 http://www.netlib.org