На этом шаге мы рассмотрим особенности использования алгоритма Прима.
Оценим возможности параллельного выполнения рассмотренного алгоритма нахождения минимального охватывающего дерева. Итерации метода должны выполняться последовательно и, тем самым, не могут быть распараллелены. С другой стороны, выполняемые на каждой итерации алгоритма действия являются независимыми и могут реализовываться одновременно. Так, например, определение величин di может осуществляться для каждой вершины графа в отдельности, нахождение дуги минимального веса может быть реализовано по каскадной схеме и т.д.
Распределение данных между процессорами вычислительной системы должно обеспечивать независимость перечисленных операций алгоритма Прима. В частности, это может быть реализовано, если каждая вершина графа располагается на процессоре вместе со всей связанной с вершиной информацией. Соблюдение данного принципа приводит к тому, что при равномерной загрузке каждый процессор Pj, 1<=j<=p, должен содержать:
1. Набор вершин
2. Соответствующий этому набору блок из k величин
3. Вертикальную полосу матрицы смежности графа G из k соседних столбцов
4. Общую часть набора Vj и формируемого в процессоре вычислений множества вершин VT.
Можно заключить, что базовой подзадачей в параллельном алгоритме Прима может служить процедура вычисления блока значений для вершин Vj матрицы смежности А графа G.
С учетом выбора базовых подзадач общая схема параллельного выполнения алгоритма Прима будет состоять в следующем:
Таким образом, в ходе параллельных вычислений между процессорами выполняются два типа информационных взаимодействий - сбор данных от всех процессоров на одном из процессоров и передача сообщений от одного процессора всем процессорам вычислительной системы.
В соответствии с определением количество базовых подзадач всегда соответствует числу имеющихся процессоров и, тем самым, проблема масштабирования для параллельного алгоритма не возникает.
Распределение подзадач между процессорами должно учитывать характер выполняемых в алгоритме Прима коммуникационных операций. Для эффективной реализации требуемых информационных взаимодействий между базовыми подзадачами топология сети передачи данных должна иметь структуру гиперкуба или полного графа.
На следующем шаге мы проанализируем эффективность использования алгоритма Флойда.