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.