Principali problemi irrisolti nei sistemi distribuiti?


23

Ispirati da questa domanda , quali sono i principali problemi e le soluzioni esistenti che richiedono miglioramenti nel dominio dei sistemi distribuiti (teorici).

Qualcosa come i protocolli di appartenenza, la coerenza dei dati?

Risposte:



14

La complessità temporale distribuita di numerosi problemi con i grafici è ancora una domanda aperta.

In generale, gli algoritmi dei grafi distribuiti sono un'area in cui ci aspetteremmo di avere (almeno asintoticamente) corrispondenza dei limiti superiore e inferiore per la complessità temporale distribuita dei problemi del grafico. Ad esempio, per molti problemi di ottimizzazione sono noti limiti stretti . Tuttavia, ci sono molti problemi classici di rottura della simmetria che sono ancora poco compresi.

Δ+12Δ-1Δ

O(Δ+log*n)nO(Δ)+o(log*n)o(Δ)+O(log*n)turni. In generale, non capiamo in che modo i tempi di esecuzione dipendono dal massimo grado - questo è ciò che chiamo il problema di coordinamento locale .

nΔ


Sopra, mi sono concentrato su domande specifiche del calcolo distribuito. Ci sono anche domande aperte negli algoritmi di grafi distribuiti che hanno connessioni non banali a problemi aperti nell'informatica teorica in generale. Ad esempio, i limiti inferiori non costanti per il modello di cricca congestionato sono una grande domanda aperta nel calcolo distribuito; è stato recentemente scoperto che tali limiti inferiori implicherebbero anche nuovi limiti inferiori per l'ACC.


7

Problemi aperti su "Algoritmi distribuiti per alberi di spanning minimi (MST)": (elencati in [1])

  1. Per quanto riguarda la complessità temporale ,

    Algoritmi ottimali per il tempo prossimo e limiti inferiori appaiono in [2] e riferimenti qui. La complessità temporale ottimale rimane un problema aperto.

  2. circa complessità del messaggio ,

    O(m+nlogn) per il problema MST nei grafici generali è noto, trovare le costanti effettive rimane un problema aperto.

  3. Per quanto riguarda il modello sincrono :

    In un modello sincrono per reti overlay, in cui tutti i processori sono direttamente collegati tra loro, un MST può essere costruito in tempo sublogaritmico, vale a dire O(loglogn) round di comunicazione [3] e non è noto alcun limite inferiore corrispondente.

Si noti inoltre che esiste un O(logn) algoritmo di approssimazione per MST distribuito [4].


[1] Algoritmi distribuiti per alberi di spanning minimi di Sergio Rajsbaum in "Encyclopedia of Algorithms", 2008.

[2] MST distribuito per grafici a diametro costante di Lotker et al. Distrib. Comput., 2006.

[3] Peso minimo che abbraccia la costruzione dell'albero inO(loglogn)round di comunicazione di Lotker et al. SIAM J. Comput., 35 (1), 2005.

[4] Un algoritmo di approssimazione distribuito veloce per alberi di spanning minimi di Khan et al. DISC 2006.


3
Per quanto riguarda il terzo elemento: un limite superiore di O(logloglogn)è anche noto, vedi arxiv.org/abs/1412.2333 - e come ho brevemente menzionato nella mia risposta, oggi comprendiamo un po 'meglio perché ci sono stati così pochi progressi con limiti inferiori per il modello di cricca congestionato (limiti inferiori non banali per i congestionati modello di cricca implicherebbe limiti inferiori di complessità del circuito non banale).
Jukka Suomela,

4

vedi anche (più di recente) una presentazione "Problemi di informatica irrisolti nell'informatica distribuita" del 2012 del ricercatore di Notre Dame Douglas Thain che guida il loro laboratorio di informatica cooperativa. ha più di un'inclinazione applicata ma le domande chiave elencate portano inevitabilmente ad aree teoriche.

  • Il problema Kiloscale: qualsiasi flusso di lavoro con una concorrenza sufficiente dovrebbe essere in grado di funzionare correttamente su core 1K la prima volta e ogni volta senza l'aiuto di sysadmin.

  • Il problema di arresto: dato un flusso di lavoro in esecuzione su mille nodi, fermalo e ripulisci tutti gli stati associati con assoluta certezza.

  • Il problema della dipendenza:

    (1) Dato un programma, capire tutto ciò che è effettivamente necessario per funzionare su una macchina diversa.

    (2) Dato un processo, capire le risorse (distribuite) che effettivamente utilizza durante l'esecuzione.

    (3) Estendi 1 e 2 a un intero flusso di lavoro.

  • Il problema del dimensionamento corretto: data un'applicazione (strutturata) e un determinato cluster, cloud o griglia, scegliere un'allocazione delle risorse che raggiunga buone prestazioni a costi accettabili.

  • Il problema di risoluzione dei problemi: quando si verifica un errore nel mezzo di uno stack di software a 100 strati, come e quando si segnala / riprova / ignora / elimina l'errore?

  • Il problema di progettazione: come devono essere progettate le applicazioni in modo che siano adatte per il calcolo distribuito?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.