O que é um algoritmo distribuído?
Um algoritmo distribuído é um tipo específico de algoritmo usado em software de computador que deve usar vários processadores interconectados. O algoritmo distribuído é responsável por executar diferentes partes do algoritmo ao mesmo tempo, cada uma em um processador diferente. Os processadores devem então se comunicar para que o software funcione corretamente.
Para entender o algoritmo distribuído, é mais fácil examinar o que é um algoritmo típico. Um algoritmo é um processo definido que descreve do início ao fim as etapas que devem ser executadas para concluir o processo desejado ou resolver um problema. Por exemplo, um algoritmo para enviar uma carta seria algo como:
1. Obter envelope
2. Abra o envelope
3. Inserir carta
4. Feche o envelope
5. Anexar carimbo
Isso continuaria até o processo ser concluído. Certas etapas podem se ramificar para outras etapas. Isso diria à pessoa o que fazer se ele não pudesse concluir uma das etapas principais e acabaria levando-a de volta ao algoritmo original. O importante é que o algoritmo acabe tendo um fim, independentemente do caminho que a pessoa siga para alcançá-lo.
Tecnicamente, qualquer coisa que seja um processo definido pode ser um algoritmo, como o exemplo acima para enviar uma carta. Um algoritmo de computador é um algoritmo projetado para informar ao computador o que fazer. Tem um passo inicial e final com vários passos intermediários. Ajuda o computador a executar uma ação e instrui o que fazer se algo der errado. Se estiver faltando um arquivo que o computador precisa, ele poderá instruí-lo a pular essa etapa ou executar uma etapa alternativa em seu lugar.
A diferença entre um algoritmo e um algoritmo distribuído é simplesmente que o algoritmo distribuído foi projetado para ser executado em processadores separados, enquanto um algoritmo de computador comum não seria. Cada processador está executando uma parte diferente do algoritmo geral ao mesmo tempo e enviando os resultados.
Existem vários problemas que ocorrem ao usar algoritmos distribuídos. Um dos processadores pode falhar, fazendo com que a parte do algoritmo pare de funcionar. Também poderia haver um problema de comunicação entre processadores que impediria que o algoritmo distribuído chegasse ao final do processo. Muitos programadores estudam algoritmos distribuídos para descobrir maneiras de superar esses problemas e garantir que o algoritmo seja concluído mesmo se houver um erro técnico.