Wat is gedistribueerde programmering?

Gedistribueerde programmering is een vorm van parallel programmeren of parallel computing. Parallelle programmering omvat computers en computereenheden binnen computers die gelijktijdig werken aan een bepaald probleem, zoals het voorspellen van het weer van morgen. De rekeneenheden kunnen zeer nauw worden gelegen en gecoördineerd of kunnen worden uit elkaar. Wanneer de rekeneenheden uit elkaar zijn, wordt dit gedistribueerde programmering genoemd. In een dergelijk scenario verschillen de rekeneenheden heel vaak van elkaar, en het besturingssysteem en de netwerkopstelling verschilt ook, waardoor de computeractiviteit bijzonder uitdagend is.

Bij het oplossen van een probleem op een gedistribueerde manier moet het programma worden opgesplitst zodat delen van het programma op de verschillende computeruniten kunnen worden uitgevoerd; Deze onderdelen worden vaak "processen" genoemd. De processen worden tegelijkertijd uitgevoerd, maar moeten inputs en resultaten met elkaar communiceren. Als de processen op verschillende hardware worden uitgevoerd, zoals een deel dat op Intel en Anot draaitHaar rennen op zon, dan moeten de programma's anders worden samengesteld en geoptimaliseerd.

Een manier om een ​​voldoende moeilijk probleem op te lossen, is om de invoeronderdelen te verbreken en de verschillende computereenheden op de verschillende onderdelen te laten werken met hetzelfde algoritme, de set regels of stappen voor probleemoplossing. Om bijvoorbeeld een genoom van 10.000 paren te kraken, konden de eerste 1.000 paren worden toegewezen aan de eerste computereenheid, de tweede 1.000 paren toegewezen aan de tweede computereenheid, enzovoort, allemaal met hetzelfde algoritme. Met gedistribueerde programmering is een voordeel dat de verschillende computereenheden verschillende algoritmen kunnen uitvoeren om hetzelfde probleem op te lossen, waardoor leidt tot een aanzienlijk betere oplossing. Dit lijkt op het oplossen van een puzzel met sommige mensen die de grens samenstellen, terwijl anderen stukken van een bepaalde kleur samenstellen.

coördinatie van het gedistribueerde computergebruikProcessen kunnen een bijzonder moeilijke taak zijn. Sommige computereenheden kunnen falen of kunnen worden onderbroken om ander werk te verwerken. Berichten met de ingangen of de resultaten van de berekening kunnen hun bestemmingen niet bereiken. Als de programma's op een naïeve manier zijn geschreven, kan het verlies van een computereenheid of sommige berichten ervoor zorgen dat de hele set computers hangt.

In gedistribueerde programmering kan één proces het controleproces zijn, in wezen werk krijgen door de andere processen, of alle processen kunnen op een peer-to-peer manier werken zonder proces als de "meester". Enkele voorbeelden van problemen die geprobeerd zijn met gedistribueerde programmering zijn het analyseren van geologische gegevens voor bronnen zoals petroleum, het modelleren van eiwitten en biologische moleculen, het kraken van gecodeerde berichten en militaire simulaties. Het SETI-project om te zoeken naar intelligent buitenaardse leven uit de radioboodschappen die door de aarde zijn ontvangen, is misschien een van de bekendste voorbeelden.

ANDERE TALEN