Machine de Turing distribuée?

10

Je suis un étudiant en master axé sur les systèmes distribués mais également intéressé par l'informatique théorique. Je me demandais s'il y avait une représentation formelle d'un système distribué au-dessus d'une machine de turing? Autrement dit, est-il possible d'étendre (faire une variante) le concept d'une machine de turing pour tirer parti de l'informatique distribuée?

Une idée est de créer une bande partagée (quelque chose de similaire à Tuple Space ) entre TM.

Marcos Roriz Junior
la source
8
Peut-être lié: cstheory.stackexchange.com/questions/426/…
Jukka Suomela
3
la question à laquelle Jukka renvoie peut ne pas répondre entièrement à votre question. Si oui, vous pouvez peut-être fermer celui-ci, et sinon, vous pouvez peut-être clarifier ce qui est différent?
Suresh Venkat
@Suresh Venkat, je pense que la question liée à Jukka est définitivement sur le sujet, mais posez une question plus large: "pourquoi n'y a-t-il pas de modèle standard / acceptable pour l'informatique distribuée?". Ma question a certainement tout à voir avec celle-là, mais j'étais motivée à trouver des informations sur la / toute représentation formelle de l'informatique distribuée.
Marcos Roriz Junior
D'accord. cela semble raisonnable.
Suresh Venkat
2
Soit dit en passant, votre approche de «bande partagée» ressemble davantage à un modèle de calcul parallèle au lieu de calcul distribué . Par conséquent, il pourrait également être judicieux d'examiner les modèles utilisés dans le domaine du calcul parallèle (par exemple, le modèle PRAM).
Jukka Suomela

Réponses:

10

[Y a-t-il] une représentation formelle d'un système distribué au-dessus d'une machine de Turing?

À cet égard, la discussion (voir le lien publié par Jukka sur les commentaires) est la façon de regarder. La façon dont, je le vois, comment vous représenteriez officiellement un système distribué dépend en grande partie de la façon dont vous les voyez, et cela dépend de "vos hypothèses de système préférées" (c.-à-d. Les hypothèses sur la synchronie (c.-à-d. Le calendrier relatif des actions dans le système distribué)). système), sur la communication (passage de messages vs mémoire partagée), sur les défauts (de processus et / ou de liens, bénins ou byzantins, etc.). Comme la communauté n'est pas d'accord sur ce point, il n'y a pas non plus d'accord sur le formalisme de base .

[Est-il possible d'étendre (faire une variante) le concept d'une machine de turing pour tirer parti de l'informatique distribuée?

Je suppose que c'est tout à fait possible, mais personne (à ma connaissance) ne s'y est penché. Ce que je sais, ce sont:

  1. Timed IO Automata également utilisé dans le livre de calcul distribué de Lynch
  2. Communication des processus séquentiels
  3. Logique temporelle des actions
  4. Pi-Calculus (également déjà mentionné par Alex)
  5. Et plus (ont été et seront mentionnés ici) ...
Martin B.
la source
Merci pour l'explication. Le point que vous avez soulevé au sujet des discordances sur la façon dont le modèle doit être (synchronisation, async, etc.) a certainement un impact sur la création d'un modèle standardisé. Grands liens, et merci d'avoir répondu :-).
Marcos Roriz Junior
6

Vous voudrez peut-être examiner le Pi-Calcul.

http://en.wikipedia.org/wiki/%CE%A0-calculus

C'est un calcul basé sur le traitement conçu pour raisonner sur les systèmes distribués.

Alex Gonopolskiy
la source
Modèle vraiment intéressant :-). Je vais le lire ce week-end.
Marcos Roriz Junior du
5

Je suis surpris que Petri Nets n'ait pas encore été mentionné! Les extensions des réseaux de Petri comme les réseaux de Petri colorés ou les réseaux de Petri avec des arcs inhibiteurs sont Turing-complete.

Dai Le
la source
Les réseaux de Petri sont un formalisme important dans la concurrence, mais comme leur motivation vient d'essayer de modéliser certains processus physiques, ils ne sont pas vraiment comparables aux MT.
Charles Stewart
Seul Petri lui-même a insisté pour les appliquer aux systèmes physiques. Ils sont principalement utilisés pour décrire les logiciels de communication, les processus métier, etc.
reinierpost
5

( Avertissement: vues quelque peu biaisées, simplifications excessives et généralisations flagrantes à venir. )

Souvent, la différence entre l'informatique distribuée et l'informatique parallèle peut être résumée comme suit:

  • En informatique distribuée , les principales mesures de complexité sont liées aux flux de communication et d' information : combien de tours de communication («temps»); combien de bits transmis.
  • En informatique parallèle , les principales mesures de complexité sont liées au calcul et au traitement de l'information : combien d'étapes élémentaires ("temps"); combien de bits stockés.

Si vous adoptez cette perspective, il s'avère souvent que pour modéliser des systèmes distribués, peu importe le type de puissance de calcul dont disposent vos nœuds (ou processeurs ou ordinateurs).

O(n)

XX

TT

Par conséquent, utiliser les machines Turing comme point de départ pour modéliser des systèmes distribués me semble un peu contre nature: si c'est un aspect non pertinent, pourquoi tout construire par-dessus? En revanche, dans le calcul parallèle, cela serait naturel (sauf que le modèle est généralement quelque chose comme PRAM au lieu de machines de Turing).

Jukka Suomela
la source
3

Certains soutiennent qu'en fonction de votre point de vue, vous pourriez penser que les systèmes distribués sont quelque chose de plus puissant qu'une machine de Turing, en raison des différentes interprétations de la limitation du non-déterminisme et de l'équité. Ce lien a une discussion intéressante sur le sujet. Herlihy / Shavit dans leur livre "L'art de la programmation multiprocesseur" fait valoir que la calculabilité de Turing se réfère intrinsèquement à la notion d'un algorithme (séquentiel), et ne sont en quelque sorte pas appropriées pour raisonner sur l'informatique distribuée. Je dois mentionner que c'est discutable et controversé, donc j'espère que personne ne me jette des pierres parce que je dis cela.

Giovanni Funchal
la source
1
Je pense que la comparaison n'est pas très appropriée. En termes simples, dans le contexte des machines de Turing, le non-déterminisme est une ressource: il se réfère à la capacité de la machine à suivre plusieurs chemins d'exécution simultanément, donc c'est essentiellement une forme de parallélisme. Dans le contexte des systèmes distribués, le non-déterminisme est plutôt un obstacle: il est utilisé pour modéliser les diverses propriétés imprévisibles des systèmes distribués du monde réel, comme le manque de synchronisation et les défaillances.
Antonio Valerio Miceli-Barone