Keresés

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

  • Robitrix

    senior tag

    válasz dokanin #83 üzenetére

    Nekem 81 folyamat fut adott pillanatban 1150 szállal. Ami nem azt jelenti, hogy adott pillanatban fut is 1150 szál inkább csak zt, hogy a futó 81 folymatban benne van a 1150 szál. Simán elképzelhető, hogy el se fog indulni, mert úgy alakulnak a program eseményei, hogy nem lesz aktiv. Minden esetre jól látszik, hogy mekkora kunkurencia harc zajlik a proci magok és szálak 1-1 időszeletének megszerzése érdekében. Nekem jelen pillanatban egy régebbi 4 magos Intel I5-ös proci működik. Ha mondjuk egy procimagra másodpercente 50 időszeletet oszt ki a erőforrás ütemező az akkor azt jelenti hogy egy másodperc alatt 200 időszeletből kell gazdálkodni. Ha van folyamatban a 1150-ből mondjuk 412 szál, ami ténylegesen futni szeretne, akkor azért akadna gond. Mivel 200 időszeletet kell másodpercente 412 helyre kiosztani. Ráadásul a rendszer folyamatok előnyt és prioritást élveznek többnyire a felhasználó folyamatok szálaival szemben. Pont ez a tülekedés az időszeletekért teszi érdeklté a programozot. Ha minden programot úgy kzel a rendszer, hogy annak minden szálának a legerősebb magon kell futni, akkor még nagyobb a tülekedés az erősebb procimagok időmorzsáiért. És akkor előjön a kefés a fóka, de sok az eszkimó esete. Pont ezért érdekelt a programozó abban, hogy olyan program szálakat , amelyek nos nem kívánnak magas teljesítményt kisebb igényűnek minősítsen had fussanak a kisebb teljesítményű magokon és ne teremtsen konkurenciát a saját nagy teljesítményű szálainak. Ha rázavar egy gyors mag néhány időszeletére egy kis számítás igényű program részletet azzal a saját nagy teljesítményt igényló program részei elöl is elveszi a lehetőség egy részét a futásra. Tehát szerintem érdekelt a programozó abban, hogy a megfelelő irányba és magfele terlje a programának a a szálait. Úgy kell elképzelni a dolgot, hogy mondjuk vizet kell hordani vödörben a kútról. Van 50 vízhordó és van 30 darab 20 literes vödör. Nyilván nem fog jutni minden vízhordónak 20 literes vödör lesznek akiknek várakozni kell, hogy a következő fordulóban átvehessen egy 20 literes vödröt. Viszont ha van 20 darab 10 literes vödröm és azt mondom a lusta teszetosza bandának, hogy rendben akinek éppen nem jut a 20 literes vödörből az ragadjon meg egy 10 literes vödröt és hozzon azzal egy vödörnyi vizet. hiszen elhordott vízmennyiség tekintetében elörébb leszek, mint ha ott ácsorognak és trécselnek várva a 20 literes vödörre. :) Hiszen neki azt mondták, hogy elbirja a 20 literes vödröt. Ráadásul esetünkben a vizhordás vezetője elöre eldönti ki az a satnya vízhordó, aki eleve csak a 10 literes vödör való ki az erősebb, akinek megy a 20 literes vödör emelgetése. Ráadásul a CPU tekintetében bonyolult a dolog, hiszen meg van szabva szálasított proci esetében, hogy adott pillanatban melyik program szálai használhatnak együtt közösen egy mag két szálát. Tudtommal a közös gyorsítótár miatt nem keveredhet adott pillanatban két külön program két szála. Na ezt az amúgy nem egyszerű vezérlési feladatot komplikálja meg az, hogy az rendszer erőforrás ütemezőjének még azt is figyelembe kell majd venni, hogy melyik program szálat melyik magon optimális futatni a teljesítmény miatt. Csöppet se irigylem azt, akinek irni kell egy hatékonyabb erőforrás ütemezőt a rendszerhez, hogy kihasználja a hibrid procit. :) Igaziból úgy egyéve már történt egy kisérlet egy olyan intel procival, ami 5 magos volt. rendelkezett egy spcibb gyors maggal és 4 sima maggal. Kiderült a jelenlegi rendszerekben pusztán a statisztikai szórás okán valósul meg az, hogy a sok számítást igénylő folymat összetalálkozik a gyors maggal vagy nem. tehát nem elég hatékony. Vélhetően pont ezért is volt sürgös a win 11 kiadása, hogy hatékonyabb legyen egy hibrid proci kezelése.

  • Robitrix

    senior tag

    válasz dokanin #83 üzenetére

    Ez igaz a mai fordító programok az általam irt végül is teljesen egyszálas programból is simán csinál akár 3-4 szálas programot is. Külön választva az objektum orientált programokban a bizonyos folyamatokat. Ha öszinte akarok lenni végül is gözöm sincsen mi a francot rak még bele az én programomba a fejlesztő rendszer és a fordító program. Teli rakja olyan objektumokkal amiket én nem is akarok használni. Ezért lesz egy olyan hagyományos egyszerű programból, mint töröld le a képernyőt, majd ird ki, hogy "Hello world!" és program vége utasítás(már ahol van). :) aztán lefordítom valami interaktív objektív orientált fejlesztő nyelven és lesz belőle 5 megás exe program... :) Pusztán azért, mert a képernyő törlés folyamata bele van ágyazva egy komplex tulajdonképpen sok részből álló program szubrutin gyűjteménybe. Régen ezt a feladatot meg lehetett oldani egy 25-35 bájtos COM programmal. Pusztán attól, hogy ma bele teszek pár windows vezérlő elemet, mondjuk egy kiirást vagy egy program vége gombot egy ablakba máris millió objektumot és az amúgy felesleges objektumok rengeteg propertyvel és az objektumokba ágyazott soha nem használt metódusokkal. Szóval szerintem nincsen programozó, aki pontosan tudja mia faszt csinál pontosan a programja azokon a részeken kívül amit ő maga ír meg. :) Az biztos, hogy kényelmes a programozás és univerzális nem kiván speciális munkát. de hogy a kapott kód mennyiben hatékony az más kérdés. :)

  • Robitrix

    senior tag

    válasz dokanin #83 üzenetére

    Amúgy ha megnézed kicsit alaposabban mondjuk az androidos telefonokat akkor ugye ott is egyfajta hibrid proci müködik mondjuk 4 lassabb és 4 gyorsabb maggal. Viszont azt is látni egy rendesebb proci figyelő applikációval, hog bizony béna fax módon együtt kezeli mindig a 4-4 magnak a teljesítmény. Együtt mozdulnak a 4 mag teljesítménye és órajele. Mindig ugyan azt a órajelet felvéve. Ráadásul mindig ugyan azt a néhány értéket használja.

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