<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=94.142.26.31&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=94.142.26.31&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/94.142.26.31"/>
		<updated>2026-05-04T05:17:58Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%BB%D1%8F_WCP&amp;diff=64543</id>
		<title>Централизованный алгоритм для WCP</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A6%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%B4%D0%BB%D1%8F_WCP&amp;diff=64543"/>
				<updated>2018-03-21T21:37:34Z</updated>
		
		<summary type="html">&lt;p&gt;94.142.26.31: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Категория: Параллельное программирование]]&lt;br /&gt;
'''Централизованный алгоритм для WCP''' – алгоритм для поиска наименьшего (проще говоря, самого левого) [[Срез, согласованный срез|согласованного среза]] в котором выполняется [[Слабый конъюнктивный предикат (WCP)|слабый конъюнктивный предикат]].&lt;br /&gt;
&lt;br /&gt;
В централизованном алгоритме используются [[Векторные часы|векторные часы]]. Срез задается набором векторных часов для всех процессов.&lt;br /&gt;
&lt;br /&gt;
Суть алгоритма:&lt;br /&gt;
* Есть один процесс-координатор, ответственный за поиск согласованного среза;&lt;br /&gt;
* Остальные процессы обычные, их задача проверять свои локальные предикаты;&lt;br /&gt;
* Всякий раз, когда впервые с момента последнего отправленного сообщения локальный предикат становится true, оповещаем об этом координатора, указывая свое векторное время;&lt;br /&gt;
* Координатор поддерживает в памяти срез-кандидат и очередь необработанных сообщений от каждого процесса;&lt;br /&gt;
* Срез-кандидат согласован тогда и только тогда, когда все соответствующие вектора попарно несравнимы;&lt;br /&gt;
* Координатор хранит вектора среза-кандидата и флажок для каждой его компоненты: красный – этот элемент не может быть частью согласованного среза, зеленый – может;&lt;br /&gt;
* Начальное состояние – все по нулям, красные;&lt;br /&gt;
* Обрабатываем приходящие сообщения только от красных процессов, сообщения от зеленых ставим в очередь:&lt;br /&gt;
** Сравниваем пришедший вектор попарно с другими процессами, если новый вектор больше, то делаем меньший процесс красным;&lt;br /&gt;
** После обработки сообщения делаем процесс зеленым.&lt;br /&gt;
* Если все зеленое, то мы нашли согласованный срез.&lt;/div&gt;</summary>
		<author><name>94.142.26.31</name></author>	</entry>

	</feed>