УДК 004.75

МЕТОДЫ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ В РАСПРЕДЕЛЕННЫХ СИСТЕМАХ

Новиков Дмитрий Юрьевич
Рязанский государственный университет имени С.А. Есенина
студент физико-математического факультета

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

Ключевые слова: компьютер, конвейерность, параллельная обработка данных, параллельность., распределенные системы


METHODS FOR PARALLEL DATA PROCESSING IN A DISTRIBUTED SYSTEM

Novikov Dmitry Yurevich
Ryazan State University named forS.Yesenin
Student of the Faculty of Physics and Mathematics

Abstract
This article reviews the methods of parallel processing in distributed systems. Several examples of parallel processing applications, as well as their methods. The study suggests that the most promising and dynamic direction of increasing the speed of solving applied problems is the widespread introduction of the ideas overlap in the work of computing systems.

Библиографическая ссылка на статью:
Новиков Д.Ю. Методы параллельной обработки данных в распределенных системах // Современная техника и технологии. 2015. № 5 [Электронный ресурс]. URL: http://technology.snauka.ru/2015/05/6560 (дата обращения: 29.05.2017).

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

Так как методов соединения этих компьютеров на тот момент времени не существовало, данные компьютеры работали независимо друг от друга. В середине 80-х годов, с разработкой новейших технологий обстановка в корни изменилась. Такой разработкой была разработка мощных микропроцессоров. Вначале микропроцессоры были 8-битными.Следом начали появляться16-, 32-, а также 64-битные процессоры. Большая часть из них обладали вычислительной мощностью больших компьютеров или мейнфреймов.

Темп развития и совершенствования компьютеров в последние полвека буквально ошеломляет. От компьютеров, стоивших несколько сотен миллионов долларов, которые выполняли одну операцию в секунду, мы перешли к компьютерам, несколько сотен долларов, которые выполняют десятки миллионов команд в секунду. Эта ощутимая разница в отношении цена/производительность стала порядка 1012.

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

Рассмотрим несколько примеров распределенных систем. Первым примером распределенной системы можно рассмотреть сеть рабочих станций в ВУЗе или в отделе некой компании. Данная распределенная система иметь единую файловую систему, хранящиеся файлы в которой одинаково доступны всем машинам с использование постоянного пути доступа. Помимо этого, когда некий пользователь вводит команду, система находит наилучшее место для выполнения запрашиваемого действия, возможно, на собственной рабочей станции пользователя или даже на простаивающей рабочей станции, принадлежащей какому-то другому пользователю, а возможно и на одном из свободных процессором машинного зала. Если некая система выглядит и ведет себя как обычная однопроцессорная система с разделением времени, эта система считается распределенной системой. В качестве второго примера рассмотрим WorldWideWeb. Интернет представляет собой простую модель распределенных данных. Для того чтобы пользователь смог увидеть документ, достаточно активировать ссылку, после чего пользователю откроется на экране этот документ. Нет никакой необходимости знать, какой сервер предоставляет пользователю документ, достаточно лишь информации о том, где он расположен. Любой документ публикуется следующим образом: для начала необходимо дать документу уникальное имя в формате унифицированного указателя ресурса (URL), которая ссылается на локальный файл с содержимом документа. Обычный пользователь в наше время осознает, что все документы глобальной сети расположены в разных местах и распределены по различным серверам. В случае если б интернет представлялся пользователям гигантской системой документооборота, она также могла бы считаться распределенной системой.  К сожалению, этот момент еще не наступил.

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

  • Распределенная система— это совокупность нескольких компьютеров, воспринимаемых пользователями, как единая объединенная система.
  • Распределенная информационная система (РИС)это совокупность взаимодействующих друг с другом программных компонент. Каждая из которых, может рассматриваться как приложение, исполняемое в рамках отдельного процесса.

Эти определения оговаривают два момента:

-          Первый относится к аппаратуре: все машины автономны.

-          Второй касается программного обеспечения: пользователь уверен, что он работает с единой системой.

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

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

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

Эти понятия хоть и похожи, однако, зачастую проблематично отличать их на практике. Два этих термина отражают два абсолютно разных подхода.

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

