Полная версия

Главная arrow Информатика arrow Архитектура ЭВМ и систем

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

17.5. Программное обеспечение

Существует четыре подхода к разработке программного обеспечения для параллельных компьютеров [16]:

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

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

Модели управления

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

  • • модель управления, для которой существует один поток управления (одна программа), один счетчик команд и несколько наборов данных. Каждая команда выполняется над всеми наборами данных одновременно разными обрабатывающими элементами (набором функциональных блоков). Такая модель может быть реализована с помощью АЛУ и памяти (без схемы декодирования команд). При этом центральный блок вызывает команду и сообщает всем АЛУ, какую операцию необходимо выполнить;
  • • модель управления с несколькими потоками управления, каждый из которых содержит собственный счетчик команд, регистры и локальные переменные. В такой модели каждый поток управления выполняет собственную программу над своими данными и время от времени взаимодействует с другими потоками управления. Существует множество вариантов реализации этой модели, формирующих в совокупности основную модель для параллельной обработки, которая и рассматривается в дальнейшем.
 
<<   СОДЕРЖАНИЕ   >>