Фадеичев А.А. ПРИМЕНЕНИЕ ТЕОРИИ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ В ЛВС СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ

реклама
Фадеичев А.А.
г. Смоленск
Военная академия ВПВО ВС РФ
ПРИМЕНЕНИЕ ТЕОРИИ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ В ЛВС
СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ
В настоящее время все чаще встречаются задачи, решение которых
требует большой вычислительной мощности. Время их расчета может
измеряться часами, а в некоторых случаях даже сутками.
Однако, если посмотреть параметры использования центрального
процессора практически любого компьютера, то в подавляющем большинстве
случаев
это
значение
не
превышает
и
10%.
Если
используется
двухпроцессорная машина - второй процессор практически все время будет
свободен.
При обычной работе полная мощность компьютера используется только в
короткие моменты генерации отклика на действие пользователя. Паузы между
нажатиями клавиш при наборе текста в Microsoft Word для процессора
сравнимы с вечностью. Доля приложений, использующих полную мощность
компьютера, составляет не такой уж и большой процент.
Если посчитать, какая мощность простаивает в среднем офисе (50 машин
и более) - получится цифра, дотягивающая до современных суперкомпьютеров.
Одним из вариантов решения указанной выше проблемы является
использование распределенных вычислений.
Распределенные
вычисления
появились
с
первыми
локальными
вычислительными сетями (ЛВС). Сегодня практически любая компания
использует
некоторый
тип
распределенных
вычислений.
Чаще
всего
используется архитектура «клиент-сервер», при которой клиент (рабочая
станция) запрашивает информацию и сервис у удаленного сервера. В качестве
сервера могут выступать мощные рабочие станции, микрокомпьютеры,
миникомпьютеры и мейнфреймы. Обычно они соединены в ЛВС. Сложность
такой схемы в последние годы увеличивается. Для поддержки модели «клиентсервер» разработано несколько операционных систем, которые иногда плохо
взаимодействуют друг с другом. UNIX, Windows, Novell и Banyan Vines среди
тех, которые могут взаимодействовать между собой, хотя не всегда
эффективно.
Принцип работы заключается в следующем: набор рабочих станций,
соединенных
TCP/IP
сетью
(кластер),
можно
рассматривать
как
мультипроцессорную систему с разделенной памятью. Для выполнения
расчетов на такой системе наиболее прост и эффективен подход с разделением
данных (Data parallel computing) (Рис. 1).
Рис. 1. Различия централизованного подхода и подхода с разделением
данных
Говоря простыми словами, если обычное приложение обрабатывает
массив независимых друг от друга данных, то при вычислении на кластере
каждая рабочая станция получает на обработку свой кусочек массива.
При работе на такой системе необходимо заниматься разделением задачи
на «кусочки», отсылкой данных на рабочие станции, выполнением задач на
рабочих станциях, приемом обработанных данных, а также отсылкой на
рабочие станции каких-либо глобальных данных, требуемых при расчете
выделенной задачи.
Этой работой занимается программное обеспечение кластера, которое
должно удовлетворять следующим требованиям:
необходимо использовать только свободное процессорное время, не
мешая пользователю;
«никто никому ничего не должен» - рабочая станция может быть
перезагружена, отключена или занята ресурсоемкой задачей в любой момент
времени.
Однако, преимущества модели «клиент-сервер» значительны. Поскольку
каждая машина может осуществлять собственные вычисления, приложения для
модели «клиент-сервер» могут сильно варьироваться. Одним приложениям
требуется нечто больше, нежели доступ к общим файлам, другие могут
выполнять задачи как на уровне клиента, так и на уровне сервера. Настоящее
приложение «клиент-сервер» проектируется так, чтобы обеспечить такое же
качество
обслуживания,
миникомпьютер.
которое
Операции
может
предложить
«клиент-сервер»
могут
мейнфрейм
быть
двух
или
или
трехзвенными.
В двухзвенной архитектуре сервер приложений (например, сервер базы
данных), осуществляет свою часть возложенных на него операций - например,
поиск в базе данных или генерация отчета. Программа клиента используется
для доступа, редактирования, манипуляции процессами.
На рис. 2 показано типичное двухзвенное решение «клиент-сервер». Это
наиболее
распространенная на
сегодняшний
день модель.
Рис. 2. Двухзвенное решение «клиент-сервер»
Трехзвенная архитектура (Рис. 3.) используется в случаях, когда на
рабочих станциях недостаточно вычислительной мощности, необходимой для
выполнения приложения. В трехзвенной архитектуре также присутствует
сервер базы данных. Большинство процессов, которые обычно выполняются на
рабочей станции, переносятся на сервер приложений, а клиент отвечает лишь за
обновления экрана, нажатия клавиш и прочие визуальные изменения. Это
значительно уменьшает нагрузку на клиентские машины и позволяет старым
машинам использовать новые приложения.
Рис. 3. Трехзвенная архитектура
В последнее время появилась новая среда для распределенных
вычислений - Интернет. Компьютер клиента подключается к серверу, который
в свою очередь передает запрос на удаленный сервер, а тот выполняет команду
и возвращает результат клиенту.
Интернет изначально был изобретен военными для связи своих
исследовательских центров по всей территории США. В 1990 MCI создала
шлюз между отдельными сетями, чтобы позволить отдельным пользователям
обмениваться почтовыми сообщениями. С появления MCIMail начался
быстрый рост служб Интрнет, которые быстро расширились за территорию
США и распространились по всему миру.
Еще одна потребность в Интернет заключается в необходимости
распределенных вычислений и удаленного запуска приложений. Программы
тонких
клиентов
могут
подключаться
через
Интернет
к
удаленным
приложениям и становятся все более распространенными в компаниях, которые
предоставляют ресурсы пользователям, находящимся за пределами их
локальных сетей.
Термины «толстый» и «тонкий» относятся к пропускной способности
канала до клиента. "Толстый" клиент - это машина или приложение, требующая
большой пропускной способности. Обычно эти машины локально выполняют
свои приложения или получают их от сервера в модели «клиент-сервер».
«Толстых» клиентов легко настраивать, их можно использовать независимо от
сети.
Термин «тонкий» клиент относится к специфичному программному
продукту, который обеспечивает удаленный ПК программами и информацией
на низкоскоростном канале. При использовании ПО удаленного управления
между сервером и клиентом передаются только коды нажатых клавиш и
изменения экрана.
«Тонкие»
возможностей
машины
«толстых»
обладают
машин.
только
Они
частью
аналогичны
функциональных
интеллектуальным
терминалам мейнфрейма. Они имеют собственную память, дисплей, но
получают всю информацию от сервера. У них нет локальной операционной
системы, нет жесткого диска и совсем немного вычислительных возможностей.
Настоящее отличие «тонкой» машины от «толстой» состоит в отсутствии у
первой жесткого диска.
Преимущества распределенных вычислений. Распределенные вычисления
идеально подходят для многих компаний. В модели «клиент-сервер»
требования к аппаратному обеспечению для серверов намного меньше, чем для
мейнфрейма. Это приводит к снижению начальных издержек. Поскольку
каждая рабочая станция обладает своей собственной вычислительной мощью,
она может работать независимо от сервера. А посредством использования
множества серверов, локальных сетей, глобальных сетей, Интернет, системы
распределенных вычислений могут простираться на весь мир. Сегодня
пользователи могут работать с корпоративной системой со своих переносных
компьютеров откуда угодно, даже в самолетах.
Распределенные вычисления также обеспечивают и надежность. Если
информация может дублироваться на нескольких серверах, то отключение
одного сервера не предотвращает доступ к информации. Тщательное
управление репликацией данных может гарантировать, что только какаянибудь глобальная катастрофа может привести систему в нерабочее состояние.
Резервные каналы связи обеспечивают устойчивость к отказам для систем,
содержащих критическую информацию. Это было одной из причин, по которой
военные изобретали систему распределенных вычислений.
Наконец,
распределенные
вычисления
позволяют
использовать
устаревшие компьютеры для сложных расчетов, которые они не могли бы
делать. Например, старые машины на процессорах 386 могут получать доступ к
ресурсам серверов под управлением Windows. Причем этот тип доступа
прозрачен для пользователя. Разработчик может писать приложение только для
одной операционной системы и не проверять, как оно работает на других
системах. Это снижает стоимость разработки и программа становится дешевле
для пользователя.
Скачать