0Pricing
Mojo Academy · Урок

Распараллеливание и настройка ядра

Добавьте потоки и выполните автотюнинг для машины.

«Распараллеливание и настройка ядра» — бесплатный урок 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 parallelize

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

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

Let 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 включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Профилирование базовой версии на Python
  2. Переписывание горячего пути на Mojo
  3. Распараллеливание и настройка ядра
  4. Выпуск ускоренного проекта
← Назад к Mojo Academy