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?

Suresh Venkat
la source
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.

James King
la source
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

Arthur MILCHIOR
la source
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