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

  • Просмотров 1429
  • Скачиваний 146
  • Размер файла 49
    Кб

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

·      конструирование графа потока данных программы ·      запись графа потока данных на языке графов данных DGL ·      обработка записи на языке DGL ·      написание прикладных программ для узловых процессов ·      компиляция узловых процессов в формат DLL ·      запуск узловых процессов диспетчером на основе DGL Пример параллельной программы В качестве примера

расмотрим задачу приближенного вычисления числа Пи с использованием правила прямоугольников для вычисления определенного интеграла где Согласно правилу прямоугольников, где , а Следует отметить, что это «процессорная» программа. Она не затрагивает многие проблемы параллельного программирования, например критическое влияние процессов ввода-вывода. Тем не менее эта задача поможет ознакомится с основными принципами

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

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

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