Kas ir sadalītais algoritms?

Sadalītais algoritms ir noteikta veida algoritms, ko izmanto datoru programmatūrā, kam ir jāizmanto dažādi, savstarpēji saistīti procesori. Izkliedētais algoritms ir atbildīgs par dažādu algoritma daļu vienlaicīgu darbību, katra citā procesorā. Pēc tam procesoriem ir jāsazinās savā starpā, lai programmatūra darbotos pareizi.

Lai saprastu sadalīto algoritmu, visvieglāk ir izpētīt, kas ir tipisks algoritms. Algoritms ir definēts process, kas no sākuma līdz beigām iezīmē darbības, kas jāveic, lai pabeigtu vēlamo procesu vai atrisinātu problēmu. Piemēram, vēstules nosūtīšanas algoritms varētu būt šāds:
1. Saņemiet aploksni
2. Atvērt aploksni
3. Ievietojiet burtu
4. Aizveriet aploksni
5. Pievienojiet zīmogu

Tas turpināsies, līdz process ir pabeigts. Dažas darbības var pāraugt citos posmos. Tie norādītu personai, kā rīkoties, ja viņš nevar veikt kādu no galvenajām darbībām, un galu galā novedīs viņu atpakaļ pie sākotnējā algoritma. Svarīgi ir tas, ka algoritmam galu galā ir jābeidzas neatkarīgi no tā, kādu ceļu cilvēks izmanto, lai to sasniegtu.

Tehniski jebkas, kas ir definēts process, var būt algoritms, piemēram, iepriekš minētais piemērs vēstules nosūtīšanai. Datora algoritms ir algoritms, kas izstrādāts, lai pateiktu datoram, kas jādara. Tam ir sākuma un beigu posms ar vairākiem soļiem starp tiem. Tas palīdz datoram veikt kādu darbību un norāda, kā rīkoties, ja kaut kas noiet greizi. Ja trūkst datoram nepieciešamā faila, tas var likt tam izlaist šo darbību vai veikt alternatīvu darbību tā vietā.

Atšķirība starp algoritmu un izkliedēto algoritmu ir tāda, ka sadalītais algoritms ir paredzēts darbībai atsevišķos procesoros, bet parastais datora algoritms tā nav. Katrs procesors vienlaikus izpilda citu kopējā algoritma daļu un pēc tam iesniedz rezultātus.

Izmantojot sadalītos algoritmus, rodas vairākas problēmas. Viens no procesoriem var nedarboties, izraisot šīs algoritma daļas darbību. Var būt arī komunikācijas problēma starp procesoriem, kas neļautu sadalītajam algoritmam sasniegt procesa beigas. Daudzi programmētāji pēta sadalītos algoritmus, lai noskaidrotu veidus, kā pārvarēt šīs problēmas un nodrošināt, lai algoritms tiktu pabeigts pat tehniskas kļūdas gadījumā.