Рассмотрим на примере данный метод обработки информации. Пусть какое-то устройство выполняет одну операцию в секунду, то 1000 таких операций оно выполнит уже за 1000 секунд. Предположим, что существует 5 таких устройств, которые будут работать одновременно. Ту же 1000 операций эта система устройств выполнит ту же 1000 операций в пять раз быстрее, т.е. за 200 секунд. Таким образом, система, состоящая из N устройств, способна выполнить 1000 операций за 1000/N секунд. Аналогию этого метода можно привести из жизни: предположим, что один работник вскопает участок за 10 часов, то 10 работников, при условии, что они будут работать одновременно при одинаковых способностях, справятся с той же работой за 12 минут.

Первым, кто рассмотрел параллельную обработку потоков данных, был академик Александр Андреевич Самарский, проводивший в 1950 году вычисления, значимые для прогнозирования ядерных взрывов. Самарский нашел решение данной задачи, посадив десяток женщин с арифмометрами за столы. Женщины передавали сведения друг другу на словах, а также отделяли необходимые цифры на арифмометрах. Подобным способом, была рассчитана эволюция взрывной волны. Работы было очень много, женщины уставали, а Александр Андреевич ходил среди них и подбадривал. Это, можно сказать, и была первая параллельная система. Хотя расчеты водородной бомбы были мастерски проведены, точность их была достаточно низкая, оттого что узлов в используемой сетке было недостаточно, а время счета получалось чересчур внушительным.

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

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

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

Многим может показать, что конвейерную обработку можно без проблем заменить простым параллелизмом, дублируя устройство столько раз, сколько предполагается выделить ступеней конвейера. Однако, увеличив число устройств, значительно увеличивается как объем аппаратуры, так и его стоимость.

Впервые принцип конвейерной обработки данных использовался в машине ATLAS, разработанной в Манчестерском университете. Команды выполняются в 4 стадии: выборка команды. Вычисление адреса операнда, выборка операнда и выполнение операции. Этот метод позволил уменьшить время выполнения операций с 5 мкс до 1.5 мкс. Эта машина повлияла на архитектуру компьютеров, а также на программное обеспечение: в этом компьютере впервые была использована мультипрограммная операционная система, которая была основана на использовании виртуальной памяти и системы прерываний.

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


Библиографический список
  1. Распределенные системы. Принципы и парадигмы / Э. Таненбаум, М. ванСтеен. -СПб.: Питер, 2003. – 877 с.
  2. Хокни Р., Джессхоуп К. Параллельные ЭВМ. Архитектура, программирование и алгоритмы. М.: Радио и связь. 1986. – 392 с.
  3. Романчук В.А. Разработка алгоритмов определения связей элементов вычислительной структуры на базе нейропроцессоров // Информатика и прикладная математика : межвуз. сб. науч. тр. – Рязань : РГУ имени С.А.Есенина, 2011. – Вып.17. – С.102–105.
  4. Романчук В.А. Разработка алгоритмов определения вида структуры нейропроцессорной системы на основе описания связей ее элементов // Информатика и прикладная математика : межвуз. сб. науч. тр. – Рязань : РГУ имени С.А.Есенина, 2011. – Вып.17. – С.102–105.
  5. Ручкин В.Н., Романчук В.А., Фулин В.А. Когнитология и искусственный интеллект. – Рязань : Узорочье, 2012. – 260 с.
  6. Романчук В.А., Лукашенко В.В. Разработка математической модели реструктуризуемого под классы задач, виртуализируемого кластера GRID-системы на базе нейропроцессоров // Вестник РГУ имени С.А.Есенина. – Рязань : РГУ имени С.А.Есенина, 2014. – №1(42). – C. 177- 182.
  7. Ручкин В.Н., Романчук В.А., Лукашенко В.В. Модель вычислений реструктуризуемого под задачу кластера на базе нейрокомпьютеров  // Современная техника и технологии. 2015. № 3 [Электронный ресурс]. URL: http://technology.snauka.ru/2015/03/5896 (дата обращения: 08.04.2015)
  8. Vladimir Ruchkin, Vitaliy Romanchuk, Roman Sulitsa. Clustering, Restorability and Designing Of Embedded Computer System Based On Neuroprocessors // Proceedings of the 2nd Mediterranean Conference on Embedded Computing (MECO). – Budva, Montenegro, 2013. – С.58-62.
  9. Романчук В.А., Ручкин В.Н. Оценка результатов моделирования вычислительных систем на базе нейропроцессоров // Известия тульского государственного университета. Технические науки. – Тула : Издательство ТулГУ, 2013. – Вып.9. – Ч.2. – С.194-203.


Все статьи автора «Новиков Дмитрий Юрьевич»


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

Связь с автором (комментарии/рецензии к статье)

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

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: