Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)
 МЕЖДУНАРОДНАЯ ЗАОЧНАЯ НАУЧНО-ПРАКТИЧЕСКАЯ КОНФЕРЕНЦИЯ   «ЕСТЕСТВЕННЫЕ И МАТЕМАТИЧЕСКИЕ НАУКИ В СОВРЕМЕННОМ МИРЕ»

Статья опубликована в рамках: XLIII Международной научно-практической конференции «Естественные и математические науки в современном мире» (Россия, г. Новосибирск, 06 июня 2016 г.)

Наука: Информационные технологии

Секция: Математическое моделирование, численные методы и комплексы программ

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Чашин Ю.Г., Деев В.В. ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ MPI ПРИ РАСПАРАЛЛЕЛИВАНИИ ИНТЕРПОЛЯЦИИ МЕТОДОМ КУБИЧЕСКОГО СПЛАЙНА // Естественные и математические науки в современном мире: сб. ст. по матер. XLIII междунар. науч.-практ. конф. № 6(41). – Новосибирск: СибАК, 2016. – С. 38-43.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ MPI ПРИ РАСПАРАЛЛЕЛИВАНИИ ИНТЕРПОЛЯЦИИ МЕТОДОМ КУБИЧЕСКОГО СПЛАЙНА

Чашин Юрий Геннадьевич

студент, Белгородский Государственный Национальный исследовательский Университет,

РФ, г. Белгород

Деев Виталий Владимирович

студент, Белгородский Государственный Национальный исследовательский Университет,

РФ, г. Белгород

USE OF MPI IN PARALLELIZATION OF CUBIC SPLINE INTERPOLATION METHOD

Yuri Chashin

candidate of Science., assistant professor of mathematical and software support of information systems,

Belgorod State National Research University

Russia, Belgorod

Vitaly Deev

student, Belgorod State National Research University,

Russia, Belgorod

 

АННОТАЦИЯ

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

ABSTRACT

The purpose of the article is to review the parallelization method cubic spline interpolation. The analysis used the input node values on the example of the sine function. During the review it was calculated key performance indicators of the parallel algorithm, compared with sequential algorithms.

 

Ключевые слова: MPI; параллельные вычисления; интерполяция.

Keywords: The MPI; parallel computing; interpolation.

 

Параллельные вычисления – одна из наиболее актуальных областей вычислительных наук в последнее десятилетие. Актуальность данной области связана прежде всего с бурным развитием численного моделирования. Численное моделирование является промежуточным элементом между аналитическими методами изучения и физическими экспериментами [1]. Рост количества задач, для решения которых необходимы параллельные вычисления обусловлен:

  • Возможностью изучать явления, которые затруднительно, по некоторым причинам, изучить экспериментально.
  • Необходимостью управления сложными промышленными и технологическими процессами в режиме реального времени. И в условиях неопределенности [2].
  • Ростом числа задач, для решения которых необходимо обрабатывать гигантские объемы информации.

Помимо всего прочего процессоры приближаются к пределу тактовой частоты. Исторически сложилось, что выполняется закон Мура: каждые 18 месяцев производительность вычислительных систем увеличивается в 2 раза. До 21 века производительность процессов увеличивалась за счет повышения тактовой частоты. Главным тормозом здесь служило энергопотребление: при увеличении тактовой частоты на 20 %, энергопотребление возрастало на 73 % [3]. Поэтому было решено пойти другим путем. Производители процессоров стали уделять больше внимания реализации параллелизма, нежели тактовой частоте процессоров. Это достигается за счет реализации многоядерной архитектуры. Разместить на одном кристалле процессора несколько упрощенных процессоров, у которых тактовая частота была занижена, а функции АЛУ упрощены. Практически все современные устройства имеют многопроцессорную архитектуру (суперкомпьютеры, ПК, мобильные устройства).

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

Сплайны имеют многочисленные применения как в математической теории, так и в прикладной математике (в частности, в разнообразных вычислительных программах). В частности, сплайны двух переменных интенсивно используются для задания поверхностей в различных системах компьютерного моделирования. Сплайны двух аргументов называют би-сплайнами (например, бикубический сплайн), которые являются двумерными сплайнами, моделирующими поверхности. Их часто путают с B-сплайнами (базисными сплайнами), которые являются одномерными и в линейной комбинации составляют кривые — каркас для «натягивания» поверхностей. Также из базисных сплайнов возможно составить трёхмерную конструкцию для моделирования объёмных тел.

Алгоритм вычисления можно разделить на две части:

  • Вычисление коэффициентов в узлах интерполяции.
  • Вычисление значений сплайна в заданной точке.

Первый этап не является таким трудоемким, по сравнению со вторым,

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

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

 

Рисунок 1. Пример распределения данных между процессами

 

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

 

Рисунок 2. Схема работы MPI_Gatherv

 

После того, как все данные собраны на одном процессе выполнение алгоритма окончено.

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

Таблица 1.

Результат выполнения на различных наборах данных

Размерность

Последовательно

(1 процесс), сек

2 процесса, сек

4 процесса, сек

31101

0.00128654

0.000809977

0.000403943

311017

0.0115795

0.00671721

0.00318956

31101767

0.98814

0.528883

0,261672

188495559

6.56067

3.44094

1.69863

 

 

Ускорение при выполнении программы на 2 и 4 процессах по сравнению с последовательным выполнением представлено в таблице 2.

Таблица 2.

Коэффициенты ускорения программы

Размерность

Ускорение по сравнению с последовательным выполнением

2 процесса

4 процесса

31101

1,588

3,1849

311017

1,723

3,6304

31101767

1,872

3,776

188495559

1,907

3,8654

 

 

Соотношение эффективности выполнения программы на 2 и 4 процессах по сравнению с параллельным выполнением представлено в таблице 3.

Таблица 3.

Эффективность программы по сравнению с последовательным выполнением

Размерность

Эффективность по сравнению с последовательным выполнением

2 процесса

4 процесса

31101

0,794

0,796225

311017

0,8615

0,9076

31101767

0,936

0,944

188495559

0,9535

0,96635

 

 

Как видно из таблиц 2 и 3 с увеличением объема вычислений увеличивается ускорение вычислений, а также эффективность. Это обусловлено тем, что на создание процессов и обмен сообщениями между ними необходимы некоторые издержки. С увеличением объемов данных эти издержки становятся не такими существенными, как на небольших объемах.

Исследовав эффективность разработанного алгоритма, можно прийти к выводу, что использование технологии MPI для создания параллельных приложений значительно повышает скорость вычислений, а ускорение растет с ростом количества вычислений, но достигает своего предела. Так же ускорение не может быть равным количеству вычислителей из-за издержек, как было сказано выше.

 

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

  1. Букатов А.А., Дацюк В.Н., Жегуло А.И. Программирование многопроцессорных вычислительных систем. – Ростов-на-Дону: ООО «ЦВВР», 2003. – 208 с. – ISBN 5-94153-062-5.
  2. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. – М.: Мир, 1982. – 416 с.
  3. Эра многоядерных энергоэффективных процессоров – [Электронный ресурс] – режим доступа – http://compress.ru/article.aspx?id=16962 (Дата обращения: 03.06.2016).
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом