Граф-схемное потоковое параллельное программирование (Граф-схемное потоковое параллельное программирование 2), страница 6
Описание файла
Файл "Граф-схемное потоковое параллельное программирование" внутри архива находится в папке "Граф-схемное потоковое параллельное программирование 2". PDF-файл из архива "Граф-схемное потоковое параллельное программирование 2", который расположен в категории "". Всё это находится в предмете "параллельные системы и параллельные вычисления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "параллельные системы и параллельные вычисления" в общих файлах.
Просмотр PDF-файла онлайн
Текст 6 страницы из PDF
12. Схема управления процессами на компьютереДва самых важных показателя загруженности компьютера, которые используютсяпланировщиком, - это интенсивность обменов с дисковой памятью и интенсивность обменовс другими компьютерами, которые вычисляются как усредненные величины на некотороминтервале работы компьютера.Исследования 70-х годов по эффективности систем управления страничной памятьюкомпьютеров, работающих в многопрограммном режиме (т.е. в нашем случае,многопроцессном) [16-20], а также новейшие исследования влияния интенсивности обменовоперативная память – диски на эффективность работы кластерных систем являются попрежнему актуальными [13].
Они показывают, что даже при современных достаточнобольших объемах оперативной памяти компьютеров и использовании болеебыстродействующей дисковой памяти, чем это было ранее, интенсивность обменовоперативная память – диски является ключевым параметром эффективности работыкомпьютера в многопроцессном режиме.
Реальные эксперименты показывают, что привысокой интенсивности этих обменов целесообразно перенести определенное количествопроцессов с рассматриваемого компьютера на другой (или другие), несмотря на то, что приэтом будет также затрачено непроизводительное время на передачу данных по каналаммежкомпьютерной (и, возможно, межузловой) связи кластера. Однако, при использованиидостаточно быстрых коммуникаций, несмотря на неизбежную латентность, – это верныйпуть к достижению определенного баланса загрузки компьютеров (также узлов) кластера.Решение о перемещении процессов принимает блок системного уровня управлениязагрузкой УЗ (см.
3.2) по информации, которую планировщики компьютеров передаютпериодически на сервер узла. Именно блок УЗ разделяет компьютеры по степени ихзагруженности, используя получаемые данные от планировщиков компьютеров, используядля этой цели "нечёткую" шкалу: перегружен, нормально загружен, недогружен.Рассматривая проблему планирования параллельных процессов более широко,необходимо комплексно учитывать следующие параметры: интенсивность обменов даннымимежду компьютерами и в системе оперативная память – диски, время, которое тратится наорганизацию управления (реактивность управления), а также степень распараллеливания17[11]. Последний параметр достаточно сложно “регулировать” [11], тем не менее, принедогрузке кластера (заметном времени простоя компьютеров) он позволяет путем переходана более глубокий уровень распараллеливания увеличить количество выполняемыхпроцессов и тем самым лучше загрузить компьютеры.
С другой стороны, это приводит кувеличению интенсивности обменов между компьютерами кластера и времени,затрачиваемого на управление. Найти нужное соотношение при управлении перечисленнымипараметрами – основная задача планировщика в обеспечении эффективной работы кластера.Заметим, что увеличение степени распараллеливания программ на ЯГСПП достаточнопросто может достигаться, если помимо перечисленных выше и внешне отражаемых в ГСППвидах параллелизма используется также возможность задания в самих процессах(подпрограммах модулей) векторного параллелизма и параллелизма ветвей, процессов-нитейи др.4.
Программная реализация управления параллельнымвыполнением ГСПП на кластерных системахДля параллельного выполнения ГСПП на ВС разработана система программныхсредств – система управления. Эта система обеспечивает корректность параллельноговыполнения программ на кластерной ВС, возможность отладки этих программ, хранениеграф-схем и модулей, надёжную передачу данных между процессами модулей и пр.Помимо перечисленных выше основных задач, связанных с выполнением граф-схем,система должна выполнять и другие функции. Следующий список содержит основныефункциональные требования к реализации системы управления параллельным выполнениемграф-схемных программ на кластерах:− инициализация выполнения граф-схем,− определение готовности процессов для выполнения,− назначение процессов на выполнение, контроль их состояния,− реализация команд языка: Read, Write, Out, Kill и Check,− контроль состояния компьютеров кластера,− планирование процессов с целью оптимизации использования ресурсов иуменьшения времени выполнения граф-схемы,− реализация интерфейса взаимодействия компьютеров кластера,− параллельное выполнение нескольких процессов,− общая (для всех узлов ВС) система хранения данных,− возможность мониторинга процессов системы,− возможность выполнения подпрограмм модулей в различных ОС,− Система управления также должна обеспечить:− устойчивость к изменениям конфигурации кластера,− надёжный протокол обмена данными между узлами кластера,− высокую производительность.Система управления параллельным выполнением ГСПП представляет собой наборпрограммных средств, устанавливаемых на каждом компьютере или узле кластера.
Состав иорганизация устанавливаемых программных средств приведена на рис. 13.Центральным элементом данной архитектуры является сервис. Сервис – это наборфункций системы, выполняющих одну общую задачу. Сервис выполнения содержит всефункции, необходимые для выполнения ГСПП на кластере. Именно сервисы реализуютфункции, непосредственно связанные с процессом выполнения ГСПП, описанном впредыдущем разделе.
Все остальные элементы архитектуры выполняют системные функции:− инициализация сервисов,− управление конфигурацией кластера,− передача данных между узлами кластера,18− взаимодействие с внешними системами,− управление сервисами.Рис. 13. Архитектура программных средств управления процессом выполнения ГСПППередача данных между узлами кластера осуществляется компонентом Sender, аполучение – компонентом Reciever. Для каждого внешнего (по отношению к данному) узласети в локальной версии системы существуют свои Sender и Reciever.
Управление этимикомпонентами осуществляют соответственно Sender Dispatcher и Reciever Dispatcher.Компонент Client Sender/Reciever осуществляет обмен данными с внешними системами. Призапуске системы создаётся компонент Service Manager, который при помощи Service Loader’aзагружает сервисы и инициализирует их.В сущности, предустановленный на компьютере набор программных компонентовявляется контейнером сервисов. Контейнер организует вызов необходимых сервисов,предоставляет сервисам функции высокого уровня, создаёт окружение. На различных узлахкластера в принципе могут функционировать различные наборы сервисов. Набор сервисовузла кластера определяет роль данного узла в системе.
Назовём некоторые сервисы изсистемы управления:− сервис конфигурации контролирует конфигурацию узла кластера и предоставляет еёостальным узлам,− сервис реестра предоставляет другим узлам интерфейс реестра системы. Реестр – этобаза данных системы, которая имеет иерархическую структуру. Реестр содержитинформацию, необходимую для работы системы: программы граф-схем, конфигурациюкластера, информацию о пользователях и т.д. Также реестр может использоваться графсхемами для хранения данных в ходе выполнения,− сервисы управления выполнением – это набор сервисов, которые выполняют функциипо запуску, контролю выполнения граф-схем, управлению буферами и планированию.Сервис выполнения – это основной сервис системы, отвечающий за выполнениеГСПП, соответственно он должен работать на всех узлах кластера, которые участвуют впараллельных вычислениях.
Во время инициализации данный сервис получает модули играф-схемы, инсталлированные на данном узле. Инсталляция производится при помощиспециального программного средства, входящего в состав системы, и заключается вкопировании файлов модулей, а также описаний модулей и граф-схем и регистрацию данныхсущностей в системе.Описание модуля содержит идентификатор адаптера для данного модуля. Адаптер –это подключаемый компонент системы, осуществляющий запуск и остановку процессамодуля.
Таким образом, один адаптер может использоваться для определённого классамодулей. Классификация определяется сценарием запуска. Например, для модулей,написанных на языке C++ в виде консольных приложений, будет применяться один адаптер,а для модулей, представляющих собой динамическую библиотеку DLL – другой. Также естьспециальный регламент поведения модуля и спецификация интерфейса взаимодействияпроцесса модуля с системой. Таким образом, если программисту необходимо реализовать19модуль на каком-нибудь языке программирования, он должен создать библиотеку дляработы с системой на этом языке программирования и придерживаться установленногорегламента.