Особенности организации вычислительных процессов
Хотя ММВК (многомашинные вычислительные комплексы) и МПВК (многопроцессорные вычислительные комплексы) относятся к комплексам с множественным потоком команд и множественным потоком данных, организация процессов обработки в них существенно различна. Многомашинный вычислительный комплекс в наибольшей степени приспособлен для решения потока несвязанных между собой задач, т.е. такой совокупностью задач, когда исходные данные, а также окончательные или промежуточные результаты решения одной задачи не используются при решении других задач. Строго говоря, в многомашинных вычислительных комплексах можно достаточно эффективно решать задачи, при решении которых объем взаимно передаваемой информации относительно невелик. Нетрудно заметить, что чем больший объём передаваемой информации, тем в большей степени снижается производительность системы, т.к. большую часть времени приходится расходовать на обмен. Анализ показывает, что решение одной задачи несколькими машинами в составе многомашинного вычислительного комплекса может быть оправданным только при наличии связи между ними через общее ОЗУ. Однако, в этом случае, трудность решения определяется не столько потерями производительности, сколько сложность синхронизации этапа решения. По этим причинам многомашинный вычислительный комплекс в основном используется для повышения надежности и увеличения производительности при решении потока независимых или слабо связанных задач. Как правило, операционная система в многомашинном вычислительном комплексе мало отличается от операционных систем одиночных ЭВМ. Операционные системы одиночных ЭВМ дополняются компонентами, которые выполняют функции связанные с комплексированием:
1. Обмен информацией между ЭВМ.
2. Взаимный контроль состояния ЭВМ.
3. Проведения регламентных работ.
4. Взаимодействие вычислительного комплекса с оператором.
Программные обмены могут быть различными по сложности в зависимости от характера межмашинных связей. Наиболее сложные программы обмена имеют место в комплексах, которые предназначены для решения связных задач или одной общей задачи. Кроме того, программа обмена обеспечивает передачу необходимой информации резервной ЭВМ.
Программы взаимного контроля состояния ЭВМ необходимы в тех случаях, когда комплекс предназначен для обеспечения повышенной надёжности.
В режиме длительного функционирования возникает необходимость в проведении регламентных работ. При этом, поочерёдно все машины выполняют функции основной и резервной ЭВМ. Для обеспечения такого перехода без перерывов в работе вычислительного комплекса и служит программа проведения регламентных работ. Многопроцессорные вычислительные комплексы имеют существенно большие возможности и большую гибкость, чем многомашинные вычислительные комплексы. Как в отношении повышения надёжности, так и в отношении организации параллельных вычислений. Эти возможности определяются тем, что все процессоры могут работать с общей памятью, иметь в своём непосредственном распоряжении все периферийные устройства и управляться единой операционной системой. Организации процесса обработки информации может быть различной, в зависимости от тех целей, которые преследует использование комплекса. Многопроцессорные вычислительные комплексы с существенно большей эффективностью могут решать сильно связанные задачи. При этом, благодаря использований общей памяти не требуется никакой передачи информации. При решении одной задачи на нескольких процессорах можно в полной мере использовать параллелизм независимых ветвей. Таким образом, если многомашинные вычислительные комплексы позволяют достигать высокой производительности при решении большого потока задач, то многопроцессорные вычислительные комплексы позволяют это сделать даже при решении одной задачи. Кроме того, многопроцессорные вычислительные комплексы обладают большими возможностями для обеспечения высокой надежности. Выход из строя любого устройства не приводит к отказу комплекса, так как исправные устройства могут продолжать решение задачи, которая выполнялась отказавшим устройством. Весьма важным является то, что многопроцессорный вычислительный комплекс позволяет повысить коэффициент использования оборудования. Однако, использования всех богатых возможностей многопроцессорного вычислительного комплекса является непростой задачей, так как операционные системы, на которые падает основная тяжесть организации вычислительных процессов, оказываются очень сложными. Операционные системы можно упрощать, если отказываться от тех или иных возможностей комплекса. На это нередко идут разработчики многопроцессорного вычислительного комплекса, получая в замен урезанных возможностей более простую операционную систему. Основными функциональными возможностями, которыми должна обладать операционная система многопроцессорного вычислительного комплекса состоят в следующем:
1. Распределение ресурсов и управление ими.
2. Защита множества системных таблиц и данных.
3. Обработка тупиковых ситуаций.
4. Обработка ненормальный окончаний вычислений.
5. Балансировка нагрузки ввода-вывода.
6. Балансировка нагрузки процессоров.
7. Реконфигурация.
В настоящее время известны три типа организации вычислительного процесса в многопроцессорных вычислительных комплексах и следовательно три типа функционирования операционных систем:
1. Ведущий-ведомый.
2. Раздельное выполнение заданий в каждом процессоре.
3. Симметричная или однородная обработка информации в каждом процессоре.
Организация работы многопроцессорного вычислительного комплекса по принципу «ведущий-ведомый» является наиболее простой. Один из процессоров управляет работой всех остальных, т.е. он берёт на себя функции распределения задач и ресурсов, организует необходимую передачу информации, производит переназначение задач в случае выхода из строя какого-либо процессора, производит отключение неисправных устройств. Остальные процессоры выполняют только функции непосредственной обработки. Операционная система такого многопроцессорного вычислительного комплекса получается достаточно простой вследствие того, что супервизорные функции выполняет один процессор, конфликты из-за ресурсов отсутствуют и организация системы такова, что число конфликтов от других причин сводится к минимуму. Кроме того, каждый процессор располагает своим набором различных таблиц, что упрощает организацию параллельных процессов. Ведущий процессор может ничем не отличаться от остальных. Просто его функции выполняет любой назначенный процессор. В случае отказа ведущего процессора можно произвести переназначение и сделать ведущим другой процессор. Иногда, учитывая специфичность выполняемых ведущим процессором функций, его делают специализированным, настроенным на выполнение узкого круга операций, добиваясь за счёт этого высокой производительности. Однако, такое решение имеет тот недостаток, что при отказе ведущего процессора из строя выходит весь комплекс.
К недостаткам организации по типу «ведущий-ведомый» следует отнести малую её гибкость. При большом потоке коротких задач ведущий процессор может не справляться с распределением задач между исполнительными процессорами, что неизбежно приводит к простоям некоторых из них. По той же причине не очень эффективно работает комплекс при решении на нескольких процессорах одной задачи, поскольку в этом случае на ведущий процессор ложится большая работа по синхронизации процесса решения задачи. Таким образом, многопроцессорный вычислительный комплекс с организацией по типу «ведущий-ведомый» в наибольшей степени подходит для создания специализированных систем, в которых недостатки такой организации могут быть заранее учтены и их влияние сведено к минимуму.
Значительно большей универсальностью обладает организация обработки информации с раздельным выполнением заданий в каждом процессоре. В этом случае все процессоры равноправны и каждый выполняет как супервизорные, так и исполнительные функции. Но процессоры не свободны в выборе задач. Каждому процессору заранее определяется набор задач, которые он решает. Практически заранее распределяются и ресурсы между процессорами. Каждая задача полностью выполняется одним процессором. При этой организации каждый процессор обслуживает только самого себя, удовлетворяя лишь свои потребности. Так как операционная система общая для всех процессоров, то супервизорные программы должны обладать повторной входимостью, т.е. несколько процессоров должны иметь возможность работать с одной и той же программой операционной системы. Чтобы избежать такого требования к операционной системе, иногда используется другой способ: каждый процессор имеет свою копию операционной системы. В многопроцессорных вычислительных комплексах с раздельным выполнением заданий возникает мало конфликтов, т.к. ресурсы распределены заранее и каждый процессор имеет собственный набор таблиц. Чтобы избежать такого недостатка, в многопроцессорном вычислительном комплексе такого вида заранее распределяются ресурсы. Но и такой организацией трудно обеспечить равномерную загрузку процессоров, да и других устройств, так как практически невозможно всё просчитать заранее и тем более сложно сделать это в процессе работы комплекса, поэтому могут быть простои части оборудования. Такая организация обработки информации в многопроцессорном вычислительном комплексе делает его похожим на многомашинный вычислительный комплекс. Однако, есть и существенные отличия. Прежде всего, ресурсы используются гораздо эффективнее, так как общее число устройств может быть значительно меньше, чем в многомашинных вычислительных комплексах. Кроме того, при необходимости обеспечить высокую надёжность решения определённых задач резервирования это может быть осуществлено проще и эффективнее за счёт того, что все процессоры используют общие ресурсы. Такая организация вычислений получила распространение благодаря относительной простоте такой системы. В наибольшей степени, все преимущества многопроцессорного вычислительного комплекса проявляются при симметричной или однородной обработке. В этом случае все процессоры имеют максимальную самостоятельность. В комплексе не существует предварительного распределения заданий между процессорами. Каждый из них при освобождении от решения предыдущей задачи выбирает себе новую из общего списка или очереди. При данной организации нет и предварительного распределения ресурсов. Процессоры сами набирают ресурсы исходя из потребностей решаемой задачи. Все процессоры могут участвовать в решении одной задачи если отдельные её части включаются в общий список заданий. В комплексе автоматически отключается неисправное оборудование. При этом вычислительный комплекс продолжает работу с несколько пониженной производительностью. Таким образом, отказа вычислительного комплекса нет до тех пор, пока не исчерпано всё однотипное оборудование. Комплекс характеризуется хорошей загрузкой всех устройств, что позволяет достичь высокой эффективности. Такая организация, однако, несвободна от недостатков. Основные из них: большое число конфликтных ситуаций и сложность операционной системы.