34
вычислений в сети, когда отдельная задача разделяется на подзадачи для
обработки которых используются сетевые вычислительные ресурсы.
Рассмотрим N машин, связанных в произвольную компьютерную сеть.
Все машины вместе выполняют некоторый распределенный алгоритм
вычислений, который мы будем называть базовым алгоритмом. Каждая
машина может быть либо в активном состоянии, выполняя базовые
вычисления, либо в пассивном состоянии, если она завершила свою часть
распределенного вычисления. Активная машина, выполняющая базовые
вычисления, может посылать информационный кадр каким-либо другим
машинам в сети, передавая им часть работы.
Информационные кадры получаются адресатом после некоторой
задержки в сети без потерь. Если пассивная машина получает
информационный кадр, она становится активной, активная машина,
получившая информационный кадр, остается активной и продолжает
вычисления.
Из активного состояния переход машины в пассивное состояние может
произойти по завершении ее части общих вычислений в любой момент.
Прием информационного кадра является единственным событием, которое
переключает машины из пассивного в активное состояние. Отсюда следует,
что ситуация, в которой все машины пассивны, а в сети нет сообщений,
посланных ранее какой-нибудь из активных машин, является стабильной:
распределенное вычисление завершено.
Для моделирования работы сети, выполняющей распределенные
вычисления, требуется использовать алгоритм распределенного завершения.
Суть алгоритма состоит в том, чтобы некоторая машина с определенным
номером, обнаружила, что система пришла в стабильное состояние как
можно быстрее. Тестируемая машина должна использовать информацию от
остальных машин об их состоянии. Алгоритм определения распределенного
завершения не может быть просто проверкой текущего состояния всех