Sobes.tech
Junior

Cos'è il parallelismo?

sobes.tech AI

Risposta dell'AI

Il parallelismo (Parallelism) è l'esecuzione simultanea di più compiti o parti di un compito, di solito utilizzando più core del processore o dispositivi di calcolo separati. L'obiettivo è ridurre il tempo totale di esecuzione del programma.

In .NET, per implementare il parallelismo si utilizzano:

  • Task Parallel Library (TPL): Libreria di alto livello per l'esecuzione parallela di operazioni.
  • Parallel LINQ (PLINQ): Parallelizzazione delle query LINQ.
  • Lavoro manuale con thread (Threads): Controllo a basso livello sulla creazione e gestione dei thread.

Esempio di utilizzo di TPL:

// Esempio di ciclo parallelo semplice
Parallel.For(0, 1000, i =>
{
    // Eseguire un'operazione per ogni i in parallelo
    Console.WriteLine($"Iterazione {i} sul thread {Thread.CurrentThread.ManagedThreadId}");
    Thread.Sleep(10); // Simulazione di lavoro
});

Principali differenze rispetto alla concorrenza (Concurrency):

Parametro Parallelismo (Parallelism) Concorrenza (Concurrency)
Obiettivo Accelerare l'esecuzione grazie al lavoro simultaneo Gestione di più compiti che possono o meno lavorare contemporaneamente
Richiede Più core (o dispositivi) per vero parallelismo Molti thread che possono switchare su un singolo core
Focus Eseguire un compito più velocemente (dividendolo in parti) Gestione e coordinamento di più compiti indipendenti

Il parallelismo è particolarmente efficace per compiti con elevato carico computazionale (CPU-bound), che possono essere suddivisi in sotto-compiti indipendenti.