Научная статья на тему 'Распараллеливание циклов на основе автоматического анализа информационных зависимостей'

Распараллеливание циклов на основе автоматического анализа информационных зависимостей Текст научной статьи по специальности «Математика»

CC BY
289
84
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Символ науки
Область наук
Ключевые слова
ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ / ИНФОРМАЦИОННЫЕ ЗАВИСИМОСТИ / РЕШЕТЧАТЫЕ ГРАФЫ

Аннотация научной статьи по математике, автор научной работы — Рязанов Юрий Дмитриевич, Юсюмбели Николай Иванович

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

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

Текст научной работы на тему «Распараллеливание циклов на основе автоматического анализа информационных зависимостей»

_______МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №7/2015 ISSN 2410-700Х____

Список использованной литературы:

1. Долуханов М.П. Распространение радиоволн. М., Связь, 1972, 337 с.

2. Римбет Г., Гарриот О. Введение в физику ионосферы. Л., Гидрометеоиздат, 1975.

© Д.В. Крживокольский, А.С. Болятко, А.Г. Седов, 2015

УДК 004.021

Рязанов Юрий Дмитриевич

доцент БГТУ им. В. Г. Шухова, г. Белгород, РФ, E-mail: ryazanov.iurij@yandex.ru Юсюмбели Николай Иванович студент БГТУ им. В. Г. Шухова

РАСПАРАЛЛЕЛИВАНИЕ ЦИКЛОВ НА ОСНОВЕ АВТОМАТИЧЕСКОГО АНАЛИЗА ИНФОРМАЦИОННЫХ ЗАВИСИМОСТЕЙ

Аннотация

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

Ключевые слова

Параллельное программирование, информационные зависимости, решетчатые графы.

В связи с широким распространением многоядерных и многопроцессорных систем проблема написания эффективных параллельных программ становится все актуальнее. Имеется большое количество инструментальных средств [6], упрощающих процесс написания параллельного кода, однако их применение не всегда приводит к эквивалентной параллельной программе. Распараллеливанию обычно мешают скрытые информационные зависимости. Ручное выявление этих зависимостей является задачей сложной и трудоёмкой. Поэтому актуальным является разработка новых способов и инструментов, способных автоматизировать процесс распараллеливания программ. Эти инструменты могли бы повысить эффективность работы программиста и надежность параллельных программ.

Одним из способов упрощения распараллеливания программ является автоматический анализ информационных потоков и зависимостей. Такой анализ позволяет определять циклы и операторы в последовательной программе, которые могут быть исполнены параллельно. Существует множество представлений информационных зависимостей, которые различаются по степени информативности. Одним из наиболее тонких представлений информационной зависимости является решетчатый граф [1].

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

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

Пусть вхождение u содержится в гнезде из n циклов, пространство итераций которого V1. Вхождение v - в гнезде из m циклов, пространство итераций которого V2. Пусть оператор, содержащий вхождение u находится раньше по тексту программы, чем оператор, содержащий вхождение v. Обозначим через P(X)

26

_______МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №7/2015 ISSN 2410-700Х_____

вектор, координатами которого являются индексы вхождения u, через Q(Y) - вектор индексов вхождения v (Рис. 1) [2].

Рисунок 1 - Визуальное представление решаемой проблемы

Для определения дуги (X, Y) решетчатого графа (рис. 2), где X е Vi, Y е V2, необходимо решить следующую задачу параметрического целочисленного программирования [4]:

Р(Х)=0(У)

XeV,

УеУ,

(1)

Рисунок 1 - Визуальное представление элементарного решетчатого графа

Условия P(X)=Q(Y),X EVi и X <кх Y Y Е F? сводятся к системе линейных неравенств, как обычно в линейном программировании, а условие сводится к системе неравенств, называемыми альтернативными многогранниками [2; 3, с. 365].

Первый и второй многогранники имеют следующий вид:

*. = Г,

х,=у,

Х2=У,

X,=Y,

X*<Y*

