Posizione: Casa > internet >

Che cosa è la programmazione distribuita?

  

programmazione distribuita è una forma di programmazione parallela o di calcolo parallelo. Programmazione parallela riguarda i computer e le unità di calcolo all'interno di computer che lavorano contemporaneamente su un problema particolare, come ad esempio la previsione meteo di domani. Le unità di calcolo può essere molto stretto e coordinato trova o può essere situato lontano. Quando le unità di calcolo sono a parte, si parla di programmazione distribuita. In uno scenario del genere, molto spesso le unità di calcolo diversi gli uni dagli altri, e il sistema operativo e delle impostazioni di rete differisce troppo, rendendo la programmazione delle attività di elaborazione particolarmente impegnativo.

Quando risolvere un problema in modo distribuito, il programma deve essere suddiviso in modo che le parti del programma può essere eseguito su diverse unità di calcolo; queste parti sono spesso chiamati "processi". I processi eseguiti contemporaneamente, ma hanno bisogno di comunicare gli input ei risultati gli uni agli altri. Se i processi sono in esecuzione su hardware differente, come ad esempio una parte in esecuzione su Intel e un altro in esecuzione sul SUN, poi i programmi devono essere compilati e ottimizzati in modo diverso.

Un modo per risolvere un problema abbastanza difficile, è quello di rompere le parti di ingresso, e hanno le diverse unità di calcolo lavoro sulle diverse parti utilizzando lo stesso algoritmo, l'insieme di regole o di passaggi per la soluzione dei problemi. Ad esempio, per rompere un genoma di 10. 000 coppie, i primi 1. 000 coppie potrebbe essere assegnato alla prima unità di calcolo, la seconda 1. 000 coppie assegnato alla seconda unità di calcolo e così via, il tutto utilizzando lo stesso algoritmo. Con la programmazione distribuita, uno dei vantaggi è che le diverse unità di calcolo potrebbe eseguire algoritmi diversi per risolvere lo stesso problema, in modo da pervenire a una soluzione decisamente migliore. Questo è simile alla soluzione di un puzzle con alcune persone mettendo insieme il confine, mentre altri, mettere insieme i pezzi di un colore particolare.

Coordinamento dei processi di calcolo distribuito può essere un compito particolarmente difficile. Alcune unità di calcolo non può riuscire o che possono venirne interrotto per gestire il lavoro di altri. I messaggi contenenti gli ingressi oi risultati del calcolo non può riuscire a raggiungere le loro destinazioni. Se i programmi sono scritti in modo ingenuo, poi la perdita di una unità di calcolo o di alcuni messaggi possono causare l'intero insieme di computer che si bloccano.

In programmazione distribuita, un processo potrebbe essere il controllo processo, in sostanza, ricevendo il lavoro svolto da altri processi, o, in tutti i processi potrebbe lavorare in una rete peer-to-peer modo con nessun processo è più il padrone ". "Alcuni esempi di problemi tentato con la programmazione distribuita comprendono l'analisi di dati geologici di risorse come il petrolio, la modellazione di proteine e di molecole biologiche, lo scricchiolio dei messaggi in codice, e simulazioni militari. Il progetto SETI per la ricerca di vita intelligente extra-terrestre dal messaggi radio ricevuti dalla Terra è forse uno degli esempi più noti.

----------------------------------
Articolo correlato:
----------------------------------