Mojo Academy · Lektion

Parallellisera och trimma kärnan

Lägg till trådar och autotuning för maskinen.

Lektion 3 av 413 steg

Parallellisera och trimma kärnan är en gratis lektion i Mojo Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Mojo Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Mojo Academy innehåller totalt 4 lektioner.

Från snabbt till snabbare

Er kärna slår redan Python på en kärna. Nu sprider Ni arbetet över alla kärnor och låter Mojo finjustera det för maskinen. ⚡

Varför parallellisera

Moderna processorer har många kärnor som står oanvända. Parallellism låter varje kärna arbeta med en del av datan samtidigt, vilket ger en stor hastighetsökning.

Möt parallelize

Mojos parallelize kör loopens chunkar över trådar åt Er. Ni anger arbetet och hur många delar det ska delas upp i.

from algorithm import parallelize

Omslut arbetet i en closure

Uttryck en arbetsdel som en liten funktion. parallelize anropar den en gång per chunk, var och en på sin egen kärna.

fn work(chunk: Int):
    process(chunk)
parallelize[work](num_chunks)

Dela upp intervallet

Dela upp datan i ungefär lika stora chunkar, en per kärna. Balanserade delar håller varje tråd sysselsatt i stället för att en hamnar efter.

var per_chunk = n // num_chunks

Kombinera SIMD med trådar

Behåll SIMD-matematiken i varje chunk. Nu får Ni två vinster samtidigt: många kärnor, där var och en bearbetar vektorer per instruktion.

Undvik datakapplöpningar

Om två trådar skriver till samma plats uppstår en datakapplöpning. Ge varje chunk sitt eget utdatasnitt så att skrivningarna aldrig krockar.

Gör justerbara parametrar synliga

Gör tile-storlek och SIMD-bredd till parametrar. När reglagen finns på plats kan Ni prova många inställningar utan att skriva om kärnan.

fn kernel[tile: Int, width: Int]():
    pass

Låt autotuning söka

De bästa inställningarna varierar mellan maskiner. Autotuning provar kandidatvärden för parametrarna, mäter varje kombination och behåller den snabbaste.

Lås fast vinnaren

När Ni känner till den bästa tile-storleken och bredden låser Ni fast dem som vald konfiguration. Kärnan är nu specialiserad för Er hårdvara.

Verifiera under parallellism

Kör den trimmade, trådade kärnan och jämför med baslinjen. Korrekthet måste fortfarande gälla när många kärnor skriver samtidigt.

Snabb kontroll

Välj den verkliga risken med att parallellisera kärnan.

Sammanfattning

Ni använde parallellisera över balanserade delar, behöll SIMD i varje del, undvek datakapplöpningar och autotunade sedan parametrarna. Kärnan är nu snabb på flera kärnor. 🎯

Gratis att börja

Lär dig Mojo med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Parallellisera och trimma kärnan” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Mojo Academy, inklusive ”Parallellisera och trimma kärnan”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Mojo Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Parallellisera och trimma kärnan”?

Lägg till trådar och autotuning för maskinen. Ni övar på Mojo Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Mojo Academy?

Du behöver inga förkunskaper. Utbildningen i Mojo Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Parallellisera och trimma kärnan”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Mojo Academy-lektionen?

Ja. Varje Mojo Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Profilera Python-baslinjen
  2. Skriva om den heta kodvägen i Mojo
  3. Parallellisera och trimma kärnan
  4. Leverera det accelererade projektet
← Tillbaka till Mojo Academy