![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/IBM_Blue_Gene_P_supercomputer.jpg/640px-IBM_Blue_Gene_P_supercomputer.jpg&w=640&q=50)
Párhuzamos számítástechnika
programozási paradigma, amelyben a számításokat vagy a folyamatokat egyidejűleg hajtják végre / From Wikipedia, the free encyclopedia
A párhuzamos számítástechnika a számítástechnika egy típusa, ahol a számításokat vagy folyamatokat egyidejűleg hajtják végre.[1] A nagy problémákat gyakran fel lehet osztani kisebbekre, melyeket párhuzamosan lehet megoldani. A párhuzamos számítástechnikának többféle formája létezik: bitszintű, utasításszintű, adat- és feladat-párhuzamosság. A párhuzamosságot már régóta alkalmazzák a nagy teljesítményű számítástechnika területén, de szélesebb körű érdeklődést váltott ki a frekvenciaskálázás fizikai korlátai miatt.[2] Mivel a számítógépek energiafogyasztása (és ennek következtében a hőtermelés) az utóbbi években aggodalomra ad okot,[3] a párhuzamos számítástechnika a számítógép-architektúra meghatározó paradigmájává vált, főleg a többmagos processzorok formájában.[4]
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/IBM_Blue_Gene_P_supercomputer.jpg/640px-IBM_Blue_Gene_P_supercomputer.jpg)
A párhuzamos számítástechnika szorosan kapcsolódik az egyidejű számítástechnikához – gyakran használják együtt és gyakran egymással felcserélve, bár a kettő különbözik egymástól: párhuzamosság létezhet egyidejűség nélkül (például bitszintű párhuzamosság), és egyidejűség létezhet párhuzamosság nélkül (például többfeladatosság egy egymagos processzoron az időosztás által).[5][6] A párhuzamos számítástechnika során a számítási feladat jellemzően több, gyakran sok, nagyon hasonló alfeladatra bontható, amelyeket egymástól függetlenül lehet feldolgozni, és amelyek eredményeit a teljesítés után később egyesítik. Ezzel szemben az egyidejű számítástechnikában a különféle folyamatok gyakran nem foglalkoznak a kapcsolódó feladatokkal; az elosztott számítástechnikában az egyes feladatok változatos természetűek lehetnek és a végrehajtás során gyakran bizonyos folyamatok közötti kommunikációt igényelnek.
A párhuzamos számítógépeket nagyjából osztályozni lehet annak a szintnek az alapján, amelyen a hardver a párhuzamosságot támogatja: a többmagos és a többprocesszoros számítógépek esetében egyazon gépen több feldolgozóelem van, míg a fürtök, MPP-k és rácsszámítások több számítógépet használnak ugyanazon feladat elvégzéséhez. Speciális párhuzamos számítógép-architektúrákat alkalmaznak a hagyományos processzorok mellett bizonyos feladatok felgyorsítására.
Bizonyos esetekben a párhuzamosság átlátható a programozó számára, mint például a bitszintű vagy utasításszintű párhuzamosság, de kifejezetten a párhuzamos algoritmusok közül különösen azokat, amelyek egyidejűséget használnak, nehezebb megírni, mint szekvenciális társaikat,[7] mivel az egyidejűség számos új potenciális szoftverhibát rejt, amelyek közül a versenyhelyzetek a leggyakoribbak. A különböző alfeladatok közötti kommunikáció és szinkronizálás általában a legnagyobb akadály az optimális párhuzamos programteljesítmény elérésében.
Egyetlen program gyorsulásának elméleti felső határát a párhuzamosítás eredményeként Amdahl törvénye adja meg.