¿Qué es un algoritmo distribuido?

Un algoritmo distribuido es un tipo específico de algoritmo utilizado en software de computadora que debe utilizar varios procesadores interconectados. El algoritmo distribuido es responsable de ejecutar diferentes partes del algoritmo al mismo tiempo, cada una en un procesador diferente. Los procesadores deben comunicarse entre sí para que el software funcione correctamente.

Para comprender el algoritmo distribuido, es más fácil examinar qué es un algoritmo típico. Un algoritmo es un proceso definido que describe de principio a fin los pasos que se deben seguir para completar el proceso deseado o resolver un problema. Por ejemplo, un algoritmo para enviar una carta sería algo como:
1. Consigue un sobre
2. Sobre abierto
3. Insertar carta
4. Cerrar el sobre
5. Adjuntar sello

Esto continuará hasta que se complete el proceso. Ciertos pasos pueden derivarse en otros pasos. Estos le dirían a la persona qué hacer si no pudiera completar uno de los pasos principales y eventualmente lo llevarían de regreso al algoritmo original. Lo importante es que el algoritmo debe eventualmente tener un final sin importar qué camino tome la persona para alcanzarlo.

Técnicamente, cualquier cosa que sea un proceso definido puede ser un algoritmo, como el ejemplo anterior para enviar una carta. Un algoritmo de computadora es un algoritmo diseñado para decirle a la computadora qué hacer. Tiene un paso inicial y final con varios pasos intermedios. Ayuda a la computadora a realizar una acción y le indica qué hacer si algo sale mal. Si falta un archivo que la computadora necesita, podría indicarle que omita ese paso o realice un paso alternativo en su lugar.

La diferencia entre un algoritmo y un algoritmo distribuido es simplemente que el algoritmo distribuido está diseñado para ejecutarse en procesadores separados, mientras que un algoritmo de computadora normal no lo estaría. Cada procesador realiza una parte diferente del algoritmo general al mismo tiempo y luego envía los resultados.

Hay varios problemas que ocurren cuando se utilizan algoritmos distribuidos. Uno de los procesadores podría fallar, haciendo que esa parte del algoritmo deje de funcionar. También podría haber un problema de comunicación entre procesadores que evitaría que el algoritmo distribuido llegara al final del proceso. Muchos programadores estudian algoritmos distribuidos para encontrar formas de superar estos problemas y asegurarse de que el algoritmo se complete incluso si hay un error técnico.