Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »Информатика

Системы, управляемые потоком данных. Язык Dataflow Graph Language.

Тип: реферат
Категория: Информатика
Скачать
Купить
Системы, управляемые потоком данных. Язык Dataflow Graph Language.Курсовая работа Андреева М.В.г. Ульяновск, 1999ВведениеОдним из методов организации параллельных вычислений является метод, основанный основанный на принципе управления потоком данных. Обычно в вычислительных системах, управляемых потоком данных, команды машинного уровня управляются доступностью данных, проходящих по дугам графа потока данных (ГПД). Такому принципу управления потоком данных на уровне операций можно противопоставить принцип управления укрупненным потоком данных (Large-Grain Data Flow), в котором единица планирования вычислений крупнее (возможно, намного крупнее), чем одна машинная команда. ГПД - одна из наиболее распространенных форм представления программы в данной модели вычислений. Вершины ГПД соответствуют отдельным процессам, а дуги задают отношения между ними. Точка вершины, в которую входит дуга, называется входным портом (портом импорта или входом), а точка, из которой она выходит, - выходным (портом экспорта или выходом). По дугам передаются данные из одного процесса в другой.Данный метод заставляет программиста принять поэтапный подход к программированию, но, с другой стороны, избавляет от сложностей синхронизации, присущих большенству других моделей параллелизма.Программное обеспечениеСистема предназначена для работы в сети, в которой любые два компьютера могут обмениваться данными друг с другом. На любом компьютере может быть запушенно несколько процессов. Каждый процесс получает данные через порты импорта и может отслать данные через порты экспорта по дугам данных другим процессам.Запуск программы осуществляется под управлением диспетчера, который распределяет процессы по компьютерам и устанавливает связи между процессами. Для нормальной работы диспетчера на всех компьютерах должна быть запущена специальная программа - монитор. Монитор по запросу диспетчера запускает процесс, указанный в запросе, на своем компьютере.Порты импорта используются как очереди, и они, подобно каналам в ОС UNIX, буферизуют одно или неколько сообщений до тех пор, пока их не получит адресат. Объем буфера ограничен долько доступной емкостью памяти. Каждый порт импорта может быть связан с несколькими портами экспорта.Порты экспорта могут иметь несколько каналов, число которых определяется диспетчером после анализа графа данных на этапе запуска процесса. Каждый канал обязательно связан только с одним портом импорта.Подготовка прикладной программы к выполнению состоиз из следующих шагов:конструирование графа потока данных программызапись графа потока данных на языке графов данных DGLобработка записи на языке DGLнаписание прикладных программ для узловых процессовкомпиляция узловых процессов в формат DLLзапуск узловых процессов диспетчером на основе DGLПример параллельной программыВ качестве примера расмотрим задачу приближенного вычисления числа Пи с использованием правила прямоугольников для вычисления определенного интегралагде Согласно правилу прямоугольников,где , а .Следует отметить, что это «процессорная» программа. Она не затрагивает многие проблемы параллельного программирования, например критическое влияние процессов ввода-вывода. Тем не менее эта задача поможет ознакомится с основными принципами построения программ, работающих в соответствии с методом управления потоком данных.Существует множество подходов к решению контрольной задачи. Решение, приведенное ниже, иллюстрирует все основные шаги разработки программы.Конструирование графа потока данных программыГраф потока данных программы (или граф данных) определяет связи между процессами и дугами данных. Граф данных специфицирует все последуещее конструирование программы прикладной задачи. Его создание может потребовать немало усилий для определения того, как разбить программу на активизируемые данными процессы, чтобы достичь максимального увеличения скорости выполнения.В пределе разрабатываемая программа может быть создана в виде одного процесса, но при этом теряется параллелелизм. Можно создать множество мелких процессов, таких как один оператор или даже одна арифметическая операция, что приведет к резкому увеличению расходов, связанных с запуском каждого процесса и обменом данных между ними. Следует отметить, что структура решаемой задачи часто наводит на хорошее первое приближение.После того, как граф данных нарисован, каждый процесс, начало и конец каждой дуги помечаются буквенно-цифровым именем, которое используется в языке DGL. Если выход out имеет несколько каналов, то его i-й канал обозначается на схеме строкой out[i].Для подсчета числа Пи используется несколько рабочих процессов, которые вычисляют свои части интеграла и пересылают результат суммирующему процессу. Рабочие процессы обращаются за очередным заданием к процессу распределения работ. Вся работа не распределяется заранее равномерно между процессами: один рабочий процесс, если он запущен на более быстрой машине, может выполнить львиную долю работы.Из входа num_iter процесс Summer считывает число частичных сумм, которые он должен просуммировать до завершения своей работы. На вход arg процесса Worker поступает задание: границы и число интервалов. Если число интервалов в задании равно нулю, то процесс завершает работу. Пересылая свой идентификатор через выход demand рабочий процесс обращается за очередным заданием.
Другие файлы:

Билеты по информатике
68. Модуль GraphМодуль Graph обеспечивает ряд быстрых и мощных графическихподпрограмм. Он реализует независимый от устройств графическийдрайвер Borlan...

Graph Databases
Discover how graph databases can help you manage and query highly connected data. With this practical book, you’ll learn how to design and implement a...

The Boost Graph Library: User Guide and Reference Manual
The Boost Graph Library (BGL) is the first C++ library to apply the principles of generic programming to the construction of the advanced data structu...

Введение в системы баз данных
В пособии рассматриваются основные понятия и определения, современное состояние технологий баз данных, архитектура СУБД, концепции проектирования БД,...

Network Graph Analysis and Visualization with Gephi
Network Graph Analysis and Visualization with Gephi is a practical, hands-on guide that provides you with all the tools you need to begin creating you...