¿Qué es un algoritmo distribuido?
Un algoritmo distribuido es un tipo específico de algoritmo utilizado en software de computadora que debe usar 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 deben seguirse para completar el proceso deseado o resolver un problema. Por ejemplo, un algoritmo para enviar una carta sería algo similar a:
1. Obtenga un sobre
2. Sobre abierto
3. Insertar letra
4. Cerrar el sobre
5. Adjuntar sello
Esto continuaría hasta que el proceso se haya completado. Ciertos pasos pueden ramificarse en otros pasos. Esto le dirá a la persona qué hacer si no puede completar uno de los pasos principales y eventualmente lo llevará de regreso al algoritmo original. Lo importante es que el algoritmo eventualmente debe 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 informático es un algoritmo diseñado para decirle a la computadora qué hacer. Tiene un comienzo y un paso 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, puede 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 informático normal no lo serí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 impediría que el algoritmo distribuido llegara al final del proceso. Muchos programadores estudian algoritmos distribuidos para encontrar formas de superar estos problemas y garantizar que el algoritmo se complete incluso si hay un error técnico.