Werk in stukken verdelen
Verdeel een bereik voor een evenwichtige belasting
Werk in stukken verdelen is een gratis Mojo Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Mojo Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Mojo Academy bevat in totaal 4 lessen.
Waarom überhaupt opdelen
Een thread starten voor elk element is verspilling. Deel het bereik in plaats daarvan op in enkele grotere stukken, één per werker.
Een stuk is een segment
Elk stuk is gewoon een aaneengesloten segment van indices, zoals 0 tot en met 99 of 100 tot en met 199. Eén werker beheert één segment.
Kies het aantal stukken
Een gebruikelijke keuze is één stuk per kern. Je vraagt de machine dat aantal op met num_physical_cores.
var workers = num_physical_cores()Bereken de stukgrootte
Deel de totale lengte door het aantal werkers om te bepalen hoeveel items elke werker moet verwerken.
var chunk = (n + workers - 1) // workersBepaal het begin van een stuk
Binnen de werkfunctie geeft de index van het stuk aan waar je moet beginnen. Vermenigvuldig deze met de grootte van het stuk.
var start = c * chunkBeperk het einde
Het laatste stuk kan voorbij de gegevens lopen. Beperk daarom het einde met min tot de totale lengte, zodat je binnen de grenzen blijft.
var end = min(start + chunk, n)Lus binnen het stuk
Elke werker voert een normale lus uit over alleen zijn eigen bereik. Binnen het stuk is het gewoon gewone code.
for i in range(start, end):
out[i] = heavy(i)parallelize over stukken
Roep nu parallelize aan met het aantal stukken, niet met het aantal elementen. Elke aanroep verwerkt één heel stuk.
parallelize[do_chunk](workers)Verdeel de belasting gelijkmatig
Stukken van gelijke grootte houden elke kern even druk bezig. Als één stuk veel groter is, is die werker pas laat klaar.
Meer stukken dan kernen
Wanneer sommige items meer kosten dan andere, zorgen meer en kleinere stukken ervoor dat snelle werkers extra werk kunnen oppakken en bezig blijven.
Stel af door te meten
Het beste aantal stukken hangt af van je gegevens en je machine. Probeer enkele groottes en houd de waarde waarvoor je prestatiemeting de beste resultaten geeft.
Snelle controle
Je deelt een array met lengte n op in één stuk per werker.
Samenvatting
Je deelt het bereik op in gebalanceerde stukken, begrenst elk einde met min, loopt binnen een stuk en roept parallelize aan met het aantal stukken voor een gelijkmatige belasting. 🚀
Leer Mojo met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “Werk in stukken verdelen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Mojo Academy, waaronder “Werk in stukken verdelen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Mojo Academy bevat in totaal 4 lessen.
Wat leer ik in “Werk in stukken verdelen”?
Verdeel een bereik voor een evenwichtige belasting Je oefent met Mojo Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Mojo Academy te beginnen?
Ervaring vooraf is niet nodig. Mojo Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Werk in stukken verdelen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Mojo Academy?
Ja. Elke les over Mojo Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- De parallelize-functie
- Werk in stukken verdelen
- Parallelisme en vectorisatie combineren
- Data races voorkomen