Паралельний динамічний пошук


24

Чи є природний паралельний аналог червоно-чорним деревам з подібними або навіть не дуже жахливими властивостями для оновлень, при цьому він є досить ефективним?

Загалом, що найкраще ми можемо зробити для паралельного пошуку з оновленнями?


Які властивості, зокрема, ви хочете зберегти або перетворити на «не дуже страшне»? Наскільки важливо, щоб стан балансу все ще був у червоно-чорних дерев? Чи очікувані межі, як у паралельних списках пропусків, будуть прийнятними?
jbapple

Я думаю, очікувані межі будуть добре. Це ситуація, коли ми дуже часто потрапляємо в структуру даних оновленими ключовими значеннями, тому, якщо бути точним, навіть ефективні операції зміни клавіш із нагромадженнями цілком добре. Чи є у вас хороша відповідь для одночасних пропускних списків?
Суреш Венкат

Книга Herlihy & Shavit, "Мистецтво багатопроцесорного програмування", або "Списки, пов'язані без блокування та пропуски списків", або java.util.concurrent або Практична свобода блокування . Чи думали ви використовувати сумісну хеш-таблицю, як хеш-таблицю hopscotch ?
jbapple

Насправді ні. Я сумно неграмотний у паралельних методах. Дякуємо за реф.
Суреш Венкат

Відповіді:


8

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


5

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

nn


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