Файл: Распределенная технология обработки информации (История развития распределенных вычислительных систем).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.03.2023

Просмотров: 304

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

Конкуренция на рынке постоянно возрастает. Технологические инновации снижают барьер входа новых участников на рынок и когда-то эксклюзивные товары и сервисы становятся широкораспространенными, а рынок перенасыщенным. В этих условиях для выживания бизнес должен быть более эффективным, чем его конкуренты: продуктивность сотрудников должна быть выше, а предоставляемые товары и сервисы должны лучше соответствовать потребностям покупателя. За последнее время требования к информационным системам автоматизации бизнес процессов существенно изменились. Опережающими темпами растет количество хранимой, обрабатываемой и передаваемой ими информации. Что в свою очередь вызвано экспоненциальным развитием технологии, а также возросшей зависимостью человечества от использования этих технологий. Прежние подходы к разработке информационных систем становятся неэффективными, так как производительность аппаратной части хотя и удваивается каждые два года, как было предсказано Г. Муром [1], не может покрыть полностью потребности в вычислительных мощностях. Ниже приведена диаграмма объема обрабатываемых информационными системами данных по результатам статистических исследований европейской экономической комиссии ООН[2].

Рис. 1 Глобальный рост объема данных по годам

При сравнении роста объема данных с ростом вычислительных мощностей в относительных единицах эта тенденция видна довольно четко:

Рис. 2 Сравнение роста производительности и объема данных в относительных единицах

Таким образом появились предпосылки к широкому использованию распределенных систем. В условиях, когда одна машина не может обеспечить требуемых характеристик по вычислительной мощности, памяти или дисковому пространству логичным является распределение нагрузки на несколько машин. Этим обусловлена актуальность выбора темой данной работы исследование различных типов распределенных вычислительных систем, особенности их программной и аппаратной организации. Также в качестве примера полученные знания будут применены для решения прикладной задачи по разработке распределенной системы автоматизации бизнес-процесса. В первой главе будут рассмотрена самая общая информация о распределенных системах обработки информации, основные типы, архитектура, особенности разработки и применения. За основу для исследования будут взяты книги известных международных издательств, таких как John Wiley & Sons, Inc, McGraw-Hill, Apress, O’Reilly Media, Inc., специализирующихся на выпуске академических изданий, технической и инженерной литературы для профессионалов, преподавателей, исследователей и ученых. Большой тираж выбранных изданий, репутация издательств, наличие независимых рецензентов и подтвержденная на практике в ведущих компаниях мирового уровня компетентность авторов – это залог актуальности и достоверности информации, изложенной в выбранной литературе. Также использовались издания по тематике распределенных вычислительных систем российских ВУЗов. Во второй главе на основе полученной информации и реальной прикладной задачи будет разработан проект системы автоматизации. В третьей главе будет рассмотрена реализация программного обеспечения.


1. Теоретическая часть

1.1 История развития распределенных вычислительных систем

ENIAC (Electronic Numerical Integrator and Computer) - один из первых известных компьютеров (после Z3 в 1941 и Colossus в 1943), был разработан Джоном Моучли (1907–1980) совместно с Джоном Эккертом (1919–1995) по контракту с министерством обороны США в 1946. И в своей конструкции он поддерживал возможность параллельных вычислений. Машина считала в двоичной системе счисления и производила 5 тыс. операций сложения или 300 операций умножения в секунду, весила 30 т и для ее размещения требовалось 170 м2. Существенным недостатком этой системы была крайне примитивная система ввода программ. Если требовалось перейти от вычислений баллистических таблиц к расчету параметров аэродинамической трубы, то приходилось бегать по комнате, подсоединяя и отсоединяя сотни контактов, как на ручном телефонном коммутаторе. Сложность ввода программ стала причиной того, что возможности машины по параллельной обработке задач так и не были использованы [[1]].

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

Начало 60-х годов ознаменовано появлением первых интегральных схем (ИС). Первая интегральная схема (ИС) представляла собой тонкую германиевую пластинку длиной 1 см. Это устройство не отличалось особым изяществом. Пять компонентов схемы были изолированы друг от друга благодаря своей форме в виде букв U, L и т. п. Крошечные проволочки, соединяющие компоненты схемы друг с другом и с источником питания, просто припаивались. Вся конструкция скреплялась воском. До изобретения интегральной схемы (1959) каждый компонент электронной схемы изготавливался отдельно, а затем они соединялись пайкой. Появление ИС изменило всю технологию. Электронная аппаратура стала дешевле, универсальней, малогабаритней, надежней и более быстродействующей, поскольку электрическим импульсам приходилось преодолевать меньшие расстояния. Существенно уменьшились габариты машин. Появление чипа знаменовало рождение третьего поколения компьютеров, проектирующихся на основе интегральных схем малой (МИС – 10–100 компонентов на кристалл) и средней (СИС – 100–1000 компонентов на кристалл) степени интеграции [[3]].


