J'ai fait quelques recherches sur l'algorithme de Rete et j'ai trouvé plusieurs articles sur le fait de le rendre parallèle (à la fois l'appariement et le tir de règle) les plus anciens datant du milieu des années 80. Cependant, je ne trouve aucune information sur une implémentation parallèle dans l'un des moteurs de règles sur le marché aujourd'hui. Je comprends que le tir de règles parallèles est problématique, mais il y a plusieurs solutions proposées. Un moteur de règles peut-il implémenter une version parallèle de Rete? Si oui, lequel? Si non, pourquoi pas? Est-ce trop difficile d'obtenir un gain de performance significatif ou existe-t-il d'autres raisons? Tous les liens vers plus d'informations sont appréciés.Existe-t-il des implémentations d'une version parallèle de l'algorithme Rete?
Répondre
Je crois que ReteNT fait.
Nous travaillons sur quelque chose cet été pour le projet Drools, j'espère que nous aurons quelque chose de prototypable avant la fin de cette année. Nous le prenons sous deux angles. 1) Fusionner l'algorithme Rete et Leaps, qui fournit des propagations bêta paresseuses et les évaluations sont faites sur une base de curseur de règle (permet une évaluation plus facile des règles parallèles). 2) Déplacez-vous des propagations de collection de propagations basées sur le tuple. Cela permettra aux nœuds d'être programmés en tant que tâches. D'autres noeuds avec un grand nombre d'objets peuvent être localement "réduits en carte" pour paralléliser davantage la création de la collection qui sera propagée depuis le noeud.
Si vous voulez discuter plus, venez nous rejoindre sur irc :) http://www.jboss.org/drools/irc
- 1. OWL2 RL via l'algorithme RETE
- 2. Statut des implémentations POSIX
- 3. Des implémentations de XQueryX?
- 4. Des implémentations simples de JColorChooser?
- 5. liste de retour des implémentations génériques possibles
- 6. Comparaison des performances des implémentations logicielles
- 7. Implémentations de Servlet 3.0 disponibles?
- 8. Pourquoi ce code parallèle est-il plus lent que sa version non parallèle similaire?
- 9. Plusieurs implémentations de CLLocationManager
- 10. Implémentations de hachage linéaire
- 11. Haskell: code parallèle est plus lent que la version séquentielle
- 12. Implémentations incohérentes de TCP
- 13. Implémentations de flux
- 14. C# Implémentations de EventPublisher
- 15. Des implémentations existantes de Dictionary qui sont sans déchets?
- 16. Implémentations OpenMP dans VC++ 2008, 2010
- 17. Injecter des dépendances dans les implémentations IWindsorInstaller
- 18. Implémentations par défaut des méthodes abstraites
- 19. Dans l'application Acheter des implémentations open source?
- 20. Injecter des implémentations spécifiques en utilisant Unity
- 21. Implémentations JSON qui gèrent des tableaux clairsemés
- 22. "Veuillez patienter ...", "Chargement", "Enregistrement", "Génération" des implémentations
- 23. Traitement parallèle des messages JMS?
- 24. Tri des pannes en parallèle
- 25. Programmation parallèle avec des outils
- 26. Implémentations Python de l'algorithme d'empaquetage
- 27. Itérateur parallèle dans Scala
- 28. Existe-t-il des implémentations WebRTC permettant l'enregistrement vidéo?
- 29. Implémentations de proxy dynamique Java
- 30. exécution parallèle de AsyncTask