Den Kern parallelisieren und abstimmen
Fügen Sie Threads hinzu und führen Sie Autotuning für die Maschine durch.
Den Kern parallelisieren und abstimmen ist eine kostenlose Mojo Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Mojo Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Mojo Academy-Kurs umfasst insgesamt 4 Lektionen.
Von schnell zu noch schneller
Ihr Kernel ist auf einem Kern bereits schneller als Python. Jetzt verteilen Sie ihn auf alle Kerne und lassen Mojo ihn für die Maschine optimieren. ⚡
Warum parallel arbeiten?
Moderne CPUs verfügen über viele ungenutzte Kerne. Parallelität ermöglicht es jedem Kern, gleichzeitig einen Teil der Daten zu verarbeiten, und sorgt so für eine deutliche Beschleunigung.
parallelize kennenlernen
Mojo führt mit parallelize Schleifenabschnitte für Sie über mehrere Threads aus. Sie geben die Arbeit und die Anzahl der aufzuteilenden Stücke vor.
from algorithm import parallelizeArbeit in einen Closure verpacken
Drücken Sie ein Arbeitsstück als kleine Funktion aus. parallelize ruft sie einmal pro Stück auf, jeweils auf einem eigenen Kern.
fn work(chunk: Int):
process(chunk)
parallelize[work](num_chunks)Den Bereich aufteilen
Teilen Sie die Daten in ungefähr gleich große Stücke auf, eines pro Kern. Ausgewogene Stücke halten jeden Thread beschäftigt, statt einen hinterherhinken zu lassen.
var per_chunk = n // num_chunksSIMD auf Threads anwenden
Belassen Sie Ihre SIMD-Berechnungen in jedem Stück. So erzielen Sie zwei Vorteile gleichzeitig: viele Kerne, von denen jeder pro Anweisung Vektoren verarbeitet.
Datenrennen vermeiden
Wenn zwei Threads an dieselbe Stelle schreiben, entsteht ein Datenrennen. Geben Sie jedem Stück seinen eigenen Ausgabeabschnitt, damit sich die Schreibvorgänge nie überschneiden.
Einstellbare Parameter bereitstellen
Machen Sie die Kachelgröße und die SIMD-Breite zu Parametern. So können Sie viele Einstellungen ausprobieren, ohne den Kernel neu zu schreiben.
fn kernel[tile: Int, width: Int]():
passAutotuning suchen lassen
Die besten Einstellungen unterscheiden sich je nach Maschine. Das Autotuning probiert mögliche Parameterwerte aus, misst jeden davon und behält die schnellste Kombination.
Die beste Einstellung festlegen
Sobald Sie die beste Kachel und Breite kennen, legen Sie sie als gewählte Konfiguration fest. Der Kernel ist nun auf Ihre Hardware spezialisiert.
Korrektheit bei Parallelisierung prüfen
Führen Sie den optimierten, threadbasierten Kernel aus und vergleichen Sie ihn mit der Baseline. Korrektheit muss auch dann gewährleistet sein, wenn viele Kerne gleichzeitig schreiben.
Schnelltest
Wählen Sie das tatsächliche Risiko bei der Parallelisierung des Kerns aus.
Zusammenfassung
Sie haben den Code mit parallelize in ausgewogene Abschnitte aufgeteilt, innerhalb jedes Abschnitts SIMD eingesetzt, Datenrennen vermieden und anschließend die Parameter automatisch abgestimmt. Der Kern ist jetzt für mehrere Kerne optimiert. 🎯
Lerne Mojo mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Den Kern parallelisieren und abstimmen“ kostenlos?
Ja — der vollständige Text von „Den Kern parallelisieren und abstimmen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Mojo Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Mojo Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Den Kern parallelisieren und abstimmen“?
Fügen Sie Threads hinzu und führen Sie Autotuning für die Maschine durch. Du übst Mojo Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Mojo Academy zu starten?
Keine Vorkenntnisse erforderlich. Mojo Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Den Kern parallelisieren und abstimmen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Mojo Academy-Lektion Code schreiben und ausführen?
Ja. Jede Mojo Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Die Python-Baseline profilieren
- Den Hotpath in Mojo neu schreiben
- Den Kern parallelisieren und abstimmen
- Das beschleunigte Projekt ausliefern