Sobes.tech
Junior

Τι είναι ο παραλληλισμός;

sobes.tech AI

Απάντηση από AI

Παραλληλισμός (Parallelism) — είναι η εκτέλεση πολλαπλών εργασιών ή τμημάτων μιας εργασίας ταυτόχρονα, συνήθως με τη χρήση πολλαπλών πυρήνων επεξεργαστή ή ξεχωριστών υπολογιστικών συσκευών. Ο στόχος είναι η μείωση του συνολικού χρόνου εκτέλεσης του προγράμματος.

Στο .NET, για την υλοποίηση του παραλληλισμού χρησιμοποιούνται:

  • Task Parallel Library (TPL): βιβλιοθήκη υψηλού επιπέδου για παράλληλη εκτέλεση λειτουργιών.
  • Parallel LINQ (PLINQ): παράλληλη εκτέλεση ερωτημάτων LINQ.
  • Χειροκίνητη εργασία με νήματα (Threads): χαμηλού επιπέδου έλεγχος δημιουργίας και διαχείρισης νημάτων.

Παράδειγμα χρήσης του TPL:

// Παράδειγμα απλού παράλληλου βρόχου
Parallel.For(0, 1000, i =>
{
    // Εκτέλεση κάποιας λειτουργίας για κάθε i παράλληλα
    Console.WriteLine($"Επανάληψη {i} σε νήμα {Thread.CurrentThread.ManagedThreadId}");
    Thread.Sleep(10); // Προσομοίωση εργασίας
});

Βασικές διαφορές με τον ανταγωνισμό (Concurrency):

Παράμετρος Παραλληλισμός (Parallelism) Ανταγωνισμός (Concurrency)
Στόχος Επιτάχυνση της εκτέλεσης μέσω ταυτόχρονου εργασίας Διαχείριση πολλαπλών εργασιών που μπορούν ή όχι να λειτουργούν ταυτόχρονα
Απαιτεί Πολλαπκούς πυρήνες (ή συσκευές) για αληθινό παραλληλισμό Πολλαπλά νήματα που μπορούν να εναλλάσσονται σε έναν πυρήνα
Εστίαση Εκτέλεση μιας εργασίας πιο γρήγορα (διαχωρίζοντάς την σε μέρη) Διαχείριση και συντονισμός πολλών ανεξάρτητων εργασιών

Ο παραλληλισμός είναι ιδιαίτερα αποτελεσματικός για εργασίες με υψηλό υπολογιστικό φόρτο (CPU-bound), που μπορούν να διαχωριστούν σε ανεξάρτητα υπο-εργασίες.