Parallelisér og tun kernen
Tilføj tråde, og autotun til maskinen.
Parallelisér og tun kernen er en gratis Mojo Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Mojo Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Mojo Academy-kurset indeholder 4 lektioner i alt.
Fra hurtig til hurtigere
Din kerne slår allerede Python på én kerne. Nu skal du sprede arbejdet over alle dine kerner og lade Mojo justere den til maskinen. ⚡
Hvorfor køre parallelt
Moderne CPU'er har mange kerner, der står uvirksomme. Parallelisme lader hver kerne arbejde på en del af dataene samtidig, så du får en stor hastighedsforbedring.
Mød parallelize
Mojo's parallelize kører løkkens klumper på tværs af tråde for dig. Du angiver arbejdet og, hvor mange dele det skal opdeles i.
from algorithm import parallelizePak arbejdet ind i en closure
Udtryk én arbejdsklump som en lille funktion. parallelize kalder den én gang pr. klump, hver gang på sin egen kerne.
fn work(chunk: Int):
process(chunk)
parallelize[work](num_chunks)Opdel området
Opdel dataene i omtrent lige store klumper, én pr. kerne. Balancerede dele holder alle tråde beskæftigede i stedet for at lade én halte bagefter.
var per_chunk = n // num_chunksKombinér SIMD med tråde
Behold din SIMD-matematik inde i hver klump. Nu får du to gevinster på én gang: mange kerner, der hver behandler vektorer pr. instruktion.
Undgå datakapløb
Når to tråde skriver til det samme sted, opstår der et datakapløb. Giv hver klump sit eget output-udsnit, så skrivningerne aldrig kolliderer.
Gør justerbare indstillinger tilgængelige
Gør flisestørrelse og SIMD-bredde til parametre. Når indstillingerne kan justeres, kan du afprøve mange kombinationer uden at omskrive kernen.
fn kernel[tile: Int, width: Int]():
passLad autotuning søge
De bedste indstillinger varierer fra maskine til maskine. Autotuning afprøver kandidatværdier for parametrene, måler hver af dem og beholder den hurtigste kombination.
Fastlås vinderen
Når du kender den bedste flise og bredde, skal du fastlægge dem som den valgte konfiguration. Kernen er nu specialiseret til din hardware.
Verificér under parallelisering
Kør den optimerede, trådede kerne, og sammenlign den med referenceimplementeringen. Korrekthed skal stadig være opfyldt, når mange kerner skriver samtidigt.
Hurtigt tjek
Vælg den reelle risiko ved parallelisering af kernen.
Opsummering
Du paralleliserede over afbalancerede blokke, beholdt SIMD i hver blok, undgik datakapløb og finjusterede derefter parametrene automatisk. Kernen er nu hurtig på flere kerner. 🎯
Lær Mojo med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Parallelisér og tun kernen” gratis?
Ja — alle 3 lektioner i læringssporet Mojo Academy, inklusive “Parallelisér og tun kernen”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Mojo Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Parallelisér og tun kernen”?
Tilføj tråde, og autotun til maskinen. Du øver dig i Mojo Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Mojo Academy?
Der kræves ingen tidligere erfaring. Mojo Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Parallelisér og tun kernen”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Mojo Academy-lektion?
Ja. Alle Mojo Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Profilér Python-baseline
- Omskriv den varme kodevej i Mojo
- Parallelisér og tun kernen
- Udgiv det accelererede projekt