next up previous contents
След.: Операторы LOCK и UNLOCK Выше: Операторы синхронизации Пред.: Оператор SYNC ALL   Содержание


Оператор SYNC IMAGES

Для большей гибкости введен оператор

SYNC IMAGES (набор образов)

где набор образов -- это либо целочисленный массив ранга один, содержащий отдельные индексы образов, или звездочка, означающая все образы. Он осуществляет синхронизацию образа, который его вызвал, с другими образами из указанного множества. Выполнения операторов SYNC IMAGES на образах $ M$ и $ T$ соответствуют друг другу, если число раз, когда $ M$ вызывал SYNC IMAGES с номером $ T$ в списке, равно числу раз, когда $ T$ вызывал SYNC IMAGES с номером $ M$ в списке.

Сегменты, выполняемые до SYNC IMAGES на каждом образе, предшествуют сегментам, которые выполняются после.

Выполнение SYNC IMAGES(*) не равносильно выполнению SYNC ALL. Оператор SYNC ALL принуждает все образы ждать друг друга, тогда как SYNC IMAGES может не содержать один и тот же список индексов на каждом образе, участвующем в синхронизации. В следующем примере образ 1 ждет, пока все остальные образы выполнят оператор SYNC IMAGES. Другие образы ждут образ 1, чтобы он задал данные, но друг друга не ждут.

IF (THIS_IMAGE() == 1) THEN

! Задать комассивные данные, нужные другим образам

SYNC IMAGES(*)

ELSE

SYNC IMAGES(1)

! Использовать данные, заданные первым образом.

END IF



Ilya A. Chernov 2012-12-19
X