Keresés

Hirdetés

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

  • Robitrix

    senior tag

    válasz flashpointer #7 üzenetére

    A dolog nem ennyire fekete fehér. 16 nagy mag sokat fogyaszt nagyon melegszik. Azt a CPU-t le is kell hüteni annyira hogy tudjon magas órajelen dolgozni. Az egyik megoldás, hogy raknak a prociba magas órajelen nagy teljesítménnyel futó magokat és kisebbeket . Ha van egy 8+8 magos proci és szükség van mondjuk 4 mag futására. Akkor futni fog 4 gyors magon. ha van egy programom, ami 14 magot használ egyszerre na akkor gond van. elég "okosnak" kell lenni a rendszer feladatütemezőjének vagy magának a programnak, hogy jelezni legyen képes, hogy melyik programág igényel nagy teljesítményt melyiknek elég kisebb telejsítmény ís. A hétköznapi életben a legtöbb feladat esetén nem lehet egyenletesen szétterhelni sok magra a futást. Lesz olyan mag, ami agyon gyötri a használt magot lesz, ami csak lépecol és alibiből futat le pár kisebb program ágat. Abban igaza van az AMD-nek, hogy elöbb a programoknak és a rendszerek erőforrás ütemezőjének kell megfelelő szintre fejlödni. Az intel már kisérletezett egy 4+1 magos procival. 4 általános mag és 1 darab nagy teljesítményű mag. Az eredmény nos nem volt kielégítő. a rendszer erőforrás ütemezőjénél korántsem volt igaz. hogy mindig a legoptimálisabban hozta össze a nagy teljesítményű magot és a program leginkább számítás igényes ágát egymással. Vagyis korántsem alakult optimálisan a program futás. Az optimalizáláshoz olyan program fejlesztő nyelvek kellenének ráadásul, ahol a program fejlesztő valamilyen módon minősíteni tudja a program ágakat, hogy melyik igényel nagy teljesítményt és melyik csak átlagos. Aztán ezen információk alapján az erőforrás ütemező tudna lépni, hogy mit rak nagy teljesítményű magra mit hagy csak úgy lébecolni a háttérben. Amig ezek nincsenek biztosítva szoftver szinten nos a dolognak túl sok értelme tényleg nincsen.

  • Robitrix

    senior tag

    válasz dokanin #13 üzenetére

    na igen ebben van igazság. egy ARM proci esetén sokkal primitivebb az erőforrás ütemezés. ha nézünk egy 4+4 magos procit. Ahol van mondjuk 4 mag 1,6 Ghz és van 4 gyors mag 2,4 Ghz.
    Ott azt csinálja, hogy ha kicsi a terhelés akkor a 4 gyengébb magot használja valamilyen terhelési szint felett meg a gyorsa nagy fogyasztású 4 magot. Megjegyzem az idő nagy részében szinte be se kapcsolnak a gyors magok legfeljebb pár játékban vagy esetleg CPU teszt programban. Viszont annyira primitiv a vezérlés. hogy ha én futtatok a telefonon mondjuk egy 2 magot használó applikációt, és elég neki a kisebb mag teljesítménye. Akkor auz látjuk, hogy a 4 gyengébb mag teljesítménye együtt változik. tehát egyszerre hajtja mindig 4 magonkánt az órajelet. Akkor is ha a 4 magnak éppen csak kétmagon van dolga. ettől még a nem terhelt két mag órajele is simán felmegy a 2 terheltel együtt. Tehát ez egy meglehetősen primitív vezérlés.
    X86-os procik esetében viszont különféle terheléseket látunk magonként. Simán látunk adot pillanatban 80%,50% 45% 25% 12% 5% és mind ezt egyszerre eltérő órajelen. Tehát egy X86-os proci a konkrét magon szükséges terhelés mértékében vezérli a szükséges magokat. Persze bonyolítja a helyzetet, hogy a magok alapból eltérő teljesítményre képesek. Olyankor össze kell valahogy hozni a nagy számításigényű programágat a nagy teljesítményre képes magokkal. Amig ez nincsen megoldva hogy kezelje a kérdést mind a program, mind az rendszer erőforrás ütemezője, addig csak a véletlen múlik, hogy mi hol fut adott pillanatban. Sőt kifejezetten béna is lehet a dolog. Ha a nagy számítást igénylő progrmágat akarja a lassú magra tenni, és a kis számitást igénylő programágat ütemezi a nagy teljesítményű magra.

  • Robitrix

    senior tag

    válasz Taranti #38 üzenetére

    Na itt a másik gond az armos procival, nem igazán arra készült, hogy komoly multitask fusson rajta egyidőben. vagyis hogy 6 alkalmazás fusson rajta összesen 24 programágat futatva és egymás elöl tépkedve ki a mondjuk 8 fizikai magot. Komoly multitaskos környezetben az ARM-ok erősen alul teljesítenek ahogy ki kell szolgálni egyszerre 50-60 futó task 350 szálát rögtön gondok lesznek. egy windows rendszer és egy x86-os procit 20 éve erre edzenek és fejlesztenek. Persze azért nem éri el egy asztali windows egy szerver windows rendszer stabilitását és képességeit, de azért komolyan tudnak az asztali rendszerek(linux is)

  • Robitrix

    senior tag

    ha most ránézek a win 10-es gépemre akkor azt látom, hogy 88 folyamat fut 1120 szálat lefoglalva. (természetesen adott pilanatban nem fut ténylegesen egyszerre 88 folymat és 1120 szál de ennyi van jelenleg a feladatütemezőre rábízva. hogy alkalom adtán adjon nekik lehetőséget mikor szükséges. Egy arm proci erőforrás ütemezője már megzakkanna ennyi feladattól.

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