Inspiré par cette question , quels sont les problèmes majeurs et les solutions existantes qui nécessitent une amélioration dans le domaine des systèmes distribués (théoriques).
Quelque chose comme les protocoles d'adhésion, la cohérence des données?
La complexité temporelle distribuée de nombreux problèmes de graphes reste une question ouverte.
En général, les algorithmes de graphe distribué sont un domaine dans lequel nous nous attendrions à avoir (au moins asymptotiquement) des limites supérieures et inférieures correspondantes pour la complexité temporelle distribuée des problèmes de graphe. Par exemple, pour de nombreux problèmes d'optimisation, des limites strictes sont connues . Cependant, il existe de nombreux problèmes classiques de rupture de symétrie qui sont encore mal compris.
Nous ne savons pas, par exemple, combien de tours de communication faut-il pour trouver un ensemble indépendant maximal , une correspondance maximale , une coloration de sommet appropriée avec couleurs, ou une coloration de bords appropriée avec couleurs dans un graphique avec un degré maximum de . Tous ces problèmes sont faciles à résoudre avec des algorithmes centralisés gourmands, et il existe des algorithmes distribués efficaces pour chacun de ces problèmes, mais nous ne savons pas si l'un des algorithmes actuels est optimal.2 Δ - 1 ΔΔ + 1 2 Δ - 1 Δ
Par exemple, pour tous ces problèmes, il existe des algorithmes distribués déterministes pour le modèle LOCAL avec des temps d'exécution de , où est le nombre de nœuds. Il est bien connu que ces problèmes ne peuvent pas être résolus en temps tours, mais on ne sait pas s'ils peuvent être résolus en temps tours. En général, nous ne comprenons pas comment les temps de course dépendent du degré maximum - c'est ce que j'appelle le problème de coordination locale .n O ( Δ ) + o ( log ∗ n ) o ( Δ ) + O ( log ∗ n )O ( Δ + log∗n ) n O ( Δ ) + o ( log∗n ) o(Δ)+O(log∗n)
Le rôle de l' aléatoire est un autre problème majeur. Par exemple, bon nombre des problèmes mentionnés ci-dessus peuvent être résolus en temps polylogique avec des algorithmes randomisés (c.-à-d., Le temps est polylog en pour toute valeur de ), mais aucun algorithme déterministe du temps polylogique n'est connu pour, par exemple, un maximum indépendant ensembles. Ces questions, ainsi que de nombreux autres problèmes ouverts, sont examinés plus en détail dans la section 11 du livre récent de Barenboim et Elkin .Δn Δ
Ci-dessus, je me suis concentré sur des questions spécifiques à l'informatique distribuée. Il existe également des questions ouvertes dans les algorithmes de graphes distribués qui ont des liens non triviaux avec des problèmes ouverts en informatique théorique en général. Par exemple, les bornes inférieures non constantes pour le modèle de clique congestionnée sont une grande question ouverte en informatique distribuée; il a été récemment découvert que de telles limites inférieures impliqueraient également de nouvelles limites inférieures pour l'ACC.
la source
Problèmes ouverts sur les «Algorithmes distribués pour les arbres couvrant minimum (MST)»: (répertoriés dans [1])
Concernant la complexité temporelle ,
Concernant la complexité des messages ,
Concernant le modèle synchrone :
Notez également qu'il existe un algorithme d' approximation pour le MST distribué [4].O(logn)
[1] Algorithmes distribués pour les arbres couvrant minimum par Sergio Rajsbaum dans "Encyclopedia of Algorithms", 2008.
[2] MST distribué pour les graphiques à diamètre constant par Lotker et al. Distrib. Comput., 2006.
[3] Construction d'un arbre couvrant un poids minimum dans les cycles de communicationO(loglogn) par Lotker et al. SIAM J.Comput., 35 (1), 2005.
[4] Un algorithme d'approximation distribuée rapide pour les arbres couvrant minimum par Khan et al. DISQUE 2006.
la source
voir aussi (plus récemment) un diaporama "Problèmes informatiques non résolus dans l'informatique distribuée" de 2012 par le chercheur de Notre Dame Douglas Thain qui dirige leur laboratoire informatique coopératif. il a plutôt une orientation appliquée, mais les questions clés énumérées mènent inévitablement à des domaines théoriques.
Le problème Kiloscale: Tout flux de travail avec une concurrence suffisante doit pouvoir s'exécuter correctement sur des cœurs 1K la première fois et à chaque fois sans l'aide de sysadmin.
Le problème de l'arrêt: étant donné un flux de travail exécuté sur mille nœuds, arrêtez-le et nettoyez tous les états associés en toute certitude.
Le problème de dépendance:
(1) Étant donné un programme, déterminez tout ce dont il a réellement besoin pour fonctionner sur une machine différente.
(2) Étant donné un processus, déterminez les ressources (distribuées) qu'il utilise réellement lors de l'exécution.
(3) Étendez 1 et 2 à un flux de travail complet.
Le problème du bon dimensionnement: étant donné une application (structurée) et un cluster, un cloud ou une grille donnés, choisissez une allocation de ressources qui réalise de bonnes performances à un coût acceptable.
Le problème de dépannage: Lorsqu'un échec se produit au milieu d'une pile logicielle de 100 couches, comment et quand signalez-vous / réessayez / ignorez / supprimez l'erreur?
Le problème de conception: comment les applications doivent-elles être conçues pour être bien adaptées à l'informatique distribuée?
la source