0Pricing
Mojo Academy · Aula

Paralelizando e ajustando o núcleo

Adicione threads e faça o ajuste automático para a máquina.

Paralelizando e ajustando o núcleo é uma aula grátis de Mojo Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Mojo Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Mojo Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

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

Perguntas Frequentes

A aula “Paralelizando e ajustando o núcleo” é grátis?

Sim — o texto completo de “Paralelizando e ajustando o núcleo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Mojo Academy, atualize para CoddyKit PRO. O curso de Mojo Academy inclui 4 aulas no total.

O que vou aprender em “Paralelizando e ajustando o núcleo”?

Adicione threads e faça o ajuste automático para a máquina. Você pratica Mojo Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Mojo Academy?

Nenhuma experiência prévia é necessária. Mojo Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Paralelizando e ajustando o núcleo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Mojo Academy?

Sim. Cada aula de Mojo Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Analisando o desempenho do Python de referência
  2. Reescrevendo o caminho crítico em Mojo
  3. Paralelizando e ajustando o núcleo
  4. Distribuindo o projeto acelerado
← Voltar para Mojo Academy