parallel computing (tsz. parallel computings)
Párhuzamos számítás akkor történik, amikor több művelet hajtódik végre egy időben, különálló végrehajtó egységek segítségével. Ez jelentheti:
A processzorok órajele már évek óta nem növelhető jelentősen a hő és energiafogyasztás miatt, ezért a teljesítménynövelés a párhuzamos feldolgozás irányába tolódott el.
Fogalom | Magyarázat |
---|---|
Folyamat (process) | Saját memóriával rendelkező program |
Szál (thread) | Könnyebb végrehajtási egység, megosztott memóriával |
Task | Logikai munkaegység a feldolgozási rendszerben |
Speedup | Mennyi gyorsulást érünk el: S = T1 / Tp
|
Efficiency | A speedup aránya a processzorok számához: E = S / P
|
Scalability | Mennyire jól gyorsul a rendszer új egységekkel |
Amdahl-törvény | A párhuzamosítás elméleti korlátja |
Típus | Jelentés | Példa |
---|---|---|
SISD | Egy adat + egy utasítás | Klasszikus egyprocesszoros |
SIMD | Egy utasítás, több adat | GPU, vektorprocesszor |
MISD | Ritka, speciális rendszerek | Például redundáns hibakezelés |
MIMD | Több utasítás, több adat | Modern többmagos CPU, cluster |
#pragma omp parallel for
for (int i = 0; i < N; i++) {
a = b + c;
}
MPI_Send(buffer, count, MPI_INT, dest, tag, MPI_COMM_WORLD);
MPI_Recv(buffer, count, MPI_INT, source, tag, MPI_COMM_WORLD, &status);
Párhuzamos programozás során gondoskodni kell a szálak/folyamatok koordinációjáról.
Feladat | Technika |
---|---|
Mátrixszorzás | Blokk alapú felosztás |
Rendezés | Párhuzamos quicksort vagy mergesort |
Képtranszformáció | Pixelblokkok párhuzamosítása |
Graf algoritmus | Párhuzamos BFS, DFS, Dijkstra |
Neurális hálók tanítása | Adat vagy modell párhuzamosítás |
Név | Típus | Funkció |
---|---|---|
OpenMP | Megosztott memória | Direktívák C/C++/Fortran-hoz |
MPI | Elosztott memória | Üzenetküldés több gép között |
CUDA | GPU programozás | NVIDIA GPU-hoz |
OpenCL | Platformfüggetlen GPU/CPU | |
Threading Building Blocks (TBB) | C++ szálkezelés | |
Python multiprocessing / joblib / Dask | Magas szintű eszközök Pythonban |
Típus | Leírás |
---|---|
Adatpárhuzam (data parallelism) | Ugyanaz a művelet több adaton |
Feladatpárhuzam (task parallelism) | Különböző műveletek párhuzamosan |
Pipeline parallelism | Lépések láncolata, mint gyártósoron |
Speculatív párhuzamosítás | Több lehetséges út kipróbálása egyszerre |
Fogalom | Leírás |
---|---|
Párhuzamos számítás | Egyidejű számítási egységek együttműködése |
Megosztott memória | Szálak ugyanazon memóriát használják |
Elosztott memória | Folyamatok saját memóriával rendelkeznek |
OpenMP | C/C++ párhuzamosítás direktívákkal |
MPI | Üzenetküldés alapú párhuzamos rendszer |
Amdahl-törvény | A párhuzamosítás elméleti határa |
SIMD, MIMD | Feldolgozási architektúrák |
Speedup | Gyorsulás mértéke |