Матричные часы — различия между версиями
(Новая страница: «'''Матричные часы''' – это обобщение [[Параллельное программирование: Векторные часы|вектор…») |
м (rollbackEdits.php mass rollback) |
||
(не показаны 4 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория: Параллельное программирование]] | ||
'''Матричные часы''' – это обобщение [[Параллельное программирование: Векторные часы|векторных часов]]. | '''Матричные часы''' – это обобщение [[Параллельное программирование: Векторные часы|векторных часов]]. | ||
В отличие от векторных часов: | В отличие от векторных часов: | ||
− | * | + | * Каждый процесс хранит вектор векторов (матрицу) целых чисел; |
− | * | + | * При передаче сообщения передается вся имеющаяся матрица; |
− | * | + | * В случае любого события, i-ый поток увеличивает на единицу свою компоненту матрицы, т.е M[i][i]; |
+ | * При приеме сообщения для всех строк, кроме строки, соответствующей номеру получившего потока (myId), берется покомпонентный максимум. А для M[myId][j] берется максимум из M[myId][j] и W[srcId][j], где W - матрица, которая пришла, srcId - номер потока, от которого пришла матрица W. | ||
Используя матричные часы, мы можем оценить нижнюю границу того, что знает другой поток. | Используя матричные часы, мы можем оценить нижнюю границу того, что знает другой поток. | ||
− | Кроме этого, | + | Кроме этого, матричные часы обладают всеми свойствами векторных часов, например, s -> t <=> s.M[s.p, x] < t.M[t.p, x] для любого х. |
− | |||
− |
Текущая версия на 19:06, 4 сентября 2022
Матричные часы – это обобщение векторных часов.
В отличие от векторных часов:
- Каждый процесс хранит вектор векторов (матрицу) целых чисел;
- При передаче сообщения передается вся имеющаяся матрица;
- В случае любого события, i-ый поток увеличивает на единицу свою компоненту матрицы, т.е M[i][i];
- При приеме сообщения для всех строк, кроме строки, соответствующей номеру получившего потока (myId), берется покомпонентный максимум. А для M[myId][j] берется максимум из M[myId][j] и W[srcId][j], где W - матрица, которая пришла, srcId - номер потока, от которого пришла матрица W.
Используя матричные часы, мы можем оценить нижнюю границу того, что знает другой поток.
Кроме этого, матричные часы обладают всеми свойствами векторных часов, например, s -> t <=> s.M[s.p, x] < t.M[t.p, x] для любого х.