Вычислительные парадигмы

В тех программах, которые содержат большое число потоков или независимых процессов, для структуризации их работы используется некоторая парадигма (система форм, конструкция). Рассмотрим наиболее распространенные из них [16]:

одна программа, несколько потоков данных (Single Program Multiple Data – SPMD). Система состоит из нескольких независимых про

цессов, которые выполняют одну и ту же программу (каждый в своем пространстве), но с разными наборами данных;

  • конвейер с тремя процессами и более (рис. 17.11,а). При этом данные поступают в первый процесс Р1, который преобразует их и передает второму процессу Р2 для чтения и т.д. При длинном потоке данных все процессоры могут быть заняты одновременно;
  • фазированная обработка (рис. 17.11,б), когда работа разделяется на фазы (стадии, этапы), например, повторения цикла. Во время каждой фазы несколько процессов работают параллельно, но если один из процессов закончит свою работу раньше, он должен ждать до тех пор, пока все остальные процессы не завершат свою работу, и только после этого начинается следующая фаза;
  • • парадигма разделяй и властвуй, когда запускается один процесс, порождающий другие процессы, которым он может передать часть работы (рис. 17.1!,в);
  • • парадигма replicated worker (рабочий процессор повторной обработки), при которой существует центральная очередь, рабочие процессы получают задачи из этой очереди и выполняют их (рис. 17.11,г). Если задача порождает новые задачи, они добавляются к центральной очереди.

Основные парадигмы обработки: конвейер (а); фазированная обработка (б);

Рис. 17.11. Основные парадигмы обработки: конвейер (а); фазированная обработка (б); "разделяй и властвуй" (в); replicated worker (г)

 
< Пред   СОДЕРЖАНИЕ     След >