Sobes.tech
Junior

Kas yra paralelizmas?

sobes.tech AI

Atsakymas iš AI

Lygiagretumas (Parallelism) – tai kelių užduočių arba vienos užduoties dalių vykdymas vienu metu, dažniausiai naudojant kelis procesoriaus branduolius arba atskiras skaičiavimo įrenginius. Tikslas – sumažinti bendrą programos vykdymo laiką.

.NET platformoje lygiagretumui įgyvendinti naudojamos:

  • Task Parallel Library (TPL): aukšto lygio biblioteka paraleliniam operacijų vykdymui.
  • Parallel LINQ (PLINQ): LINQ užklausų lygiagretinimas.
  • Vietinis darbas su srautais (Threads): žemo lygio kontrolė kuriant ir valdant srautus.

TPL pavyzdys:

// Paprasto paralelinio ciklo pavyzdys
Parallel.For(0, 1000, i =>
{
    // Vykdome tam tikrą operaciją kiekvienam i paraleliai
    Console.WriteLine($"Iteracija {i} vykdoma sraute {Thread.CurrentThread.ManagedThreadId}");
    Thread.Sleep(10); // imitacija darbo
});

Pagrindiniai skirtumai nuo konkurencijos:

Parametras Lygiagretumas (Parallelism) Konkurencija (Concurrency)
Tikslas Greičio didinimas atliekant kelias užduotis vienu metu Valdyti kelias užduotis, kurios gali (ar gali ir ne) veikti vienu metu
Reikalavimai Keletas branduolių (ar įrenginių) tikrame lygiagretume Daug srautų, kurie gali persijungti viename branduolyje
Dėmesys Vienos užduoties greitas vykdymas (skaidant ją į dalis) Valdymas ir koordinavimas kelias nepriklausomas užduotis

Lygiagretumas ypač efektyvus užduotims su dideliu skaičiavimo krūviu (CPU-bound), kurias galima suskirstyti į nepriklausomas dalis.