Task farming
Task farming is een werkwijze waarmee seriële processen met een hoge snelheid uitgevoerd kunnen worden op een parallel computersysteem.
Beschrijving
Het gaat hier om distributed computing waarbij grote aantallen centrale verwerkingseenheden (CVE's of CPU's) en andere bronnen (computergeheugen e.d.) beschikbaar zijn. Seriële processen zijn processen die bestaan uit een serie stappen die in principe na elkaar uitgevoerd moeten worden. Task farming werkt op basis van het meester-slaafprincipe (Master-Slaveparadigma). Een van de verwerkingseenheden fungeert als master (meester) en de overige als slave (slaaf). De master verdeelt de verschillende taken (task) over de slaves. De slave verwerkt dan de toegewezen task en stuurt het resultaat terug naar de master. De master en slaves zijn de knooppunten (nodes) in een netwerk, die onafhankelijk van elkaar kunnen werken.
Voordeel
Met deze aanpak kunnen toepassingen worden uitgevoerd in enkele uren, die op een enkele pc dagen of weken zouden duren. Dit is vooral van belang voor rekenintensieve toepassingen. Enkele nuttige toepassingen zijn weerkundige toepassingen, 3D-renderen van games (spelletjes).
Aandachtspunten
Er zijn elke aandachtspunten die ervoor kunnen zorgen dat de applicatie (toepassing) efficiënter en sneller kan worden verwerkt.
Task farming levert de meeste tijdwinst op als de taken onafhankelijk van elkaar kunnen werken, zodat de ene taak niet op resultaten van andere taken hoeft te wachten.
Voor een goede benuttingsgraad van de verwerkingscapaciteit moeten de taken ongeveer een gelijke grootte en zwaarte hebben. Anders kan het zijn dat een knooppunt veel langer met een taak bezig is dan andere knooppunten. Die andere knooppunten kunnen dan een hele tijd niets doen. Dit heeft tot gevolg dat de CPU-tijd niet efficiënt worden gebruikt, want de werkers worden pas vrijgegeven als al de taken van de meester zijn uitgevoerd.
Het aantal taken waarin de toepassing verdeeld wordt, moet bij voorkeur gelijk zijn aan of groter zijn dan het aantal beschikbare slaven. Als er bijvoorbeeld 22 CPU's beschikbaar zijn, moet de toepassing in minimaal 21 taken worden opgedeeld, omdat een van de CPU's nodig is als master.
Master-workerprincipe
Taskfarming-werk via het master-workerprincipe. Alle taken worden via de master verdeeld naar de verschillende workers die zich onder de master bevinden. Als de worker zijn taak heeft uitgevoerd, zal hij de resultaten terugsturen naar de master. Het master-workerprincipe verloopt in vier stappen.
- Een transmissie- (verzend-)commando om de taak te initialiseren (beginnen) bij de worker. Ook worden de nodige data meeverstuurd om de taak succesvol uit te voeren.
- De taak wordt dan uitgevoerd op de toegewezen worker.
- Na het uitvoeren van de taak worden de resultaten van de worker terug naar de master gestuurd.
- De master moet de resultaten die het gekregen heeft van de worker onmiddellijk verwerken.
Het master-workerprincipe kan worden uitgebreid met een supervisor. De supervisor controleert verschillende processets (reeksen). Elke set bestaat uit een master en verschillende workers. Het verdelen van de taken gebeurd in twee fasen:
- De supervisor verdeeld de applicatie (toepassing) over de verschillende masters, waarna de master de taken verdeeld over de workers.
- Als alle resultaten van de workers door de master zijn verzameld, zal de master de resultaten bundelen en doorsturen naar de supervisor.
Voordelen
Er zijn verschillende voordelen verbonden aan het werken met een supervisor bij het master-workerprincipe.
- Het eerste voordeel is dat de communicatie-overhead wordt beperkt door gebruik te maken van processets. De master en worker communiceren regelmatig met elkaar in deze sets. De bronnen (nodes) zijn dicht bij elkaar geplaatst, om de tijd die nodig is voor communicatieoverhead geminimaliseerd wordt.
- Het vermijdt dat een master een knelpunt wordt, omdat er met verschillende masters wordt gewerkt. Het werk wordt verdeeld over de verschillende processets.
Communicatieoverhead
Communicatieoverhead is een van de nadelen van task farming. Communicatieoverhead is het gevolg van de frequente communicatie tussen de master en de workers. Deze communicatie dient voor het opsporen van workers die geen taak hebben om uit te voeren, waardoor de master een nieuw taak naar de worker kan sturen. Wanneer deze communicatie meer tijd vraagt dan de tijd die nodig is om een taak uit te voeren, dan zal de prestatie van de applicatie verminderen.
Master bottleneck
Master bottleneck (knelpunt) is een van de problemen die bij task farming kunnen voorkomen. Dit komt voor als de master te veel workers heeft om te beheren. De master moet in dit geval te veel vermogen steken in het communiceren met de workers. Dit heeft tot gevolg dat de master niet meer voldoende vermogen heeft om de resultaten van workers te verwerken en te bundelen. Het heeft weer tot gevolg dat de prestaties van de toepassing zullen dalen.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.