Научная статья на тему 'ИССЛЕДОВАНИЕ ОПТИМАЛЬНОСТИ ПАРАЛЛЕЛИЗАЦИИ СЛОЖНЫХ ВЫЧИСЛЕНИЙ'

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

CC BY
23
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АНАЛИЗ / ПИР / ПАРАЛЛЕЛИЗАЦИЯ / ВЫЧИСЛЕНИЯ / ПАРАЛЛЕЛИЗАЦИЯ ВЫЧИСЛЕНИЙ / ОПТИМИЗАЦИЯ ВРЕМЕННЫХ ЗАТРАТ ВЫЧИСЛЕНИЙ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Макаров Вадим Игоревич

В статье приводятся сравнительный анализ и основные положения оптимизации вычислений с применением параллелизации промежуточных вычислений.The article provides a comparative analysis and the main provisions of optimization of calculations using parallelization of intermediate calculations.

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

Текст научной работы на тему «ИССЛЕДОВАНИЕ ОПТИМАЛЬНОСТИ ПАРАЛЛЕЛИЗАЦИИ СЛОЖНЫХ ВЫЧИСЛЕНИЙ»

УДК 004.021

Информационные технологии

Макаров Вадим Игоревич, аспирант, кафедра «Информатики и

вычислительной техники», Поволжский государственный университет телекоммуникаций и информатики, г. Самара

ИССЛЕДОВАНИЕ ОПТИМАЛЬНОСТИ ПАРАЛЛЕЛИЗАЦИИ

СЛОЖНЫХ ВЫЧИСЛЕНИЙ

Аннотация: в статье приводятся сравнительный анализ и основные положения оптимизации вычислений с применением параллелизации промежуточных вычислений.

Ключевые слова: анализ, пир, параллелизация, вычисления, параллелизация вычислений, оптимизация временных затрат вычислений.

Abstract: the article provides a comparative analysis and the main provisions of optimization of calculations using parallelization of intermediate calculations.

Keywords: analysis, peering, parallelization, computations, computational parallelization, computation time optimization.

Введение

Одними из наиболее перспективных сетевых технологий в области обеспечения отказоустойчивости и обмена большими объёмами данных являются технологии одноранговых (или пиринговых, peer-to-peer, p2p) сетей, которые объединяют десятки миллионов компьютеров по всему миру и находят широкое применение в таких областях, как: трансляция потокового мультимедиа, обмен файлами, распределённые вычисления и др. Технологии, на базе которых строятся пиринговые сети, весьма разнообразны.

Технология одноранговых сетей обеспечивает формирование сетей на базе принципов децентрализации. Пиринговые вычислительные сети по

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

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

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

В данной статье предлагается алгоритм поиска пира в одноранговой системе коммуникаций согласно информации, находящейся в узлах.

Проблематика выбора архитектуры системы коммуникаций на основе P2P

Можно выделить два основных типа P2P сетей: централизованные и децентрализованные. Централизованная структура одноранговой сети подразумевает наличие выделенного индексного сервера, собирающего информацию об узлах, входящих в P2P-сеть, и обеспечивающего поиск и предоставление необходимых сервисов одних узлов другим. Децентрализованная, так же известная как чистая одноранговая топология, сеть подразумевает полное отсутствие серверов. Взаимодействие происходит только между узлами, обладающими равными правами. Узлы соединены непосредственно друг с другом и могут посылать сообщения напрямую. Исключение сервера позволяет сети быть отказоустойчивой даже при быстро

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

Описание одноранговой системы коммуникаций

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

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

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

системы вторичными являются параметры каждого участника, а именно:

• ФИО;

• Степень;

• Компетенция специалиста;

• Врачебная практика.

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

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

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

Для определения пути и отправки заявки конкретному узлу в системе используется несколько алгоритмов поиска: алгоритм «затопления», «Алгоритм Дейкстры» и алгоритм случайного блуждания.

Реализация алгоритма «затопления» основана на распространении запроса между всеми участниками сети [7].

Алгоритм «затопления» начинается с запрашивающего узла, а затем все запросы перераспределяются на соседей. Запрос пересылается узлом всем его соседям, кроме тех, от которых он получил сообщение, до тех пор, пока заявка не будет доставлена искомому узлу, обладающему вторичной информацией согласно изначальной заявке [6].

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

Реализация алгоритма Дейкстры работает пошагово — на каждом шаге «посещает» одну вершину и пытается уменьшать метки. Работа алгоритма завершается, когда все вершины посещены. Метка самой начальной вершины полагается равной 0, метки остальных вершин — бесконечности [4]. Это отражает то, что расстояния от начальной до других вершин пока неизвестны. Все вершины графа помечаются как не посещённые.

Из ещё не посещённых вершин выбирается соседняя вершина от начальной, имеющая минимальный вес ребра. Для каждого соседа, кроме отмеченных как посещённые, рассматривают новую длину пути, равную сумме значений текущей метки и длины ребра, соединяющего вершину с этим соседом [7]. Если полученное значение длины меньше значения метки соседа, то заменяется значение метки полученным значением длины.

Распределение среднего времени алгоритмов поиска без применения параллельных вычислений

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

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

Время Р2Р сеть Алгоритм затопления

Алгоритм Случайного блуждания Алгоритм Дейкстры

3 3 7

4 5 14

6 3 17

10 10 25

12 9 36

14 12 40

Распределение среднего времени алгоритмов поиска с применением параллельных вычислений

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

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

Время Р2Р сеть

Алгоритм Случайного блуждания Алгоритм Дейкстры Алгоритм затопления

1 2 4

3 3 5

5 2 7

6 5 20

8 7 12

10 11 34

Заключение

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

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

Работа выполнена под научным руководством д.т.н, профессора Поволжского государственного университета телекоммуникаций и информатики Бахаревой Н. Ф.

Библиографический список:

1. Рожков, М.М. Разработка моделей поиска структурированной информации в пиринговой сети [Текст]/ М.М. Рожков //Дистанционное и виртуальное обучение. - 2009. -№12. - С.65-72.

2. Matei, Ripeanu. Mapping the Gnutella Network: Properties of Large-Scale Peer-to-Peer Systems and Implications for System Design / Matei Ripeanu, Ian Foster, Adriana Iamnitchi// IEEE Internet Computing. - 2002. -Vol. 6, Issue 1. -рр. 50-57.

3. Schoder, D., Fischbach, K., and Schmitt, C. Core Concepts in Peer-to-Peer Networking. [Электронный ресурс]: 2005. Режим доступа: http://www.idea-group.com/downloads/excerpts/Subramanian01 .pdf.

4. Lednev A. Mobile P2P taxi service [Текст]/ MSc Dissertation, University of Surrey. - 2010. -с. 75.

5. Technology that delivers 21st century healthcare. [Электронный ресурс]. https://www.lumeon.com.

6. A statistical approach to learning and generalization in layered neural networks [Текст] / E Levin, N Tishby and S Solla // Proc. IEEE (Special Issue on

Neural Networks) . - 1990.

7. Алгоритмы и применения сетей P2P [Электронный ресурс]. http: //book. itep. ru/4/41 /p2p. htm.

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