Научная статья на тему 'ПРИМЕНЕНИЕ ТЕХНОЛОГИЙ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ'

ПРИМЕНЕНИЕ ТЕХНОЛОГИЙ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
188
30
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ / ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ / OPENMP

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Фирагин Никита Григорьевич

Параллельное программирование - одно из перспективных и востребованных направлений в области разработки программного обеспечения. В статье описаны принципы работы технологий параллельного программирования на примере вычисления интеграла с помощью OpenMP.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Фирагин Никита Григорьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPLICATION OF PARALLEL PROGRAMMING TECHNOLOGIES

Parallel programming is one of the most promising and demanded areas in the field of software development. The article describes the principles of operation of parallel programming technologies using the example of calculating an integral using OpenMP.

Текст научной работы на тему «ПРИМЕНЕНИЕ ТЕХНОЛОГИЙ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ»

Сигнал обладает заданными характеристиками:

• длина волны (X);

• скважность (длина молчания и отдельного импульса) (Т);

• частота модуляции (v);

• скважность между пакетами импульсов (ТП).

Через блок согласования с приёмников информация поступает на НС. Обрабатывается каждый поступающий входной сигнал с определением параметров сигнала X (Т, v, ТП). После проведения обработки и анализа информации, сигнал причисляется к ложному сигналу или полученному от ориентира. Полезный сигнал далее классифицируется. Класс зависит от того, в какой части посадочной полосы располагается ориентир, подающий летающему аппарату сигнал. После проведённой обработки всех поступивших сигналов НС автоматически выдаёт сведения обо всех сигнальных ориентирах и секторе их нахождения.

В рассмотренном примере, НС имеет четыре нейрона на входе, которые представлены вектором Х (Т, X, Тп, v) и четыре на выходе, по числу возможных классов. I-й нейрон имеет поляризацию b (поступает сигнал смещения), по четыре связи с весами Wij (входные сигналы Xj).

В процессе обучения подбираются значения весов сети. Функция выходных сигналов yj должна быть приближена к целевой функции (стоимостной функции).

Нейронные сети широко используются в анализе данных, а их модули входят в состав практически любой аналитической платформы. При этом решаются основные задачи анализа - численное предсказание, классификация, прогнозирование.

ИНС на логическом уровне моделирует нервную систему человека. Поэтому постоянно растёт интерес к сети, привлекается внимание специалистов разных областей. Глубокие нейронные сети - один из самых популярных подходов к созданию систем искусственного интеллекта. Применяется ИНС с успехом в системах управления, распознавания образов для диагностики, предсказания именно в тех областях, в которых традиционные методы оказываются особенно трудоёмкими и сложными. Сегодня уже всем понятно, что у ИНС большое будущее.

Список литературы /References

1. Пантелеев А.В. Методы оптимизации в примерах и задачах: учебное пособие /

A.В. Пантелеев, Т.А. Летова. 4-е изд., испр. Санкт-Петербург: Лань, 2021. 512 с.

2. Ростовцев В.С. Искусственные нейронные сети: учебник для вузов /

B.С. Ростовцев. 2-е изд., стер. Санкт-Петербург: Лань, 2021. 216 с.

3. Хливненко Л.В. Практика нейросетевого моделирования: учебное пособие для

вузов / Л.В. Хливненко, Ф.А. Пятакович. 2-е изд., стер. Санкт-Петербург: Лань,

2021. 200 с.

ПРИМЕНЕНИЕ ТЕХНОЛОГИЙ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ Фирагин Н.Г. Email: Firagin6114@scientifictext.ru

Фирагин Никита Григорьевич - студент, кафедра прикладной математики и искусственного интеллекта,

Институт информационных и вычислительных технологий Национальный исследовательский университет «МЭИ», г. Москва

Аннотация: параллельное программирование - одно из перспективных и востребованных направлений в области разработки программного обеспечения. В статье описаны принципы работы технологий параллельного программирования на примере вычисления интеграла с помощью OpenMP.

Ключевые слова: параллельные вычисления, параллельное программирование, OpenMP.

APPLICATION OF PARALLEL PROGRAMMING TECHNOLOGIES Firagin N.G.

Firagin Nikita Grigorievich - Student, DEPARTMENT OF APPLIED MATHEMATICS AND ARTIFICIAL INTELLIGENCE, INSTITUTE OF INFORMATION AND COMPUTING TECHNOLOGIES NATIONAL RESEARCH UNIVERSITY "MPEI", MOSCOW

Abstract: parallel programming is one of the most promising and demanded areas in the field of software development. The article describes the principles of operation of parallel programming technologies using the example of calculating an integral using OpenMP. Keywords: parallel computing, parallel programming, OpenMP.

УДК 519.68

Актуальным способом ускорения процесса вычислений является использование вычислительной техники, реализующей средства параллельной обработки данных. Параллельные вычисления не только сокращают время расчетов, но и обеспечивают возможность решения сложных и трудоемких задач.

OpenMP (Open Multi-Processing) - распространенная технология параллельного программирования, включающая набор директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с общей памятью.

Рассмотрим применение технологии параллельного программирования с помощью OpenMP на примере вычисления определенного интеграла методом центральных прямоугольников.

