Диффундирующие вычисления — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «Категория: Параллельное программирование {{Определение |definition= '''Диффундирующее вычис…»)
 
м (rollbackEdits.php mass rollback)
 
(не показана 1 промежуточная версия 1 участника)
(нет различий)

Текущая версия на 19:40, 4 сентября 2022


Определение:
Диффундирующее вычисление — это вычисление, которое происходит следующим образом:
  • Каждый процесс бывает либо активным, либо пассивным
  • Если процесс получает сообщение, он становится активным
  • Только активный процесс может посылать сообщения
  • Активный процесс может в любой момент по своему желанию стать пассивным
  • Исходно есть ровно один активный процесс — инициатор

Пример: распределённый алгоритм Дейкстры для поиска кратчайшего пути. Каждой вершине соответствует процесс, он рассылает соседям (с которыми связан ребром) улучшенные расстояния до них.


Определение:
Диффундирующее вычисление остановилось, если все процессы пассивные и нет сообщений в пути (потому что они могут кого-то активизировать).

Замечание: это стабильный предикат.


Определение:
Проблема останова диффундирующего вычисления: как инициатор узнает о том, что вычисление остановилось?