Hva er distribuert programmering?

Distribuert programmering er en form for parallell programmering eller parallell databehandling. Parallell programmering innebærer datamaskiner og dataenheter i datamaskiner som arbeider samtidig med et bestemt problem, for eksempel å forutsi morgendagens vær. Databehandlingsenhetene kan være veldig tett lokalisert og koordinert eller kan være plassert fra hverandre. Når dataenhetene er fra hverandre, kalles det distribuert programmering. I et slikt scenario skiller databehandlingsenhetene seg veldig fra hverandre, og operativsystemet og nettverksoppsettet er også forskjellige, noe som gjør programmering av databehandlingsaktiviteten spesielt utfordrende.

Når du løser et problem på en distribuert måte, må programmet deles opp slik at deler av programmet kan kjøres på de forskjellige databehandlingsenhetene. disse delene kalles ofte "prosesser." Prosessene kjører samtidig, men trenger å kommunisere innspill og resultater til hverandre. Hvis prosessene kjører på annen maskinvare, for eksempel en del som kjører på Intel og en annen som kjører på SUN, må programmene sammenstilles og optimaliseres på en annen måte.

En måte å løse et tilstrekkelig vanskelig problem på er å bryte opp inngangsdelene, og la de forskjellige databehandlingsenhetene jobbe med de forskjellige delene ved å bruke den samme algoritmen, settet med regler eller trinn for problemløsning. For eksempel for å knekke et genom på 10.000 par, kunne de første 1000 parene tilordnes den første dataenheten, de andre 1000 parene tilordnet den andre dataenheten og så videre, alle med samme algoritme. Med distribuert programmering er en fordel at de forskjellige dataenhetene kan kjøre forskjellige algoritmer for å løse det samme problemet, og dermed føre til en betydelig bedre løsning. Dette tilsvarer å løse et puslespill med noen mennesker som setter sammen grensen mens andre setter sammen deler av en bestemt farge.

Koordinering av distribuerte databehandlingsprosesser kan være en spesielt vanskelig oppgave. Noen dataenheter kan mislykkes eller kan bli avbrutt for å håndtere annet arbeid. Meldinger som inneholder inngangene eller resultatene fra beregningen kan ikke nå sine destinasjoner. Hvis programmene er skrevet på en naiv måte, kan tapet av en dataenhet eller noen meldinger føre til at hele datamaskinen henger.

I distribuert programmering kan en prosess være kontrollerende prosess, i det vesentlige få arbeid utført av de andre prosessene, eller alle prosesser kan fungere på en peer-to-peer måte uten at prosessen er "masteren." Noen eksempler på problemer som er forsøkt med distribuert programmering inkluderer analyse av geologiske data for ressurser som petroleum, modellering av proteiner og biologiske molekyler, cracking av kodede meldinger og militære simuleringer. SETI-prosjektet for å søke etter intelligent utenomjordisk liv fra radiomeldingene mottatt av Jorden, er kanskje et av de mest kjente eksemplene.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?