Параллельный динамический поиск


24

Существует ли естественный параллельный аналог красно-черных деревьев со схожими или даже не очень худшими свойствами для обновлений, хотя он достаточно эффективен для работы?

В целом, что мы можем сделать лучше для параллельного поиска с обновлениями?


Какие именно свойства вы хотите сохранить или превратить «не ужасно хуже»? Насколько важно, чтобы состояние равновесия оставалось для красно-черных деревьев? Будут ли ожидаемые границы, как в параллельных списках пропусков, приемлемыми?
jbapple

Я думаю, что ожидаемые границы будут в порядке. Это ситуация, когда мы очень часто попадаем на структуру данных с обновленными значениями ключа, так что, если быть точным, даже эффективные операции с ключом изменения в виде куч Фибоначчи вполне подходят. У вас есть хорошая ссылка для одновременного пропуска списков?
Суреш Венкат

Книга Херлихи и Шавита «Искусство многопроцессорного программирования» или «Связанные списки без блокировок и списки пропусков» или java.util.concurrent или Практическая свобода блокировок . Рассматривали ли вы использование параллельной хэш-таблицы, такой как хэш-таблица классиков ?
jbapple

Вообще-то, нет. Я, к сожалению, неграмотен в параллельных методах. Спасибо за ссылки.
Суреш Венкат

Ответы:


8

Из того, что я могу сказать, стратегии включают в себя смягчение условий баланса, а затем выполнение обновлений перебалансировки в пакетах. Вот статья из Hanke et al., 1997 [PDF] , в которой, я думаю, основное внимание уделяется их методике агрегирования и разрешения операций обновления, чтобы их можно было выполнять одновременно.


5

Я думаю, что вы можете найти интересный ответ в книге Окасаки « Чисто функциональные структуры данных» . В этой книге показано много структур данных, так что каждое обновление не требует больших затрат (обычно занимает только постоянное или логарифмическое время).

NN


4
Я думаю, что без дальнейшей модификации чисто функциональные деревья поиска сериализуют все обновления и, таким образом, плохо работают при конфликте записи.
jbapple
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.