Recherche dynamique parallèle


24

Existe-t-il un analogue parallèle naturel aux arbres rouge-noir avec des propriétés de mise à jour similaires ou même pas pire, tout en étant raisonnablement efficace?

Plus généralement, que pouvons-nous faire de mieux pour la recherche parallèle avec mises à jour?


Quelles propriétés en particulier souhaitez-vous conserver ou transformer "pas terriblement pire"? À quel point est-il important que la condition d'équilibre soit toujours celle des arbres rouge-noir? Les limites attendues, comme dans les listes de sauts simultanées, seraient-elles acceptables?
jbapple

Je pense que les limites attendues seraient bien. C'est une situation où nous frappons la structure de données très souvent avec des valeurs de clé mises à jour, donc pour être précis, même des opérations de changement de clé efficaces à la pile de fibonacci sont très bien. Avez-vous une bonne référence pour les listes de sauts simultanées?
Suresh Venkat du

Le livre de Herlihy & Shavit, The Art of Multiprocessor Programming, ou "Lock-free linked lists and skip lists" ou java.util.concurrent ou Practical lock-freedom . Avez-vous envisagé d'utiliser une table de hachage simultanée comme une table de hachage de marelle ?
jbapple

En fait non. Je suis malheureusement analphabète dans les méthodes concurrentes. Merci pour les références.
Suresh Venkat

Réponses:


8

D'après ce que je peux dire, les stratégies impliquent d'assouplir les conditions d'équilibre, puis d'effectuer des mises à jour de rééquilibrage en rafales. Voici un article de Hanke et al., 1997 [PDF] , qui je pense se concentre sur leur technique d'agrégation et de résolution des opérations de mise à jour afin qu'elles puissent être effectuées simultanément.


5

Je pense que vous pouvez trouver une réponse intéressante dans le livre d'Okasaki Purely Functional Data Structures . Dans ce livre, de nombreuses structures de données sont présentées, de sorte que chaque mise à jour n'est pas coûteuse (ne prend généralement qu'un temps constant ou de logarithme).

nn


4
Je pense que, sans autre modification, les arbres de recherche purement fonctionnels sérialisent toutes les mises à jour et fonctionnent donc mal en cas de conflit d'écriture.
jbapple
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.