Hva er en distribuert algoritme?
En distribuert algoritme er en spesifikk type algoritme som brukes på dataprogramvare som må bruke forskjellige, sammenkoblede prosessorer. Den distribuerte algoritmen er ansvarlig for å kjøre forskjellige deler av algoritmen samtidig, hver på en annen prosessor. Prosessorene må da kommunisere med hverandre for at programvaren skal fungere ordentlig.
For å forstå den distribuerte algoritmen er det enklest å undersøke hva en typisk algoritme er. En algoritme er en definert prosess som skisserer fra start til slutt trinnene som må tas for å fullføre ønsket prosess eller løse et problem. For eksempel vil en algoritme for å sende et brev gå noe på linje med:
1. Få konvolutt
2. Åpne konvolutten
3. Sett inn brev
4. Lukk konvolutten
5. Fest stempel
Dette vil fortsette til prosessen er fullført. Enkelte trinn kan avgrenses til andre trinn. Disse ville fortalt personen hva han skal gjøre hvis han ikke kunne fullføre et av hovedtrinnene og til slutt ville føre ham tilbake til den opprinnelige algoritmen. Det viktige er at algoritmen til slutt må få slutt uansett hvilken vei personen tar for å nå den.
Teknisk sett kan alt som er en definert prosess være en algoritme, for eksempel eksemplet ovenfor for å sende et brev. En datamaskinalgoritme er en algoritme designet for å fortelle datamaskinen hva de skal gjøre. Det har et begynnelse og et sluttsteg med flere trinn i mellom. Det hjelper datamaskinen å utføre en handling og instruerer den hva de skal gjøre hvis noe går galt. Hvis en fil datamaskinen trenger mangler, kan den instruere den til å hoppe over det trinnet eller utføre et alternativt trinn på sin plass.
Forskjellen mellom en algoritme og en distribuert algoritme er ganske enkelt at den distribuerte algoritmen er designet for å kjøre på separate prosessorer mens en vanlig datamaskinalgoritme ikke ville være det. Hver prosessor utfører en annen del av den generelle algoritmen samtidig og sender deretter inn resultatene.
Det er flere problemer som oppstår når du bruker distribuerte algoritmer. En av prosessorene kunne mislykkes, noe som fikk den delen av algoritmen til å slutte å fungere. Det kan også være et kommunikasjonsproblem mellom prosessorer som vil hindre den distribuerte algoritmen i å nå slutten av prosessen. Mange programmerere studerer distribuerte algoritmer for å finne ut måter å overvinne disse problemene og sikre at algoritmen er fullført selv om det er en teknisk feil.