Vad är distribuerad programmering?

Distribuerad programmering är en form av parallell programmering eller parallell datoranvändning. Parallell programmering involverar datorer och datorenheter inom datorer som arbetar samtidigt med ett visst problem, till exempel att förutsäga morgondagens väder. Computerenheterna kan vara mycket nära belägna och koordinerade eller kan vara belägna. När datorenheterna är isär kallas den distribuerad programmering. I ett sådant scenario skiljer sig mycket ofta datorenheterna från varandra, och operativsystemet och nätverksinställningen skiljer sig också åt, vilket gör programmering av datoraktiviteten särskilt utmanande.

När man löser ett problem på ett distribuerat sätt måste programmet delas upp så att delar av programmet kan köras på de olika datorenheterna; Dessa delar kallas ofta "processer". Processerna körs samtidigt men måste kommunicera ingångar och resultat till varandra. Om processerna körs på olika hårdvara, till exempel en del som körs på Intel och ANOTHennes springa på solen, då måste programmen sammanställas och optimeras annorlunda.

Ett sätt att lösa ett tillräckligt svårt problem är att bryta upp ingångsdelarna och låta de olika datorenheterna fungera på de olika delarna med samma algoritm, uppsättningen av regler eller steg för problemlösning. För att knäcka ett genom på 10 000 par kan till exempel de första 1 000 paren tilldelas den första datorenheten, de andra 1 000 par som tilldelats den andra datorenheten och så vidare, alla med samma algoritm. Med distribuerad programmering är en fördel att de olika datorenheterna kan köra olika algoritmer för att lösa samma problem, vilket leder till en betydligt bättre lösning. Detta är besläktat med att lösa ett pussel med vissa människor som sammanför gränsen medan andra sätter ihop bitar av en viss färg.

Koordination av den distribuerade datoranvändningenProcesser kan vara en särskilt svår uppgift. Vissa datorenheter kan misslyckas eller kan avbrytas för att hantera annat arbete. Meddelanden som innehåller ingångarna eller resultaten från beräkningen kan misslyckas med att nå sina destinationer. Om programmen är skrivna på ett naivt sätt kan förlusten av en datorenhet eller vissa meddelanden få hela uppsättningen av datorer att hänga.

Vid distribuerad programmering kan en process vara kontrollprocessen, i huvudsak få arbete utförda av de andra processerna, eller alla processer kan fungera på ett peer-to-peer-sätt utan att någon process är "master." Några exempel på problem som försökts med distribuerad programmering inkluderar analys av geologiska data för resurser som petroleum, modellering av proteiner och biologiska molekyler, sprickor av kodade meddelanden och militära simuleringar. SETI-projektet för att söka efter intelligent utomjordiskt liv från de radiomeddelanden som erhållits av jorden är kanske ett av de mest kända exemplen.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?