Digitális és informatikai

Párhuzamos feldolgozás: miért korlátozza a gyorsulást a soros rész?

Négy feldolgozó nem feltétlenül ad négyszeres gyorsulást. Egy száz másodperces feladat soros és párhuzamos részeiből kiszámítjuk a várható időt, a gyorsulás felső korlátját és a szervezési többlet hatását.

Dajka Gábor4 perc olvasás
Dajka Gábor portréja sárga háttérrel
Dajka Gábor

Egy adatfeldolgozás száz másodpercig tart egyetlen feldolgozóegységen. A feladat egy része egymástól független tételekre osztható, más része viszont sorrendet követel. Több processzormag csak a párhuzamosítható rész idejét csökkenti a legegyszerűbb modellben. A teljes gyorsulást ezért a két rész aránya alapján érdemes becsülni.

Adattárolókkal felszerelt szerverek elölnézetből
Illusztráció: Pixabay · Felhasználási feltételek

Amdahl törvénye azonos munkamennyiség mellett mutatja meg ezt a korlátot. Hasznos első ellenőrzés, de valós futásidő helyett mért adatokkal kiegészítendő modell.

A soros rész időtartama megmarad

Legyen a teljes egyszálú idő T, a soros hányad s, a párhuzamos feldolgozók száma p. T másodpercben értendő, s nulla és egy közötti arány, p pozitív egész.

Ideális párhuzamos idő = T × [s + (1 − s) / p].

Gyorsulás = egyszálú idő / párhuzamos idő.

A Lawrence Livermore National Laboratory párhuzamos számítási oktatóanyaga tárgyalja Amdahl törvényét, a rögzített feladatméretet és a párhuzamosítás többletköltségeit. A modellben a feldolgozók egyformák, a megosztható munka tökéletesen eloszlik, az adatmozgatás idejét kezdetben elhanyagoljuk.

Négy és nyolc feldolgozó számszerűen

A száz másodperces munka 20 másodperce soros, 80 másodperce ideálisan párhuzamosítható. Négy feldolgozón a soros 20 másodperc megmarad, a másik rész 80 / 4 = 20 másodperc. Összesen 40 másodperc kell, a gyorsulás 100 / 40 = 2,5-szeres.

Nyolc feldolgozón 20 + 80 / 8 = 30 másodperc, a gyorsulás körülbelül 3,33-szoros. A feldolgozók számának megduplázása a teljes időt negyvenről harminc másodpercre csökkenti: ez 25%-os időnyereség.

Feldolgozók számaSoros időMegosztott rész idejeÖsszes időGyorsulás
120 s80 s100 s1
220 s40 s60 s1,67
420 s20 s40 s2,5
820 s10 s30 s3,33

A százalékos változás kalkulátor az időcsökkenés ellenőrzéséhez adhat általános segítséget. A gyorsulási szorzót és a százalékos időcsökkenést külön nevezd meg: a 2,5-szeres gyorsulás a száz másodperces idő 60%-os csökkenését jelenti.

A felső korlát

Nagyon sok feldolgozó mellett a 80 másodperces rész ideje a modellben nullához közelít, a húsz másodperces soros rész megmarad. A gyorsulás felső határa 100 / 20 = 5-szörös. Általánosan pozitív soros hányadnál a határ 1 / s.

Ha a program átalakításával a soros rész aránya 10%-ra csökken, változatlan száz másodperces kiinduló összidőt feltételezve nyolc feldolgozón 10 + 90 / 8 = 21,25 másodperc adódik. A gyorsulás körülbelül 4,71-szeres, az elméleti felső határ tízszeres. Ez külön forgatókönyv: az átalakított program saját egyszálú idejét a gyakorlatban újra meg kell mérni.

A szervezési többlet visszavesz az előnyből

A feladatok elosztása, az eredmények összeillesztése, a kommunikáció és a várakozás időt igényelhet. Ha a négyfeldolgozós példában ezek együtt nyolc másodpercet adnak hozzá, az összes idő 40 + 8 = 48 másodperc. A gyorsulás így 100 / 48, körülbelül 2,08-szoros.

Kis feladatoknál ez a többlet a teljes munka jelentős része lehet. Egyenlőtlen felosztásnál a gyorsabb munkarészek befejeződnek, miközben egy lassabb részre mindenki vár. Memória-, háttértár- vagy hálózati korlát esetén a feldolgozók száma önmagában szintén kevés magyarázatot ad.

A százalékkalkulátor a soros és megosztható idő arányának ellenőrzéséhez használható. A bemenetet profilozásból vagy külön mért lépésekből gyűjtsd; a processzor kihasználtságának egyetlen pillanatképe nem azonos a soros hányaddal.

Milyen mérés segít a döntésben?

Azonos bemeneten mérj egy, két és több feldolgozóval, a teljes végrehajtási időt és az eredmény azonosságát is ellenőrizve. A bemelegedést, fájlgyorsítótárat és háttérterhelést tartsd szem előtt. Ha több maggal egyre nagyobb feladatot futtatsz, már más kérdést vizsgálsz, mint a rögzített munkamennyiségű modell.

A beszerzési vagy fejlesztési döntésnél a megtakarítható másodpercet a futások számával együtt nézd. Napi egyszeri rövid feladat és percenként ismétlődő feldolgozás esetén ugyanaz a gyorsulási szorzó eltérő gyakorlati értéket jelent.

Tudáspróba

1. Mennyi az ideális idő négy feldolgozón, ha húsz másodperc soros és nyolcvan megosztható?

  • A: 25 másodperc.
  • B: 20 másodperc.
  • C: 40 másodperc.

2. Mekkora a 20%-os soros hányad melletti elméleti maximális gyorsulás?

  • A: Ötszörös.
  • B: Hússzoros.
  • C: Korlátlan.

3. Mit jelent a negyven másodperces ideális időhöz hozzáadott nyolc másodperc szervezési idő?

  • A: Továbbra is 2,5-szeres gyorsulást.
  • B: 48 másodperces időt és körülbelül 2,08-szoros gyorsulást.
  • C: Nyolcszoros gyorsulást.

Megoldások és következő lépés

1. C. 20 + 80 / 4 = 40 másodperc.

2. A. A húsz másodperc megmarad, így 100 / 20 = 5 a határ.

3. B. A teljes idő 48 másodperc; a gyorsulást ehhez az időhöz kell viszonyítani.

0–1 pont: bontsd szét a száz másodpercet soros és megosztható részre. 2 pont: töltsd újra a táblázatot nyolc feldolgozóig. 3 pont: azonos bemenettel mérj több párhuzamossági szintet, és a modellhez képesti többletet külön vizsgáld.

További cikkek

Kapcsolódó olvasnivalók

Gyorskereső

Kalkulátorok és útmutatók keresése

↑↓ választásEnter megnyitásEsc bezárás