توازي النواة وضبطها
أضف الخيوط واضبط التنفيذ تلقائيًا للآلة
توازي النواة وضبطها درس مجاني في Mojo Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Mojo Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Mojo Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
From Fast to Faster
Your kernel already beats Python on one core. Now spread it across all your cores and let Mojo tune it for the machine. ⚡
Why Go Parallel
Modern CPUs have many cores sitting idle. Parallelism lets each core work on part of the data at the same time for a big speedup.
Meet parallelize
Mojo's parallelize runs loop chunks across threads for you. You give it the work and how many pieces to split it into.
from algorithm import parallelizeWrap Work in a Closure
Express one chunk of work as a small function. parallelize calls it once per chunk, each on its own core.
fn work(chunk: Int):
process(chunk)
parallelize[work](num_chunks)Split the Range
Divide the data into roughly equal chunks, one per core. Balanced pieces keep every thread busy instead of one lagging behind.
var per_chunk = n // num_chunksStack SIMD on Threads
Keep your SIMD math inside each chunk. Now you get two wins at once: many cores, each crunching vectors per instruction.
Avoid Data Races
Two threads writing the same spot causes a data race. Give each chunk its own output slice so writes never collide.
Expose Tunable Knobs
Turn tile size and SIMD width into parameters. With knobs in place, you can try many settings without rewriting the kernel.
fn kernel[tile: Int, width: Int]():
passLet Autotuning Search
The best settings differ per machine. Autotuning tries candidate parameter values, times each, and keeps the fastest combination.
Lock In the Winner
Once you know the best tile and width, fix them as the chosen config. The kernel is now specialized for your hardware.
Verify Under Parallelism
Run the tuned, threaded kernel and compare to the baseline. Correctness must still hold once many cores write at once.
Quick Check
Pick the real risk when parallelizing the core.
Recap
You used parallelize over balanced chunks, kept SIMD inside each, avoided data races, then autotuned the knobs. The core is now multi-core fast. 🎯
الأسئلة الشائعة
هل درس «توازي النواة وضبطها» مجاني؟
نعم — نص درس «توازي النواة وضبطها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Mojo Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Mojo Academy 4 دروس في المجموع.
ماذا ستتعلم في «توازي النواة وضبطها»؟
أضف الخيوط واضبط التنفيذ تلقائيًا للآلة تتمرن على Mojo Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Mojo Academy؟
لا تُشترط خبرة سابقة. Mojo Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «توازي النواة وضبطها»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Mojo Academy هذا؟
نعم. كل درس في Mojo Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تحليل أداء خط الأساس في Python
- إعادة كتابة المسار الساخن في Mojo
- توازي النواة وضبطها
- إصدار المشروع المُسرَّع