Диффундирующие вычисления

Материал из Викиконспекты
Версия от 08:53, 3 июня 2019; Yeputons (обсуждение | вклад) (Новая страница: «Категория: Параллельное программирование {{Определение |definition= '''Диффундирующее вычис…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


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

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


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

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


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