Mojo Academy · Lektion

Parallelisér og tun kernen

Tilføj tråde, og autotun til maskinen.

Lektion 3 af 413 trin

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 parallelize

Pak 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_chunks

Kombiné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]():
    pass

Lad 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. 🎯

Gratis at komme i gang

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

  1. Profilér Python-baseline
  2. Omskriv den varme kodevej i Mojo
  3. Parallelisér og tun kernen
  4. Udgiv det accelererede projekt
← Tilbage til Mojo Academy