ПОЗНАВАТЕЛЬНОЕ Сила воли ведет к действию, а позитивные действия формируют позитивное отношение Как определить диапазон голоса - ваш вокал
Игровые автоматы с быстрым выводом Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими Целительная привычка Как самому избавиться от обидчивости Противоречивые взгляды на качества, присущие мужчинам Тренинг уверенности в себе Вкуснейший "Салат из свеклы с чесноком" Натюрморт и его изобразительные возможности Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д. Как научиться брать на себя ответственность Зачем нужны границы в отношениях с детьми? Световозвращающие элементы на детской одежде Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия Как слышать голос Бога Классификация ожирения по ИМТ (ВОЗ) Глава 3. Завет мужчины с женщиной
Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д. Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу. Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар. | Управление вычислительными ресурсами в параллельных ВС Нетрудно заметить, что параллельные ВС имеют значительно более сложную организацию, нежели ЭВМ последовательного типа. Задача управления вычислительными ресурсами, в ЭВМ последовательного типа целиком возлагаемая на операционную систему, в параллельных ВС, в силу их сложности, обычно распределяется по разным программным и аппаратным компонентам. Рассмотрим условия, в которых эксплуатируются современные параллельные ВС, и требования к подсистеме управления вычислительными ресурсами, вытекающие из этих условий. Прежде всего, следует учитывать, что параллельные ВС имеют значительно меньшую серийность, чем обычные ЭВМ и ВС, и, как следствие, являются достаточно дорогостоящими вычислительными установками. Столь дорогие по цене ресурсы не должны использоваться монопольно, из чего вытекает требование обеспечения коллективного (многопользовательского) доступа к параллельной ВС. Кроме этого, учитывая распространенность глобальной вычислительной сети Интернет, пользователям параллельной ВС должна быть предоставлена возможность удаленного доступа к ВС. В свою очередь, многопользовательский режим работы с предоставлением удаленного доступа требует обеспечения всесторонней защиты от несанкционированного доступа (НСД). Как правило, современные пользователи параллельных ВС работают с несколькими параллельными задачами (вариантами одной задачи) одновременно, при этом далеко не каждая из них может требовать для своего исполнения всего решающего поля целиком. Во избежание простоя вычислительных ресурсов, управляющая подсистема должна обеспечивать мультизадачный режим функционирования ВС, подразумевающий деление решающего поля между различными задачами различных пользователей. Каждая параллельная программа требует для своего исполнения некоторый параллельный вычислительный ресурс, под которым мы будем понимать подсистему связанных между собой процессоров решающего поля, выделяемый задаче на определенное время. Величина требуемого параллельного ресурса (число процессоров и время исполнения) определяет размер параллельной задачи. Множество различных параллельных задач от разных пользователей образует входной поток заданий. Велика вероятность возникновения ситуации, когда для очередной задачи из входного потока в определенный момент времени требуемый параллельный ресурс будет занят. В этом случае управляющая система должна обеспечить ведение очереди параллельных задач. После прохождения через очередь требуемый параллельный ресурс должен быть выделен задаче. Как правило, при постановке задачи в очередь от пользователя требуется специфицировать время ее выполнения. При завершении задачи или при исчерпании специфицированного времени выделенный параллельный ресурс должен быть освобожден от процессов задачи. Во время исполнения параллельной задачи управляющая система должна предоставить ей возможность осуществления операций ввода-вывода, в первую очередь, файлового. С учетом сложной топологической структуры современных параллельных ВС, данная задача является не столь тривиальной, как это может показаться на первый взгляд. Например, для ВС, построенных на основе распределенного составного коммутатора, трафик, порождаемый операциями ввода-вывода, должен транслироваться к управляющей ЭВМ через несколько промежуточных вычислительных модулей. При этом управляющая подсистема должна совмещать трафик ввода-вывода с передачей сообщений, которыми обмениваются ветви параллельной задачи. В многопроцессорных системах на основе общей памяти организация ввода-вывода также имеет свои сложности, связанные с тем, что необходимо распределять выполнение операций ввода-вывода и обработку прерываний по нескольким процессорам системы. В конечном итоге главной задачей параллельной ВС при выполнении параллельной программы является достижение высокой реальной производительности, близкой к пиковой. Значительный вклад в итоговый показатель производительности вносит управляющая система, от которой требуется эффективная организация информационного обменамежду различными ветвями параллельной задачи. Кроме этого, нетрудно видеть, что реальная производительность зависит от того, насколько равномерно распределена вычислительная нагрузка по процессорам параллельной ВС. Обеспечение равномерной загрузки процессоров вычислителя – так называемая балансировка загрузки также является одним из важных требований к современной управляющей системе параллельных ВС. Эффективные методы решения этой задачи в настоящее время разработаны только для ВС с общей памятью, для остальных ВС, особенно гетерогенных, балансировка загрузки представляет собой трудно решаемую проблему. Связано это с тем, что эффективное перемещение контекста программы с одного процессора на другой невозможно в слабосвязанных ВС. Другим часто выдвигаемым требованием, которому должна удовлетворять управляющая система, является решение представленного набора параллельных задач к заданному времени. Эффективность выполнения данного требования напрямую зависит от качества планирования очереди. Наконец, современную параллельную ВС невозможно представить без организации отказоустойчивых вычислений. Отказоустойчивость достигается, во-первых, за счет постоянного наблюдения за техническим состоянием вычислительных ресурсов (осуществления так называемого мониторинга вычислительных ресурсов), во-вторых, за счет применения эффективных средств восстановления после отказов. Таким образом, можно сформулировать следующие задачи современной управляющей системы параллельных ВС: 1. Обеспечение безопасного удаленного доступа многих пользователей к ВС. 2. Прием входного потока параллельных задач разной сложности и размеров от разных пользователей. 3. Ведение очереди параллельных задач с учетом требований полной загрузки вычислителя и решения заданного набора задач к заданному времени. 4. Выделение необходимых вычислительных ресурсов для нужд параллельной задачи. 5. Освобождение выделенных вычислительных ресурсов после окончания счета параллельной задачи. 6. Организация ввода-вывода и информационного обмена для многих ветвей выполняющейся параллельной задачи. 7. Обеспечение равномерной загрузки процессоров параллельной ВС. 8. Обеспечение мониторинга вычислительных ресурсов и восстановления после отказов. Выполнение указанных задач возлагается на различные блоки управляющей системы, которые, вообще говоря, могут быть распределены по различным программным и аппаратным компонентам ВС. Заметим, что управляющие блоки могут быть выстроены в иерархическую многоуровневую систему. Предполагается, что в параллельной ВС могут быть выделены отдельные подсистемы, и на каждую выделенную подсистему может быть назначен определенный вид вычислительных работ. Состояние параллельной ВС, связанное с определенным разбиением на подсистемы и назначением на подсистемы определенных видов работ, называется функциональным состояниемсистемы. Периодически в такой системе необходимо производить перераспределение ресурсов, т.е. производить изменение функционального состояния системы. На вход системы поступает поток заданий на выполнение, которые могут ждать освобождения вычислительных ресурсов в одной или нескольких входных очередях. Вычислительные процессы, протекающие на выделенных подсистемах, могут находиться в разных состояниях (выполнения, ожидания, зацикливания) и выдавать разные запросы к ОС параллельной ВС. Текущее функциональное состояние системы, состояние вычислений процессов на выделенных подсистемах, текущее содержимое входных очередей определяют текущую мультипрограммную ситуацию. Каждый из иерархических уровней управляющей системы уменьшает неопределенность сложной мультипрограммной ситуации, определяя и фиксируя ряд параметров для вышестоящего уровня. Выделяется четыре уровня принятия решений. Первый уровень – уровень пользователя, который выбирает алгоритмы для своих задач, средства для записи алгоритмов, их анализа, отладки и т.п. На втором уровне принимаются локальные, автономные решения по распределению ресурсов в рамках одного вычислительного модуля. На третьем уровне принимаются решения, которые связаны с распределением ресурсов подсистемы и доступа к системным (обобществленным) внешним устройствам. С появлением задач, которые не могут быть решены в рамках существующих подсистем и установленных режимов, вырабатываются требования к вышестоящему уровню для изменения функционального состояния параллельной ВС. На четвертом уровне принимаются глобальные, системные решения, изменяющие функциональное состояние всей ВС. Эти решения определяются приоритетами режимов функционирования, очередями задач, состоянием ресурсов системы, директивами оператора и т.п. Существует три основных типа организации вычислительного процесса в параллельных ВС: · ведущий – ведомый; · раздельное выполнение заданий в каждом процессоре; · симметричная, или однородная, обработка во всех процессорах. Возможны также малоразличающиеся варианты такой организации процессов. Наиболее простым для реализации является метод обработки типа «ведущий-ведомый». Он чаще всего используется в асимметричных и неоднородных ВС, таких, как ВС с распределенной ОП (массово-параллельные, кластерные и т.п.), но может применяться и в системах с общей памятью. При данной организации системные управляющие функции реализуются только в одном процессоре (ведущем), который может быть выбран оператором или автоматически. Этот процессор может иметь специально разработанную для управления конфигурацию или быть обычным универсальным процессором. Специально разработанный супервизорный процессор предназначается исключительно для выполнения управляющих функций, в то время как универсальный процессор может быть использован для расчетов по прикладным программам, когда супервизорные процедуры не выполняются. Система типа «ведущий-ведомый» подвержена отказам при сбоях в ведущем процессоре. Если последний не является специализированным, то оператор может заново запустить систему, используя при этом в качестве ведущего другой процессор. Ведущий процессор должен обеспечить выполнение управляющих функций достаточно быстро, чтобы удовлетворять выдвигаемым требованиям с опережением. Если это условие не выполняется, то эффективность использования системы может оказаться очень низкой. Заметим, что в массово-параллельных и кластерных ВС метод «ведущий-ведомый» фактически является единственно возможным методом организации вычислительного процесса. В качестве ведущего процессора здесь выступает управляющая ЭВМ, на которую возлагаются все управляющие функции третьего и четвертого уровней иерархии. Функции первого и второго уровней выполняются ОС вычислительных модулей. Другим типом организации обработки информации в параллельной ВС является раздельное выполнение заданий в каждом процессоре. Заметим, что применение данного типа обработки возможно уже только в ВС с общей памятью. В этом случае управляющие (супервизорные) функции осуществляются каждым процессором в соответствии с его потребностями и требованиями предназначенных для него программ. Поскольку модули супервизора выполняются несколькими процессорами, предусматривается их повторная входимость, или копии их должны быть загружены в каждый процессор. В некоторых случаях используется сочетание указанных двух методов. Число конфликтов, вызванных блокировкой системных таблиц, в таких системах невелико, так как каждый процессор может иметь собственный набор необходимых программных модулей. При этом число общих исполнительных таблиц незначительно. Все операции ввода-вывода для любой задачи выполняет процессор, на который эта задача возложена. Прерывания по вводу-выводу поступают на процессор, который инициирует соответствующие операции ввода-вывода. При отказе какого-либо процессора система с раздельным выполнением заданий в целом не теряет работоспособности. Однако восстановление и повторный запуск программ, которые выполнялись отказавшим процессором, обычно сопряжены с большими трудностями. Эффективность такой системы мала, если один процессор загружен большими заданиями, в то время как другие простаивают. Третий тип организации обработки - симметричная обработка во всех процессорах, - так же, как и второй, используется только в ВС с общей памятью. Симметричная обработка наиболее естественна для SMP-систем, поскольку такая ВС чаще всего является совокупностью одинаковых процессорных блоков, которые совместно используют общую память, а также каналы и устройства ввода-вывода. Общесистемное управление в SMP-системе непрерывно перераспределяется между процессорами. Один из процессоров, обеспечивающий в данный момент управление системными таблицами и такие функции, как планирование, называется исполнительным. Для предотвращения конфликтных ситуаций в каждый момент времени исполнительным может быть только один процессор. Каждый процессор выполняет также управляющие функции, неразрывно связанные с решаемой им задачей, и функции, необходимые для выполнения новой задачи, если текущая будет прервана или полностью завершена. Поскольку процессоры однородны и могут быть использованы по одному назначению, любая задача может обрабатываться одним или несколькими процессорами. Для успешного ее выполнения могут быть применены разные наборы процессоров. Лучшая балансировка загрузки и повышение эффективности системы достигаются путем выполнения неспецифических функций, таких, как прерывание для ввода-вывода наименее загруженных в данный момент процессоров. Несмотря на то, что в общесистемном управлении только один процессор является исполнительным, несколько других могут одновременно выполнять те же управляющие процедуры. Поэтому эти процедуры должны обладать повторной входимостью, или должны иметься копии для каждого случая запуска. Подобная организация обладает несколькими важными преимуществами: при выходе из строя отдельных устройств система частично сохраняет работоспособность (т.е. происходит постепенная деградация); благодаря однородности возможно эффективное резервирование для обеспечения надежности; наиболее эффективно используются ресурсы. Несмотря на наиболее совершенную форму организации функционирования параллельной ВС симметричная обработка в то же время наиболее сложна для реализации. Одна из главных проблем симметричной обработки тесно связана с необходимостью равномерной загрузки всех процессоров в каждый период времени. Решение этой проблемы для неделимых задач может потребовать применения сложных методов прогнозирования с целью оценки времени решения задач и других требований к ресурсам системы. В настоящее время не существует оптимального метода решения этой проблемы. Поэтому в современных ОС для SMP-систем широко применяется мультитредовый (многпотоковый) подход, в соответствии с которым ветви параллельной программы представляются в виде так называемых нитей (тредов, от английского thread – «нить») одного вычислительного процесса. Нити представляет собой отдельные потоки вычислений, выполняющиеся в адресном пространстве единого вычислительного процесса. За счет применения мультитредового подхода возможно достижение очень высоких показателей равномерности загрузки процессоров и масштабируемости всей параллельной ВС в целом. |