Постановка задачи: Требуется вычислить определенный интеграл на отрезке с заданной точность eps.

Графически определенный интеграл представляет собой площадь, ограниченную графиком подынтегральной функции, границами нижнего и верхнего пределов и осью абсцисс, поэтому вычисление интеграла можно заменить нахождением величины этой площади.

Разделим отрезок [а, Ъ] на n равных частей. Длина каждого отрезка h = (Ъ — а) /п. Точками деления являются

х0 = а, х1 = а + 1.5h, х2 = а + 2.5h,..., хп = Ь.

Вычислим в точках деления значения функции f (х) , т. е.

Уо = f (а), У1 = f teD^z = f (х2 ), ■ ■ - Уп = f (Ъ) .

Числа У о,у1 ,У2, ■ ■ -,Уп являются ординатами точек графика функции, соответствующих абсциссам .

Таким образом, вычисление определенного интеграла сводится к нахождению суммы n прямоугольников. Для достижения точности вычислений воспользуемся правилом Рунге.

Программа будет содержать два цикла, первый из которых суммирует n площадей прямоугольников, второй обеспечивает заданную точность.

Рис. 1. Параллельная реализация вычисления определенного интеграла по методу центральных

прямоугольников

Конструкциями параллельного цикла OpenMP возможно распараллелить первый цикл. В данном случае будет распараллеливаться функция нахождения определенного интеграла по методу центральных прямоугольников (нахождения суммы площадей n прямоугольников).

Код функции, осуществляющей вычисление определенного интеграла по методу центральных прямоугольников:

doublecentral_rectangles_integral(pointFuncf, doublea, doubleb, intn)

{

constdouble h = (b - a) / n; double sum = 0.0; #pragmaomp parallel for reduction(+:sum) for (inti = 0; i<n; i++) {

sum += f(a + ((i + 0.5)* h));

}

return (sum * h);

}

Код функции, обеспечивающий достижения заданной точности:

intmain()

{

setlocale(LC_ALL, "rus"); double a = 1; double b = 3;

doublestart_time = 0; //точка отсчета времени doubleeps = 1 * pow(10.0, -6); //заданная точность int n = 1; //начальное число шагов double p1, p0;

start_time = omp_get_wtime(); //засечение времени решения

pi = central_rectangles_integral(f, a, b, n); //первое приближение для интеграла

do

{

p0 = pi; n = 2 * n;

pi = central_rectangles_integral(f, a, b, n); }while (fabs(pi - p0) >eps); //сравнение приближений с заданной точностью double ti = omp_get_wtime() - start_time; printf ("Значение интеграла по методу центральных прямоугол: %lf ; Затраченное

время (в секундах): %lf\n", pi, ti); }

Код функции, представляющий подынтегральную функцию:

typedefdouble( *pointFunc)(double);

doublef(doublex)

{

return (-0.5 + i.3*pow(x, 2) + 7.i*pow(x, 3));

}

Вычисления выполнены для подынтегральной функции f (х) = — 0. 5 + 1 . 3 х2 + 7 . 1 х 3 на отрезке [ 1 ,3 ] с точностью eps =1х 1 0 " 6. В таблице приведены время и ускорение при реализации методов прямоугольника и Симпсона.

Таблица 1. Время и ускорение при реализации методов прямоугольника и Симпсона

Метод центральных прямоугольников Метод Симпсона

Количество потоков n Время t Ускорение a Время t Ускорение a

i 0,0121 1,00 119,242 1,00

2 0,0074 1,64 57,2430 2,08

3 0,0072 1,68 42,5576 2,80

4 0,0108 1,12 34,2075 3,49

5 0,0137 0,88 27,4989 4,34

6 0,0124 0,98 24,1346 4,94

7 0,0155 0,78 21,5326 5,54

8 0,0162 0,75 18,7310 6,37

9 0,0202 0,6 17,8359 6,69

10 0,0190 0,63 15,8616 7,52

11 0,0181 0,67 16,0529 7,42

12 0,0219 0,55 16,0524 7,43

Рис. 2. Зависимость времени решения от количества потоков

Рис. 3. Зависимость ускорения от количества потоков

Наилучшее время решения для метода центральных прямоугольников достигается при трех потоках, с увеличением потоков время ухудшается. Наилучшее время для метода Симпсона достигается при 10 потоках, далее с увеличением количества потоков время также ухудшается.

Список литературы /References

1. Основы параллельного программирования с использованием технологий MPI и OpenMP [Текст]: учеб. пособие / Р.В. Жалнин, Е.Н. Панюшкина, Е.Е. Пескова, П.А. Шаманаев. Саранск: Изд-во СВМО, 2013. 78 с.

2. Шамаева О.Ю., Чернецов А.М. Основы параллельного программирования с использованием технологий OpenMP и MPI. Учебное пособие. М.: Издательский дом МЭИ, 2016. 84 с.

3. Что такое OpenMP? [Электронный ресурс]. Режим доступа: http://parallel.ru/tech/tech_dev/openmp.html/ (дата обращения: 18.06.2021).

i Надоели баннеры? Вы всегда можете отключить рекламу.