Új hozzászólás Aktív témák

  • brd

    nagyúr

    válasz cigam #65431 üzenetére

    Itt nem a CPU-val van a baj, hanem egyrészt a grafikon értelmezésével, másrészt a CPU magok feladattal etetésével. Utóbbiról már írtam (nem egyszerű többszálúsítani, más erőforrásra is várakozhat a program/szál stb.). Előbbiről "tömörítve" pár szót: amit azon a grafikonon látsz, amögött a háttérben az van, hogy a CPU, számolással töltött ideje (vegyük ezt most 1 másodpercnek, alapból asszem' ilyen gyakran frissül a grafikon), fel van osztva bizonyos méretű részekre (tegyük most fel, hogy 1000 részre osztva, tehát 1 másodperc alatt 1000x lehet váltania más-más programok részeinek számítása között), majd a grafikonon ezek összesített statisztikáját látod: ahol ki lett használva teljes mértékben a számítási kapacitás (mind az 1000 időszeletben számolt), ott 100%-ot látsz, ahol nem teljesen (mondjuk csak 300 ilyen kis szeletben kapott munkát), ott kevesebbet. De amikor egy-egy ilyen kis szeletben dolgozik, azt teljes sebességgel teszi (most hagyjuk az energiagazdálkodást). A modernebb OS-ekben, többmagos gépen az energiahatékonyság és a végrehajtási sebesség miatt a programok végrehajtását igyekeznek szétdobálni különböző magok között, tehát bizonyos korlátok között lehetőleg külön magon futtatnak különböző programszálakat, sőt, még 1 adott szálat is mozgatnak a magok között különböző szempontok alapján (ezt a programok oldaláról is lehet szabályozni, nincs kőbe vésve az adott OS-ben). Ez azt eredményezi, hogy egy 1 másodperces statisztikában azt fogod látni, hogy az 1-es mag 40%-ra volt terhelve, a 2-es 30%-ra, a 3-as 45%-ra stb. Ez azt jelenti, hogy az 1-es szál az 1 másodperces időtartam alatt 400 időszeletben végzett számítást, a 2-es 300-ban stb., de akkor azt 100%-os terheltséggel tették. Még egy program 1 szálas 100%-os terhelését sem úgy fogod látni, hogy 1 mag 100%-ra van terhelve (ha csak külön ki nem köti ezt az adott program magának, vagy más módon nincsen kikényszerítve, nem szól közben a Core parking stb.), hanem azt, hogy az összes mag között kb. arányosan szétosztva, tehát 8 mag esetén minden mag kb. 12.5%-ra lesz terhelve a grafikon (ez persze nem fix érték, függ pl. a többi egyéb futtatott programtól is, Core parkingtól, affinitástól stb.).
    Próbálj meg pl. egy Avidemux-szal (ez ingyenes, és egyszerűen használható, azért írom) filterek nélkül Mpeg4 AVC (x264)-be kódoltatni! Ha külön nem állítasz be speciális tömörítési paramétereket, és nem az I/O fogja korlátozni, akkor garantáltan 100% körül lesz a CPU használat a 8 magodon. ;)

    The only real valuable thing is intuition.

Új hozzászólás Aktív témák