Prava Multi-Core optimizacija zahtevaće preradu čitavog Windowsa
STRANA 1 OD 1
PhatPhuck
Prava Multi-Core optimizacija zahtevaće preradu čitavog Windowsa
05.03.2012. 17:10
T44547
status: user broj poruka: 1886
Nije nov članak, daleko od toga - iz 2010. je - ali je jako poučan zbog toga što mnogi ni dan-danas nisu svesni zašto imaju 4-voroglavu ili 8-smoglavu `aždaju` od procesora na `mnogo` megaherca - a ipak u Windowsu nemaju baš onakve performanse kakvim su se nadali - gledano u poređenju sa danima klasičnih, jedno-jezgarnih procesora...
Ujedno - ovaj članak govori o tome da su inženjeri Microsofta ODAVNO SVESNI o `hramanju i posrtanju` Windowsa, kad su u pitanju `mnogo-jezgarni` procesori - i takođe ovaj članak nudi još jednu potvrdu ZAŠTO novi 8-smojezgarni procesori iz AMD-a ne rade onoliko brzo - koliko imaju (realni) potencijal da rade.
`A key Microsoft kernel architect, David Probert, has come out with a surprising statement regarding Windows` ability to harness multiple cores. While Windows has taken advantage of multicore technology for over a decade, Probert notes that users rarely see the performance that they should. `Why should you ever, with all this parallel hardware, ever be waiting for your computer?` Probert asked in a presentation last week at the Universal Parallel Computing Research Center in Champaign-Urbana.
Each successive OS release from Microsoft has improved multicore scaling but bottlenecks regularly occur as multiple applications jockey for position. Priority scheduling helps a certain amount, but it`s not transparent to the end user or guaranteed to improve performance. One of the reasons for poor multicore performance is that the operating system doesn`t understand which programs the user wants prioritized (and which he doesn`t). If the OS is busy running a virus scan while the user is busy opening documents or copying files, system responsiveness drops like a rock no matter how many cores you have.
Probert argues that the best way to solve the problem is to build a new OS from the ground up using a different set of assumptions. If the OS `knew` it had multiple cores at its disposal by default, programs could be assigned to specific processors and the OS would no longer have to juggle the various cores to ensure individual programs were being handled properly. This switching takes time. in some cases it`s currently more efficient to keep code executing on a single CPU core rather than spin it off to another.
Unfortunately, we aren`t going to see an OS built like this anytime soon. Probert views don`t reflect any work going on at Microsoft and his ideas aren`t universally accepted across the Windows architecture team.`
Ujedno, ovaj članak potvrđuje zašto Intel trenutno dominira nad AMD-om, i pored toga što AMD ima više pravih jezgara (a ne `virtuelnih` - threadova): manje jezgara + jezgra koja su vrhunski optimizovana i imaju jako kratak execution pipeline, integrisan memorijski kontroler (što Intel tek odnedavno ima - gledano u odnosu na AMD) i dosta megaherca = manje potrebe i manje šansi da scheduler Windowsa `luduje` i (često bespotrebno) žonglira threadove okolo sa jednog jezgra na drugo, a i kraće vreme je potrebno da se to žongliranje izvrši = daleko veće performanse Intela gledano po megahercima na kojima rade - u odnosu na AMD...
`Those who want respect - give respect.` - Anthony J. Soprano
Pa dobro, Windows ne koristi kako treba sva jezgra, ali ono što je bitnije je da programi koji rade u njemu koriste. __________________ CPU-Z Validator : http://goo.gl/A84Kd
Da, ali daleko od toga da ima mnogo takvih programa - u odnosu na klasične `single thread` aplikacije... Osim toga, čak i kada aplikacija koristi vše threadova, a ti, recimo, imaš proc. sa 6 jezgara ili više, Windows će ipak moći da *ebe stvar tako što će tu aplikaciju `šutirati` okolo sa jezgra na jezgro, umesto da je fiksira na 2 ili 3 jezgra koliko ta aplikacija koristi...
Na primer, kao kada smo, ako se sećaš, koristili staru, single-thread varijantu Prime-a 95, pa si, ako si hteo da testiraš dvojezgarni proc - morao da odrediš `affinity` obema instancama (pokrenutim `kopijama` Primea) tako da se fiksiraju na jedno od dva jezgra, i da svaka instanca radi isključivo na svom jezgru...
`Those who want respect - give respect.` - Anthony J. Soprano
:: Pa dobro, Windows ne koristi kako treba sva jezgra, ali ono što je bitnije je da programi koji rade u njemu koriste :: __________________ :: CPU-Z Validator : http://goo.gl/A84K :: ::
Isto kao što, recimo, za grafičke kartice u drajverima postoje profili za pojedinačne igre - za svaku ponaosob - i isto kao što u Windowsu 7 postoji `compatibility` baza za stare aplikacije - isto tako su mogli da oforme i aktivnu bazu multi-core aplikacija, i da scheduler operativnog sistema prerade tako da prepoznaje (gledajući u bazu) multi-core aplikacije - i da tim aplikacijama fiksira `affinity` na određenim (trenutno najmanje zauzetim) jezgrima, a da sve ono što je `čučalo` do tada na tim jezgrima, raznu `boraniju` od procesa - raseli na ostala jezgra... I oda onda multi-core, multi-threadovana aplikacija koristi konstantno svoja jezgra, bez da je `guraju` i da joj smetaju razne druge `boranije` od aktivnih procesa...
`Those who want respect - give respect.` - Anthony J. Soprano
Jbg, niti možeš da promeniš tu nešto, niti imaš alternativu, tako da trpimo dok ne bude bolje nažalost...
Pritom kao alternativu ne bih naveo linux ili Mac OSX, jer ne postoji alternativa za DirectX ako ništa drugo... __________________ CPU-Z Validator : http://goo.gl/A84Kd
Pa pola programa je takvo. Ne samo programi, tu su i igre koje su iste takve. Jednostavno ne koriste sva jezgra. Po mom nekom iskustvu najviše sada ima programa koji koriste 2 jezgra jer tih 2 jezgarnih ima kao pleve.
Borderlands je imao problema sa multi core procesorima. Kada pustiš na 4 jezgra igra leti i na najzahtevnijim scenama kao od šale. Međutim bila je jako nestabilna i nisi mogao ni pola sata da je igraš a da ne izleti u windows. Ako si međtuim u task manageru stavio affinity za samo jedno jezgro onda je išla ali ne tako dobro kao sa četiri.
Stvarno je to bedno od strane svih koji prave software. Ti kupiš jaku mašinu jer hoćeš lepo da ti radi a neće zato što neko nije lepo napisao program.
Inače jedna od najsmešnijih stvari u svemu ovome je jedan program Format Factory koji je uzgred besplatan potpuno, e taj program ima podršku za quad core procesore, čak sam i gledao u task manageru dok radi, a neki visoko budžetni programi to nemaju.
Nije bash sve tako prosto kao sto mislite. Razvoj programa koji koristi paralelno izvrsavanje nije nimalo jednostavan a ni jeftin. Prvo je potrebno da je polje problema podlozno za paralelizam. Zatim vam trebaju programeri koji razumeju paralelizam i specificni alati. A i onda uspeh nije zagarantovan jer se naslanjate na OS. Debug ovako pisanog programa je daleko slozeniji. Razvoj je skuplji a odrzavanje i unapredjivanje softvera komplikovanije. Tek kada se razviju ozbiljni a istovremeno i jeftini alati koji podrzavaju ovakav nacin pisanja softvera mozete ocekivati bitniji napredak na ovom polju. Ali i to je blize neko sto mislimo.
Broj postavljenih tema: 60372. Broj poslatih odgovora: 647157. Trenutno niste prijavljeni na PC Berzu i zbog toga imate status 'gosta'. Kao gost ne možete da šaljete poruke na Forum. Ako ste registrovani kao član PC Berze, prijavite se. Ako ste novi korisnik, molimo registrujte se da bi dobili mogućnost aktivnog učešća u radu Foruma.