В ходе дальнейшего развития появляется такое понятие как «суперкомпьютер». Авторство термина «суперкомпьютер» приписывается Джорджу Мишелю и Сиднею Фернбачу, в конце 60-х годов XX века работавшим в Ливерморской национальной лаборатории и компании CDC. Тем не менее, известен тот факт, что ещѐ в 1920 году газета New York World рассказывала о «супервычислениях», выполняемых при помощи табулятора IBM, собранного по заказу Колумбийского университета. В общеупотребительный лексикон термин «суперкомпьютер» вошёл благодаря распространённости компьютерных систем Сеймура Крея, таких как, CDC 6600, CDC 7600, Cray-1, -2, -3, -4. Сеймур Крей разрабатывал вычислительные машины, которые, по сути, становились основными вычислительными средствами правительственных, промышленных и академических научно-технических проектов США с середины 60-х годов до 1996 года. Технологии того времени делали эти машины очень дорогими. К примеру, наиболее успешная модель из линейки Cray-1 (1976) стоил 8.8 млн. долларов и весил 5 тонн. В то же время выдавая по современным меркам не такую высокую производительность в 166 MegaFLOPS (миллионов операций с числами с плавающей точкой в секунду) [[4]].

В общем случае, можно говорить, что суперкомпьютер — это компьютер значительно более мощный, чем доступные для большинства пользователей компьютеры, а скорость технического прогресса сегодня такова, что нынешний лидер по производительности легко может стать через несколько лет обычной компьютерной системой, доступной простому пользователю [[5]]. Характерной особенность архитектуры этих систем было применение векторных команд, работающих с целыми массивами независимых данных и позволяющих эффективно использовать конвейерные функциональные устройства [[6]]. Векторные архитектуры суперкомпьютеров преобладали вплоть до 90-х годов. Появившийся в 1988 Cray Y-MP также был основан на этом принципе, но в то же время включал в себя не одно, а от четырех до восьми полноценных векторных процессорных устройств. После чего архитектурный параллелизм начал развиваться в двух направлениях – векторный и мультипроцессорный.

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


В начале 80-х с развитием локальных вычислительных сетей появляются ранние распределенные системы. Они обычно состояляли из 10 – 100 узлов, объединенных локальной вычислительной сеть. Их взаимодействие с глобальной сетью было как правило очень ограничено. Внутри сети предоставлялся небольшой набор сервисов таких как: общие принтеры, файловы и почтовые серверы, сервисы передачи файлов через интернет. Системы были как правило гомогенны, а открытость стандартов не ставилась в приоритет [[7]].

В ходе дальнейшего развития сетей со второй половины 1990-х появляются кластеры компьютеров. Поначалу это был способ постройки «суперкомпьютера для бедных»: материнские платы персональных компьютеров соединялись через локальную сеть. Первые конфигурации обычно включали от 64 до 128 узлов. С развитием технологии кластеры стали состоять из тысяч машин, при этом связь осуществлялась через оптическое волокно. К примеру, суперкомпьютер Jaguar (2009) размещен в Национальном центре компьютерных исследований в Окридже (США) и используется Министерством энергетики США для моделирования физических систем. Jaguar содержит 18688 вычислительных ячеек по 2 четырехъядерных процессора и еще 7832 ячеек с одним четырехъядерным процессором. Конструктивно 4 вычислительных процессорных элемента объединяются в Cray XT4 в один вычислительный blade-сервер. Пиковая производительность достигала 1.75 PetaFLOPS [[8]].

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

Другой аспект нового поколения суперкомпьютеров, обеспечивший им такую популярность это более простая модель программирования по сравнению с прежними системами и возможность переносимости - повторного использования кода. Причина в том, что парадигмы параллельного программирования в данном случае не привязаны к архитектуре конкретной машины. То есть могут быть использованы классические приемы распараллеливания алгоритмов, которые будут работать при переносе кода программы с одной машины на другую [[9]]. В некоторой степени глобальную сеть интернет также можно рассматривать как огромный суперкомпьютер – как например в случае с приложением SETI@home. SETI (Search for Extraterrestrial Intelligence) – некоммерческий проект, использующий свободные ресурсы на компьютерах добровольцев, для поиска внеземного разума. Другой известный проект - расшифровка геномов, а том числе и человека. Эти системы включали в себя десятки тысяч машин. Основным отличием от полноценных кластеров было то, что узлы не соединены высокоскоростными каналами передачи данных. Также не требовалась проверка безопасности при обмене между узлами [[10]].


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

1.2 Особенности распределенных систем

Распределенная система — это совокупность отдельных сущностей, которые взаимодействует для решения общей задачи, которую они не могли бы решить в одиночку. Распределенные системы существовали с момента зарождения Вселенной: например, различные экологические экосистемы можно рассматривать как распределенные. С широким распространением вычислительных сетей появилось понятие распределенных вычислительных систем. Это совокупность как правило автономных процессоров, взаимодействующих по некоторой сети связи [[11]]. Или другими словами, распределенная вычислительная система — это набор независимых компьютеров, представляющийся их пользователям единой объединенной системой [[12]].

Рассмотрим относительно общую, но очень важной моделью современной вычислительной системы, сформулированной в первой половине XX века математиком Фон-Нейманом. Эта модель оказалась базовой при проектировании практически всех современных компьютерных систем, включая суперкомпьютеры. Модель состоит из четырех ключевых компонентов:

Система памяти, которая хранит как команды, так и данные. Известна как система с хранимой программой. Доступ к этой памяти осуществляется с помощью регистра адреса (memory address register, MAR), куда подсистема памяти помещает адрес ячейки памяти, и регистра данных (memory data register, MDR), куда она помещает данные из ячейки с указанным адресом.

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

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

Системе необходим энергонезависимый способ хранения данных, а также выдачи их пользователю и принятия входных данных. Это осуществляется подсистемой ввода-вывода (I/O).