Опубликован: 22.12.2006 | Доступ: свободный | Студентов: 1218 / 120 | Оценка: 4.73 / 4.45 | Длительность: 18:17:00
ISBN: 978-5-94774-546-7
Специальности: Программист
Лекция 14:

Заключение

< Лекция 13 || Лекция 14

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

  1. Динамическое распределение взаимосвязанных работ в коллективе исполнителей.

    Это направление в наибольшей степени отражено в настоящем пособии.

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

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

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

  2. Распределение данных и объектов для совместной обработки (совместного обслуживания) коллективом исполнителей по единому ветвящемуся алгоритму.

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

    Именно по такому принципу в лекциях 13—19 предлагается решать сложные оптимизационные задачи, распределяя варианты решения между процессорами ВС или станциями вычислительной сети. Именно этот принцип адекватен обработке заявок торговой фирмой, парикмахерской, базой данных, системой обслуживания потока целей перехватчиками и т.д.

  3. Оперативное планирование и мониторинг выполнения сложных проектов.

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

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

    Однако эти задачи интегрируются в более глобальные и ответственные:

    • минимизация стоимости проекта в соответствии с привлечением организаций-исполнителей при необходимости выполнения работ в заданный срок;
    • минимизация времени выполнения проекта при заданном множестве исполнителей. В лекции 20 иллюстрируется решение подобных задач для однородных систем исполнителей. В расширенной, более практической постановке эти задачи точно решаются в [4].

  4. Параллельные и сетевые методы моделирования и решения оптимизационных задач.

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

  5. Схемы и структуры информационного взаимодействия при организации сложных управляющих систем.

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

  6. Оперативное диспетчирование.

    В централизованных системах управления различного назначения с применением единого управляющего звена важным элементом становится планирующий орган, динамически загружающий заданиями множество исполнителей, задающий расписание их работы для максимизации их полезной загрузки и минимизации времени выполнения каждого конечного комплекса работ. Предполагается, что задания образуют бесконечный поток. Основная сложность диспетчирования следует из взаимозависимости заданий, то есть, из их частичной упорядоченности. К диспетчеру предъявляются высокие требования по быстродействию и по статистической близости порождаемого им плана выполнения работ к точному плану. В них используются эвристические алгоритмы планирования, основанные на применении некоторого решающего правила. Такие алгоритмы, ориентированные на централизованные вычислительные системы, но на деле имеющие широкое применение, представлены в лекции 23. Однако и в других лекциях присутствуют, но специально не выделены, алгоритмы и приемы "быстрого" распределения работ между исполнителями. Например, при компоновке "длинных" командных слов используется эффективный алгоритм назначения работ на основе составного решающего правила: по времени выполнения работы, по суммарному объему связанных с ней последующих работ и по позднему сроку конца ее выполнения.

  7. Синхронизация параллельных процессов.

    Многообразные технологии распараллеливания базируются на общих обязательных и наиболее простых средствах синхронизации во избежание коллизий и тупиковых ситуаций при использовании общих ресурсов и при реализации частичной упорядоченности работ. Такими средствами являются матрицы следования, динамический анализ имен объектов, "семафорный" механизм, блокировка имен, "почтовые ящики". Они используются при решении весьма ограниченного набора задач синхронизации, к которым сводятся все способы поддержки параллельного выполнения работ.

< Лекция 13 || Лекция 14