МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


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


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


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

Управление вычислительными ресурсами в параллельных ВС





Нетрудно заметить, что параллельные ВС имеют значительно более сложную организацию, нежели ЭВМ последовательного типа. Задача управления вычислительными ресурсами, в ЭВМ последовательного типа целиком возлагаемая на операционную систему, в параллельных ВС, в силу их сложности, обычно распределяется по разным программным и аппаратным компонентам. Рассмотрим условия, в которых эксплуатируются современные параллельные ВС, и требования к подсистеме управления вычислительными ресурсами, вытекающие из этих условий.

Прежде всего, следует учитывать, что параллельные ВС имеют значительно меньшую серийность, чем обычные ЭВМ и ВС, и, как следствие, являются достаточно дорогостоящими вычислительными установками. Столь дорогие по цене ресурсы не должны использоваться монопольно, из чего вытекает требование обеспечения коллективного (многопользовательского) доступа к параллельной ВС. Кроме этого, учитывая распространенность глобальной вычислительной сети Интернет, пользователям параллельной ВС должна быть предоставлена возможность удаленного доступа к ВС. В свою очередь, многопользовательский режим работы с предоставлением удаленного доступа требует обеспечения всесторонней защиты от несанкционированного доступа (НСД).

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

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

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

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



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

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

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

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

Таким образом, можно сформулировать следующие задачи современной управляющей системы параллельных ВС:

1. Обеспечение безопасного удаленного доступа многих пользователей к ВС.

2. Прием входного потока параллельных задач разной сложности и размеров от разных пользователей.

3. Ведение очереди параллельных задач с учетом требований полной загрузки вычислителя и решения заданного набора задач к заданному времени.

4. Выделение необходимых вычислительных ресурсов для нужд параллельной задачи.

5. Освобождение выделенных вычислительных ресурсов после окончания счета параллельной задачи.

6. Организация ввода-вывода и информационного обмена для многих ветвей выполняющейся параллельной задачи.

7. Обеспечение равномерной загрузки процессоров параллельной ВС.

8. Обеспечение мониторинга вычислительных ресурсов и восстановления после отказов.

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

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

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

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

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

На втором уровне принимаются локальные, автономные решения по распределению ресурсов в рамках одного вычислительного модуля.

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

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

Существует три основных типа организации вычисли­тельного процесса в параллельных ВС:

· ведущий – ведомый;

· раздельное выполнение заданий в каж­дом процессоре;

· симметричная, или однородная, обработ­ка во всех процессорах.

Возможны также малоразличающие­ся варианты такой организации процессов.

Наиболее простым для реализации является метод об­работки типа «ведущий-ведомый». Он чаще всего использует­ся в асимметричных и неоднородных ВС, таких, как ВС с распределенной ОП (массово-параллельные, кластерные и т.п.), но может применяться и в системах с общей памятью. При данной организации системные управ­ляющие функции реализуются только в одном процессоре (ведущем), который может быть выбран оператором или ав­томатически. Этот процессор может иметь специально раз­работанную для управления конфигурацию или быть обычным универсальным процессором. Специально разработанный су­первизорный процессор предназначается исключительно для выполнения управляющих функций, в то время как универ­сальный процессор может быть использован для расчетов по прикладным программам, когда супервизорные процедуры не выполняются.

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

Заметим, что в массово-параллельных и кластерных ВС метод «ведущий-ведомый» фактически является единственно возможным методом организации вычислительного процесса. В качестве ведущего процессора здесь выступает управляющая ЭВМ, на которую возлагаются все управляющие функции третьего и четвертого уровней иерархии. Функции первого и второго уровней выполняются ОС вычислительных модулей.

Другим типом организации обработки информации в параллельной ВС является раздельное выполне­ние заданий в каждом процессоре. Заметим, что применение данного типа обработки возможно уже только в ВС с общей памятью. В этом случае управляющие (суперви­зорные) функции осуществляются каждым процессором в со­ответствии с его потребностями и требованиями предназначенных для него программ. Поскольку модули су­первизора выполняются несколькими процессорами, предус­матривается их повторная входимость, или копии их должны быть загружены в каждый процессор. В некоторых случаях используется сочетание указанных двух методов. Число конфликтов, вызванных блокировкой системных таблиц, в таких системах невелико, так как каждый процессор может иметь собственный набор необходимых программных моду­лей. При этом число общих исполнительных таблиц незна­чительно.

Все операции ввода-вывода для любой задачи выпол­няет процессор, на который эта задача возложена. Прерывания по вводу-выводу поступают на процессор, ко­торый инициирует соответствующие операции ввода-вывода.

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

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

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

Общесистемное управление в SMP-системе непрерывно перераспределяется между про­цессорами. Один из процессоров, обеспечивающий в данный момент управление системными таблицами и такие функции, как планирование, называется исполнительным. Для пре­дотвращения конфликтных ситуаций в каждый момент време­ни исполнительным может быть только один процессор. Каждый процессор выполняет также управляющие функции, неразрывно связанные с решаемой им задачей, и функции, необходимые для выполнения новой задачи, если текущая будет прервана или полностью завершена.

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

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

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

Несмотря на наиболее совершенную форму организации функционирования параллельной ВС симметричная обработ­ка в то же время наиболее сложна для реализации. Одна из главных проблем симметричной обработки тесно связана с необхо­димостью равномерной загрузки всех процессоров в каждый период времени. Решение этой проблемы для неделимых задач может потребовать применения сложных методов прогнозирования с целью оценки времени решения задач и других требова­ний к ресурсам системы. В настоящее время не существует оптимального метода решения этой проблемы. Поэтому в современных ОС для SMP-систем широко применяется мультитредовый (многпотоковый) подход, в соответствии с которым ветви параллельной программы представляются в виде так называемых нитей (тредов, от английского thread – «нить») одного вычислительного процесса. Нити представляет собой отдельные потоки вычислений, выполняющиеся в адресном пространстве единого вычислительного процесса. За счет применения мультитредового подхода возможно достижение очень высоких показателей равномерности загрузки процессоров и масштабируемости всей параллельной ВС в целом.

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.