Интеллектуальное управление процессами (статья Кутепова) (547920), страница 3
Текст из файла (страница 3)
В задаче управления ВС выделяем две относительно самостоятельных подзада пк планирование процессов и управление загруженностью ВС. Первая предполагает регулировгашс фронта работ таким образом, чтобы минимизировать возмо>кные простои компонентов ВС из-за отсутствия необходимого количества процессов, а также определсшге порядка (приоритетов) назначен>и процессов >га выполнение. Ре5улирование фронга раоот осуществляется д>н>амическг! путем изменения зернистости распараллел55ваши или, в нашей терминолопш [1), степени распараллеливания. Это можно делать, рассматривая в качестве фрагментов программы, пндуцируюших процессы, операторы (функции), блоки„, модули, группы модулей программы и тд.
[1, 3 — 51, Интуитивно ясно, чю в этой последовательпосп! каждый следующггй фрагмент является более сложным с вычис:пп.ельной точки зрения. В созда>и!ой нами системе граф-схсмцого потокового параллельного программирования для кластеров [5! объединены возможности г>редсгшленяя двух вцдов параллелизма: крупноблочного 5га уровне модулей параллельной программы и мелкозернистого на уровне питевого распараллеливаши подпрограмм модулси. Для функциональных программ мы нашли более тонкие мехшшзмы дифференцирования проц ссов по сложности в соответствии стем, порождены они элементарной функцией, рекурсишюй функцией, функцией, задаваемой посредством системы взаимно рекурсшшых определений и др. [4!. Движение по этой последователыюстп вперед цли назад будет приводить к умепьшеншо или увеличению фронта работ соответственно.
Другой важный механизм рсгулироваши фронта работ связан с тем, д!опускаются или запрещаются при выполнен>ш параллельной программы вычисления с упрежде>шем, что обычно связано с условными консгрукцнями в программе [3, 4). Замет>>м, что во всех технолоиих параллельного программирования (МР1, Ми1блйгеагйаР, ОрепМР и др.) сложность фрагмента программы, пндуцирующего процесс, определяет сам про!'рал>л>пег, сообразуясь с размером ВС и особешюсгями !шраллельной программы. Втор>и подзадача плапыро!шшв. процссош сш!- за>5а с определеш5ем 5юрядка нх вь.'! !о>ш! !ли !гкал!5- ности множества 5,(!) — актш!пзнроа>!шпак процессов, Достаточно рассмотрсть пример плшшроишпя процессов на отдельном компьютере, хоп!а увеличеш>е множества активных процессов а!,!шс определенного значения приводит к уволю >сншо обмена страницами между опсративнои !! Дисковой 5шмятью (так называемый а>уарршй) и, как следствие, к резкому увеличению непроизводительной раооп,! компьютера.
Заметим, что перемешаны сгрипицы (страниц) из оперативной пал>я'!'и па диск пли наоборот занимает в среднем несколько мс (зависит от скорости вращения диска и равно в среднем времени половины его оборота), что рааносплык! выполнению порядка 10' операций процессором современного компьютера, В свою очередь назначш! приор!питы процессам, можно либо отдавать пред'!очтшаге менее сложным из них (в этом случае, как пзьесп!о, количество обеду>ю>ваелгых в едшшцу врсмшш процессов растет), либо учитывать, что белес в!>ж5>о вь!— полгить в первую очередь: процессы, присланные от других компьютеров ВС, шш процессы, порожденные на самом компьютере, либо аьшолп>гп, процессы, результат которых всегда >>еобходпл!, шш процессы, отнесенные к мно>кесгиу, >а>нускшо!цсму их выполнение с упреждением, 1!!!ко!!сц, если фронт работ 5(!) мал, целесообра шо в первую очередь реализовывать процессы, которые будут этот фронт увеличивать [3, 41, Это все те механизмы, за которые несет ответственность сгр.пепи пл>шнрования процессами, Главная задача упраалеш>я за! ружснносгью об>,5~и!о (и не ~сегда прави>>ы>о) г[>орл!) Д>>ру тся как задача досьэ!жеп>ьч Гл!Июлгер>!О>! ы>р,жс!!!!Осп! вычислительных компонентов В('.
11анш то пш зрения — другая и закшо шстся втоц, по тр:пепи и алгоритл!ы управления заг)>уже>!нос!ч*!о до:5жпы минимизировать отрицателынле сршпоры в работе ВС: простой ее компщюптоа, !ге!!Ропзводнтельпые расходы, связанные с оомсноч страши>!- ми между оперативной и дисковой !имя п,>о .! компьютерах ВС, мл*>ккомпыотерпым обменом, с измерением (см. далее) парами гров зш руже!и!ости и принятием решешш о перераспределешш процессов.
Пусть Ц!) — средняя загруженность !'-! о компьютера, определяемая по средней 5!!тру>ко>!ности его процессора полезной работой на некотором интервале [с- б5, !), ИНТЕЛЛЕКТУАЛЬНОЕ УПРАВЛЕНИЕ П1'ОЦЕССАМИ Рис. 2. Архитектура и функции упрааясния ВС. ИЗВЕСТИЯ РАН. ТВОРИ!1 И СИСРЕМ1>! УПРАВЛЕНИЯ >Ь 5 2007 Ь(1) = уй,,,'!",141) 1 "1- ! — средняя загруженность компьютеров ВС на этом интервале. Величина М,;(1) = 141) — Ц1) характеризует относительную загруженность 1-го компьютера ВС в момент времени д ее отрицательное значение говорит о недозагружепности в среднем компьютера, положительное — о превышении его загруженности, Очевидно, значение М.,(1) разделяет все А! компьютеров ВС на два подмножества: >У, — подмножество недозагруженных и Фз — нормально загруженных и перегруженных компьютеров, А1, + Фа = Ф, а значение б1,;(1), ! = 1, 2, ..., А>, определяет частичный порядок на этих подмножествах.
Ясно, что для алгоритмов управления загруженностью ВС особенно актуальны ситуации ее низкой загруженности. Также очевидно, что попытка выравнивания загруженности компьютеров в этих ситуациях путем перемещс>пи части процессов от наиболее загруженных компьютеров на наименее загруженные не имеет веских оснований. Во-первых, вязкая загруженность ВС может быть вызвана малым значением ~5(!)~ — фронта работ, и только увеличение 5(1) ме!гает ситуацию к лучшему.
Во-вторых, это может провоцироваться неправильным планированием процессов па компьютерах, в часгности большим их количеством в активной фазе (фазе выполнения), что приводит к резкому увеличеншо обменов с дисковой памятью и накладных расходов на выполнение управляющих функций ВС. Этому может также способствовать большая интенсивность межкомпьютерных обменов, если процессы распределены по компьютерам таким образом, !то часго взаимодействующие процессы оказывак>тся на разных компьютерах.
Следовательно, алгори ем управления загру>кенностыо ВС должен быть усгроен так, чтобы при любом сочетании указанных факторов решение было направлено либо на увеличе>н!е фронта работ, либо на устранение дру- гих причин, вызывающих низку о ззгруясснносп ВС, либо нато и другое о!Вк>време~во. Вместе стем, если фронт рзбог11осгато !е~!, гп>- бы обеспечить нормальную ззгружсшюсть компьютеров, а она, тем нс мснсс, мали, должно оыть принято правильное решение о перераспределении ,процессов путем передачи некоторой пх части из перегруженных компьютеров нслозз> ружепным. При этом должны быть прн!иты рсшшпи, определяющие, какие компьютеры дол>кцы передавать часть своих процессов, а какие пх получать.
Также очевидно, если компьютер недоззгружсн но причине недостаточного коли !есгвз процессов и у него есть свободная оперативная измять. то шаг передачи ему части процессов будет опршл!зн, Если ясе причиной недозагру>кенносгп являс ~ ся болыпзя интенсивность обменов сгрзннцамз с дисковой памятью (что, как правило, говорит об орсу гсгяпп свободной оперативной памяти), то такая передача процессов будет иметь отрнцзтслывш) эффект.
Рассмотрим функции управления ВС, следуя общим принципам его исрзрх!гвскон оргзннзи!пп, рассмотренным в разд. 2 1рпс. 1). Нз рнс. 2 ~риведсна архитектура и основные фузкцпн системы управления ВС. Эта схема управления нижнего уровня группой компьютеров в иерархической схеме управления ВС, при этом объединение упразлс!шй несколькими группамп в свою о !средь логи !секи осущсствлястся через сервер более зьвокого уровня, выполняющий функции сгрзтсг!!чсского управлен!5я группамп и т.л. !рис, 1). эт о естссгвс! зшя логика согласованного масштабнроззшгя упр;влсния при увеличении рззмсра ВС, которую обсуждали в разд. 2.
Следующие трсбовачня рзсскппр!пишись изкш з качестве осповоползгшощнх прн программной реализации описанной системы уп!хншсппя ВС. 1. Возможпосгь здаптзвш и рззян зп из архитектурам ВС, в том числе гстсрогаянн и ц лсгкосгь настройки па использусмыс з узлах ВС ОС, языки и среды программирования. КУТЕПОВ изВестия РАн.
теОРия и системы упвлнлбпия га < 'ц07 2. Наличие развитых средств администрирования ВС, касающихся как управления ее конфигурацией, так и контроля параметров, определяющих правильность ее функционирования. 3. Обеспечение удаленного досгупа пользователей, визуализации основных событий и параметров работы ВС, обладание свойством расширяемосги и простой модификации.
4. Возможность реализации с использованием самых передовых сред построения сложных про<раммных систем распределенной и параллельной обработки информации, в частности М)сгозо<ьХЕТ. Рассмотрим назначение изображенных на рис. 2 блоков управления. Компоненты визуализации представляют собой библиотеку компонентов элементов пользовательского интерфейса, которые в свою очередь взаимодействуют с абстрактно описанными объектами, реализованными в подключаемых библиотеках блока взаимодействия с сервером управленг<я.
Таким образом, чтобы встроить клиентскую часть программной системы, например в М)стозой%аца) Яви<))о 2005, достаточно иницишшзировать библиотеку визуальных компонентов и вызвать необходимые элементы пользовательского интерфейса. Компоненты визуализации размещаются на клиентской станции. Блок взаимодействия с сервером управления решшзует абстрактно описанные об ьекты, используемые компонентами визуализации. Это единственное место в архитектуре программной системы, где связь между ее компонентами осуществляется на уровне непосредственного взаимодействия модулей, Все остальные модули обмениваются через блок коммуникации при помощи сообщений, которые включают в себя тип сообщения, имя адреса га и команду, что повышает отказоустойчивость (т.е.