X[d-2rY[d-2)

где d - количество общих циклов у вхождений и и v.

27

_______МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №7/2015 ISSN 2410-700Х__________

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

Занумеруем все альтернативные многогранники. Под номером альтернативного многогранника подразумевают число, равное суммарному количеству равенств и неравенств в системе. Заметим, что номера многогранников изменяются в интервале от 1 до d.

Задача (1) - (2) решается по следующей схеме. Организуется цикл, со счетчиком по k, в котором выполняются нижеследующие действия, причем k принимает значения от d до 1:

1. Условия P(X)=Q(Y), X EVi и Y Е V2 сводятся к системе линейных неравенств. К ним дописывается альтернативный многогранник с номером k. В полученной системе есть набор неизвестных -компоненты вектора X, и набор параметров - компоненты вектора Y.

2. С помощью метода параметрического целочисленного программирования находится лексикографический минимум относительно неизвестных [4].

3. Если лексикографический минимум найден, то выписывается функция, определяющая дуги решетчатого графа, а также номер соответствующего многогранника.

4. Уменьшается значение k на 1, и происходит переход на пункт 1.

Таким образом на выходе данного алгоритма мы имеем набор функций, описывающих дуги элементарных решетчатых графов. Функцию, описывающую решетчатый граф, можно представить в виде дерева, в узлах которого хранится условие. Если данное условие истинно, то переход происходит к левому узлу, иначе к правому. Эти функции в дальнейшем используются для определения ParDo циклов в программе. Цикл обладает свойством ParDO, если все его итерации можно выполнять в любом порядке, в том числе и одновременно [2].

Отметим, что решение задачи (1) - (2) дает в результате минимальный снизу элементарный решетчатый граф. Для построения минимального сверху элементарного решетчатого графа необходимо в альтернативных многогранниках знаки неравенств поменять на противоположные.

Для автоматизации построения решетчатого графа можно использовать библиотеку PipLib [5]. Она умеет находить лексикографический минимум (или максимум) во множестве целых точек, принадлежащих выпуклому многоугольнику [4, с. 33].

Алгоритм определения ParDo циклов в произвольном гнезде следующий:

1. В рассматриваемом гнезде циклов попарно перебираем все вхождения каждой из переменных. Для каждой пары вхождений строим элементарные решетчатые графы.

2. Обрабатываем каждый решетчатый граф:

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

3. Все остальные циклы, которые не были помечены, являются ParDo циклами.

Заключение

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

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

Список использованной литературы:

1. Воеводин В. В. Математические модели и методы в параллельных процессах / В. В. Воеводин - Москва: Наука, 1986. - 296 с.

2. Шульженко А. М. Исследование информационных зависимостей программ для анализа распараллеливающих преобразований: Диссертация на соискание учёной степени кандидата технических наук / А.М. Шульженко -Ростов-на-Дону: Ростовский государственный университет, 2006. - 200 с.

28

_________МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №7/2015 ISSN 2410-700Х______________

3. Воеводин В. В. Параллельные вычисления / В. В. Воеводин, Вл. В. Воеводин - СПб.: БХВ-Петербург, 2002. - 608 с.

4. Feautrier Paul. Parametric Integer Programming / Feautrier Paul // RAIRO Recherche Operationnelle. - 1988. -P. 243-268.

5. PipLib official website [Электронный ресурс]. - Режим доступа: http://www.piplib.org/

6. Введение в технологии параллельного программирования [Электронный ресурс]. - Режим доступа: https://software.intel.com/ru-ru/artides/writing-parallel-programs-a-multi-language-tutorial-introduction.

© Ю. Д. Рязанов, Н. И. Юсюмбели, 2015

УДК 004

Слаутин Юрий Александрович,

старший преподаватель Полевщиков Иван Сергеевич,

аспирант, ассистент

ФГБОУ ВПО «Пермский национальный исследовательский политехнический университет», г. Пермь

E-mail: i.s.polevshchikov@gmail.com

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

Аннотация

Статья посвящена актуальной проблеме разработки типового веб-портала национально-культурной автономии. Рассмотрены основные особенности и реализованные интерфейсы информационного портала национально-культурной автономии татар и башкир Пермского края.

Ключевые слова

Информационно-коммуникационные технологии, веб-портал, национально-культурная автономия.

Создание информационного портала национально-культурной автономии является актуальной задачей [1, 2], поскольку данный портал дает возможность национально-культурной автономии, с одной стороны, предоставлять пользователям большой объем информации по культуре, истории, традициям своего народа, а с другой стороны создать единую информационную площадку, на которой можно обсудить некоторые национальные проблемы, позволить пользователям принять участие в деятельности того или иного общественного объединения.

Рассмотрим особенности создания подобного веб-портала на примере информационного портала национально-культурной автономии татар и башкир Пермского края.

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

Содержание веб-портала формируется за счет уникальной информации, производимой региональной автономией (деятельность, жизнь, история, культура, новости и т.д.). Местные СМИ - участники проекта -имеют возможность самостоятельного выставления оперативной информации.

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

29

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