Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка ПО для организации параллельных вычислений на кластерах.doc
Скачиваний:
24
Добавлен:
28.06.2014
Размер:
14.02 Mб
Скачать
  1. Реализация программного комплекса на платформе .Net

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

Одним из условий разработки проекта был выбор .NETв качестве платформы реализации иMicrosoftVisualStusio2008 (VS) в качестве базового пакета для интеграции средств разработки. Реализовация интеграции было проведено с использованием специальной программы интеграции Microsoft Visual Studio Integration Program (VSIP) (http://www.microsoft.com/vsip).

Далее рассмотрим объекты, которые были добавлены в VS при реализации среды разработки ГСПП:

  • Новый тип проекта – “Parallel project”, который управляет файлами, подготавливает и запускает процесс компиляции, а также определяет действия по развертыванию ГСПП (т.е. запуску на вычислительной системе).

  • Редактор граф-схем – специализированный визуальный редактор, полностью соответствующий требованиям, описанным в 2.1 и адаптированный для работы во внутренней архитектуре и интерфейсе VS. Обеспечивает взаимно-однозначное соответствие между графическим и текстовым представлением ГСПП.

  • Средства коммуникации с удаленными вычислительными системами основанные на технологии Web сервисов и .NET Remoting.

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

  • Средства визуализации загруженности вычислительных узлов кластера и контроля за процессом выполнения ГСПП.

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

Системные требования:

  • Для установки интегрированной среды разработки требуется персональный компьютер с установленной средой Microsoft Visual Studio 2008 Professional (или выше).

  • Для управления кластером – наличие сетевого соединения по протоколу TCP/IP с головным узлом кластера

Для установки среды Visual Studio 2008 Professional Edition:

  • Компьютер с ЦП с тактовой частотой не ниже 1.6 GHz

  • Windows Vista® (x86 & x64), Windows® XP (x86 & x64) с SP2 или выше (за исключением Starter Edition), Windows Server® 2003 (x86 & x64) с SP1 или выше, Windows Server 2003 R2 (x86 and x64)

  • .NET Framework 3.0

  • 384 MB ОП (768 MB ОП для Windows Vista)

  • 2.2 GB дискового пространства

    1. Реализация и системные требования системы выполнения граф-схемных параллельных программ на кластерах.

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

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

Принцип удаленного доступа к ресурсам вычислительной системы реализован в виде совместного использования технологий веб-сервисов XML и .NET Remoting.

Технология .Net Remoting представляет собой надстройку над механизмом удаленного вызова процедур, адаптированную к использованию в .NET-приложениях, позволяя обращаться к методам удаленных объектов, в том числе и через Интернет.

Рис. 5. Удаленное взаимодействие клиента и вычислительной системы.

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

Рассмотрим физическую реализацию средств выполнения ГСПП, выполненную в ходе работ.

На физическом уровне, как сервер выполнения, так и программное обеспечение вычислительных узлов, состоит из отдельных структурных элементов:

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

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

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

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

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

Связь между узлами в реализации системы основывается на использовании механизма сокетов (Sockets). Сокеты представляют собой стандартный низкоуровневый интерфейс сетевой коммуникации, реализованный в большинстве современных операционных систем, таких как Windows и Linux. Это достаточно удобный интерфейс в связи с тем, что он является общепризнанным стандартом межкомпьютерного обмена данными и в последнее время поддерживается всеми высокопроизводительными интерконектами такими, как, например, InfiniBand и MiryNet.

Как уже было отмечено выше, среда ГСПП реализована для работы под управлением MS .NET Framework. Любой класс (или в терминологии .NET – тип) принадлежит какой-либо сборке и однозначно идентифицируется не только своим именем, но и своей сборкой. Сборки - это наименьшие строительные блоки приложений платформы .NET.

То есть, граф-схемной параллельной программой, в среде, является созданная пользователем и скомпилированная сборка, содержащая описания всех использованных им типов, включая классы всех модулей и самой схемы, которые в совою очередь являются “наследниками”, в ОО терминологии, соответствующих базовых классов реализующих параллельную операционную семантику ГСПП.

После завершения проектирования ГСПП, программист может сопроводить ее структурой, содержащей описание размещения модулей граф-схемы по узлам кластера в виде строки, состоящей из определенного набора XML-тегов, что удобно, так как эта информация может передаваться от удаленного клиента по сети Интернет с использованием протоколов SOAP и HTTP.

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

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

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

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

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

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

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

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

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

Системные требования:

Кластерная система:

Узел:

  • Компьютер с ЦП с тактовой частотой не ниже 1.6 GHz

  • Windows Vista® (x86 & x64), Windows® XP (x86 & x64) с SP2 или выше (за исключением Starter Edition), Windows Server® 2003 (x86 & x64) с SP1 или выше, Windows Server 2003 R2 (x86 and x64) с установленным пакетом Microsoft.NETFramework3.5

или

  • FreeBSD,OpenBSD,Linux,OSX,Windowsс установленным пакетомMono1.2.5 и старше (mono-project.com)

  • 128 MBОП (512MBОП дляWindowsVista)

  • 100 MB дискового пространства

Интерконнект:

  • Сеть с поддержкой интерфейса UDP