0Pricing
Mojo Academy · Lezione

La funzione parallelize

Esegua le iterazioni del ciclo su più thread.

La funzione parallelize è una lezione Mojo Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Mojo Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Mojo Academy include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

One Core Is Not Enough

A plain loop runs on a single core while the rest sit idle. For heavy work, that wastes most of your CPU.

for i in range(n):
    out[i] = heavy(i)

Spread the Work

Parallelism means handing different loop iterations to different cores so they all work at the same time. 🧵

Meet parallelize

Mojo's parallelize helper runs your loop body across many threads for you, so you skip the manual thread plumbing.

from algorithm import parallelize

The Work Closure

You write a small function that does the work for one index. Mojo calls it many times, once per iteration.

fn work(i: Int):
    out[i] = heavy(i)

Pass the Closure as a Parameter

The closure goes in square brackets as a compile-time parameter, not as a normal call argument. Mojo specializes on it.

parallelize[work](n)

The Count Is Runtime

The number in the parentheses is how many work items to run. That count is an ordinary runtime value.

parallelize[work](num_items)

Ask the Machine for Cores

Use num_physical_cores from the sys module to learn how many real cores you have to spread work across.

from sys import num_physical_cores

Cap the Worker Count

An optional second argument sets how many workers run at once. Matching it to your cores often works best.

parallelize[work](n, num_physical_cores())

Each Call Is Independent

parallelize assumes work items do not depend on each other's order. Each call should stand on its own.

Best for Heavy Loops

Parallelism shines when each item does real work. For tiny loops, the thread overhead can cost more than it saves.

Measure the Speedup

Time the loop before and after going parallel. A real benchmark tells you whether the extra threads actually helped.

Quick Check

You want to run a loop body across several CPU cores in Mojo.

Recap

You import parallelize, pass a per-item closure as a bracket parameter and the count in parentheses, then size workers to your cores for a real speedup. 🚀

Domande Frequenti

La lezione «La funzione parallelize» è gratuita?

Sì — il testo completo di «La funzione parallelize» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Mojo Academy, passa a CoddyKit PRO. Il corso Mojo Academy include 4 lezioni in totale.

Cosa imparerò in «La funzione parallelize»?

Esegua le iterazioni del ciclo su più thread. Eserciti Mojo Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Mojo Academy?

Non è richiesta alcuna esperienza precedente. Mojo Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «La funzione parallelize»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Mojo Academy?

Sì. Ogni lezione Mojo Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. La funzione parallelize
  2. Dividere il lavoro in blocchi
  3. Combinare parallelismo e vettori
  4. Evitare le race condition
← Torna a Mojo Academy