The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
next up previous contents
Next: Общая синхронизация с активным Up: Синхронизационные вызовы Previous: Синхронизационные вызовы   Contents

Fence

MPI_WIN_FENCE(assert,win)

IN ASSERT программное допущение (целое)  
IN WIN объект окна (дескриптор)  

int MPI_Win_fence(int assert, MPI_Win win)

MPI_WIN_FENCE(ASSERT, WIN, IERROR)
INTEGER ASSERT, WIN, IERROR

void MPI::Win::Fence(int assert) const

MPI вызов MPI_WIN_FENCE(assert, win) синхронизирует RMA вызовы к win. Вызов является коллективным в группе win. Все RMA операции в win, происходящие в данном процессе и начатые до вызова fence, выполнятся в этом процессе до того, как произойдет возврат из вызова fence. Они выполнятся в их адресате до того, как произойдет возврат из fence в адресат. RMA операции в win, начатые процессом после того, как произойдет возврат из fence, получат доступ к окну адресата только после того, как процессом-адресатом будет выполнен вызов MPI_WIN_FENCE.

Вызов завершает период RMA доступа, если ему предшествовал другой вызов fence и локальные процессы, созданные коммуникационными RMA вызовами к win между этими двумя вызовами. Вызов завершает RMA период предоставления доступа, если ему предшествовал другой вызов fence, и локальное окно было адресатом RMA обращений между этими двумя вызовами. Вызов начинает RMA период предоставления доступа, если он предшествует другому вызову fence и коммуникационным RMA вызовам, созданным между этими двумя вызовами. Вызов начинает период предоставления доступа, если он предшествует другому вызову fence и локальное окно является адресатом RMA обращений между этими двумя вызовами fence. Таким образом, вызов fence эквивалентен вызовам к подмножеству операций post, start, complete, wait.

Вызов fence обычно влечет за собой барьерную синхронизацию: процесс завершает вызов
MPI_WIN_FENCE только после того, как все другие процессы в группе сделали свой соответствующий вызов. Тем не менее, вызов MPI_WIN_FENCE который, как известно завершает не любой период, (в частности, вызов с assert = MPI_MODE_NOPRECEDE) не обязательно действует как барьер.

Аргумент assert используется, чтобы обеспечить соглашения о контексте вызова, которые могут использоваться для различных оптимизаций. Это описывается в разделе 4.4.4. Значение assert = 0 всегда справедливо.

Совет пользователям: Вызовы MPI_WIN_FENCE должны как предшествовать, так и следовать за вызовами get, put или accumulate, которые синхронизируются с помощью вызовов fence. []



Alex Otwagin 2002-12-10

ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Оформить подписку на год


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList