¿Máquina de Turing distribuida?

10

Soy un estudiante de maestría enfocado en sistemas distribuidos pero también interesado en informática teórica. Me preguntaba si hay una representación formal de un sistema distribuido encima de una máquina de turing. Es decir, ¿es posible extender (hacer una variante) el concepto de una máquina de turing para aprovechar la informática distribuida?

Una idea es hacer una cinta compartida (algo similar a Tuple Space ) entre TM.

Marcos Roriz Junior
fuente
8
Posiblemente relacionado: cstheory.stackexchange.com/questions/426/…
Jukka Suomela
3
la pregunta a la que se une Jukka podría responder su pregunta no del todo. Si es así, tal vez pueda cerrar este, y si no, ¿tal vez pueda aclarar qué es diferente?
Suresh Venkat
@Suresh Venkat, creo que la pregunta que Jukka enlazó definitivamente es sobre el tema, pero haga una pregunta más amplia: "¿por qué no hay un modelo estándar / aceptable para la computación distribuida?". Mi pregunta definitivamente tiene que ver con eso, pero me motivó a encontrar información sobre cualquier representación formal de la informática distribuida.
Marcos Roriz Junior
Okay. eso suena razonable.
Suresh Venkat
2
Por cierto, su enfoque de "cinta compartida" suena más como un modelo de computación paralela en lugar de computación distribuida . Por lo tanto, también podría tener sentido mirar los modelos utilizados en el campo de la computación paralela (por ejemplo, el modelo PRAM).
Jukka Suomela

Respuestas:

10

[¿Hay] una representación formal de un sistema distribuido encima de una máquina de turing?

Con respecto a esto, la discusión (ver el enlace publicado por Jukka en los comentarios) es la forma de mirar. En mi opinión, la forma en que representaría formalmente un sistema distribuido depende en gran medida de cómo los vea, y eso depende de "sus supuestos favoritos del sistema" (es decir, los supuestos sobre la sincronía (es decir, el tiempo relativo de las acciones en el sistema distribuido). sistema), sobre comunicación (transmisión de mensajes vs. memoria compartida), sobre fallas (de procesos y / o enlaces, benignos o bizantinos, etc.) Como la comunidad no está de acuerdo con este punto, tampoco hay acuerdo sobre el formalismo básico .

[¿Es posible ampliar (hacer una variante) el concepto de una máquina de turing para aprovechar la informática distribuida?

Supongo que es completamente posible, pero nadie (que yo sepa) lo ha investigado. Lo que sé son estos:

  1. Autómatas IO cronometrados también utilizados en el libro de Computación Distribuida de Lynch
  2. Comunicando procesos secuenciales
  3. Lógica temporal de acciones.
  4. Pi-Calculus (también ya mencionado por Alex)
  5. Y más (han sido y serán mencionados aquí) ...
Martin B.
fuente
Gracias por la explicación. El punto que hizo sobre las discordias sobre cómo debería ser el modelo (sincronización, asíncrono, etc.) definitivamente impacta la creación de un modelo estandarizado. Grandes enlaces, y gracias por responder :-).
Marcos Roriz Junior
6

Es posible que desee mirar en Pi-Calculus.

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

Es un cálculo basado en procesos diseñado para razonar sobre sistemas distribuidos.

Alex Gonopolskiy
fuente
Modelo realmente interesante :-). Lo voy a leer este fin de semana.
Marcos Roriz Junior
5

¡Me sorprende que las Redes de Petri aún no hayan sido mencionadas! Las extensiones de las redes de Petri como las redes de Petri coloreadas o las redes de Petri con arcos inhibidores están completas en Turing.

Dai Le
fuente
Las redes de Petri son un formalismo importante en la concurrencia, pero como su motivación proviene de tratar de modelar cierto proceso físico, no son realmente comparables a las MT.
Charles Stewart
Solo el propio Petri insistió en aplicarlos a los sistemas físicos. Se utilizan principalmente para describir software de comunicación, procesos comerciales, etc.
reinierpost
5

( Advertencia: vistas algo sesgadas, simplificaciones excesivas y generalizaciones descaradas por delante ) .

A menudo, la diferencia entre la computación distribuida y la computación paralela se puede resumir de la siguiente manera:

  • En la informática distribuida , las medidas de complejidad primarias están relacionadas con los flujos de comunicación e información : cuántas rondas de comunicación ("tiempo"); cuantos bits transmiten
  • En computación paralela , las medidas de complejidad primarias están relacionadas con la computación y el procesamiento de la información : cuántos pasos elementales ("tiempo"); cuántos bits almacenados

Si toma esta perspectiva, a menudo resulta que para modelar sistemas distribuidos, realmente no importa qué tipo de poder computacional tengan sus nodos (o procesadores o computadoras).

O(norte)

XX

TT

Por lo tanto, usar máquinas de Turing como punto de partida para modelar sistemas distribuidos me parece un poco antinatural: si este es un aspecto irrelevante, ¿por qué construir todo sobre él? Por otro lado, en computación paralela esto sería natural (excepto que el modelo generalmente es algo así como PRAM en lugar de máquinas Turing).

Jukka Suomela
fuente
3

Algunos sostienen que, según su punto de vista, podría pensar en los sistemas distribuidos como algo más poderoso que una máquina de Turing, debido a las diferentes interpretaciones de la limitación del no determinismo y la equidad. Este enlace tiene una discusión interesante sobre el tema. Herlihy / Shavit en su libro "El arte de la programación multiprocesador" argumentan que la computabilidad de Turing se refiere inherentemente a la noción de un algoritmo (secuencial) y, en cierto sentido, no es apropiado para razonar sobre la computación distribuida. Debo mencionar que esto es discutible y controvertido, así que espero que nadie me arroje piedras porque estoy diciendo esto.

Giovanni Funchal
fuente
1
Creo que la comparación no es muy apropiada. Simplemente hablando, en el contexto de las máquinas de Turing, el no determinismo es un recurso: se refiere a la capacidad de la máquina para seguir múltiples rutas de ejecución simultáneamente, por lo tanto, es esencialmente una forma de paralelismo. En el contexto de los sistemas distribuidos, en cambio, el no determinismo suele ser más un obstáculo: se utiliza para modelar las diversas propiedades impredecibles de los sistemas distribuidos del mundo real, como la falta de sincronización y las fallas.
Antonio Valerio Miceli-Barone