Параллелизм независимых ветвей

Опубликовано в Архитектуры процессоров (истоки)

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

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

Параллелизм независимых ветвей

Параллелизм независимых ветвей

Определение параллелизма ветвей на основе графа вычислительного процесса задачи

Более внимательное изучение проблемы параллелизма ветвей показывает, что необходимо выполнение следующих условий для параллельного выполнения этапов:

1. нет связи по данным — результаты одного этапа не являются входом другого;

2. нет связей по уравнению — один этап не передает управление другому;

3. нет общих ячеек памяти по записи — этапы не производят запись по одному и тому же адресу памяти.

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

Она должна распределять параллельные ветви по процессорам в соответствии с графом вычислительного процесса задачи.