Kaj kupiti? Intel - AMD, Duo, X3, Quad

jest5

Guru
18. avg 2007
25.962
-8.672
113
Aha že vidim, kaj te matra... Na zgornji sliki samo 1 proces obremenjuje sistem s 50%-pač aplikacija, ki uporablja le 1 jedro. In tudi Vista ne bi prav nič drugače poštimala te zadeve od XPjev. Če bi slučajno Vista to aplikacijo poizkusila razdeliti 50:50 med jedri, bi bil končni rezultat slabši, ker bi se izgubljal čas, ko bi preklapljala med jedri.
 

stein

Fizikalc
16. sep 2007
19.575
1
36
Točno tak. Še vedno ni(si) rekel, v čem je Vista boljša glede tega vprašanja.
 

Florjan

Pripravnik
1. sep 2007
444
1
16
Ljubljana
Citat:
Uporabnik blazko pravi:
ksz

A ni tako, da morajo izkoriščanje vseh jeder podpirat tudi aplikacije, ne samo OS? Če imaš "staro" aplikacijo, ti tudi 8 jeder ne bo pomagalo, ker bo izkoriščeno le eno. Torej se je bolj smiselno vprašat kakšna programska bo tekla na PCju. Ali pa se motim?

@Florjan - btw. 286 AMD na 40MHz ne obstaja.
wink-1.gif

Najprej odgovor na zadnjo pripombo. Imaš prav, procesor je bil Am386.

Prvi del: izraba večih jeder je na procesorju izvedena na način, da OS dodeli procesorju A nek posel, istočasno pa dodeli drugi del te aplikacije procesorju B. Dokler so podatki in rezultati teh dveh delov med sabo neodvisni, lahko oba procesorja tečeta "na polno". Čim se pojavi na enem procesorju zahteva po podatku iz drugega procesorja (postopka), mora počakati, dokler se ta ne izvrši. Nadzor nad tem opravlja OS in to je seveda izjemno komplicirano. Veliko je odvisno tudi od same aplikacije, kako je pisana in pa seveda tudi od narave aplikacije. So aplikacije, ki so izjemno premočrtne, tu drugi procesor ne zaleže praktično nič, so pa seveda tudi take, kjer se lahko en del mirno izvaja vzporedno z drugim.

Mene praktično zanima, ali lahko "naši OS" (Windows XP, Vista in Windows 7) razdelijo svoje delo med več procesorjev. Verjetno je pri XP tega malo, W7 bo pa že boljši. Ali strokovnjaško: multiprograming teče na XP, ali teče tudi multiprocesing? Vsaj malo?
 

Gonzo

Guru
1. sep 2007
9.365
9.610
113
EU
Tukaj je zasedenost štirijedernika AMD Phenom 9850 v XP-jih.
Predvajal majhen video v winampu.
550449-Clipboard01.jpg
 

Priponke

  • 550449-Clipboard01.jpg
    550449-Clipboard01.jpg
    46,8 KB · Ogledi: 140

Florjan

Pripravnik
1. sep 2007
444
1
16
Ljubljana
Hvala gonzo, tu je odgovor na moje osnovno vprašanje!

Seveda, če malo razmislimo, koliko raznoraznih procesov se izvaja istočasno, ta slikca pa dokazuje, da znajo že Windows XP te lepo porazdeliti med jedra. Da pa aplikacija (če ni posebej pripravljena) ne more prav veliko pridobiti ob večih jedrih je pa logično in niti nisem pričakoval, da bi bilo kaj veliko bolje. Je pa bolje, saj se nekatere sistemske stvari, ki bi sicer uporabljale procesor, izvajajo vzporedno na drugem procesorju. Vprašanje tretjega ali četrtega procesorja pustimo ob strani. Pravi zagnanci in pa tisti, ki jim je kritičen vsak procent, bodo kupili pač Quad procesor.

Odločil sem se, da kupim AMD z dvojnim jedrom, pa še 64 bitni bo (???). Tega vprašanja na začetku nisem zastavil, ker pač vem, da je razlika pri emuliranju 32 bitnih procesorjev na 64 bitnih različna med AMD in Intel, žal v škodo Intela. Še kakšno besedo o tem?
 

blazko

Majstr
21. sep 2007
7.448
426
83
Re 64: namesti 64bitni OS. Po mojem je edini razlog za 32bitnega nedelovanje priljubljenega kosa SW ali manko pomnilnika. Pa tudi čisto iz principa: x64 je na trgu že precej let, skrajni čas je, da mu sledimo z OS.
 

Florjan

Pripravnik
1. sep 2007
444
1
16
Ljubljana
Citat:
Uporabnik blazko pravi:
Re 64: namesti 64bitni OS. Po mojem je edini razlog za 32bitnega nedelovanje priljubljenega kosa SW ali manko pomnilnika. Pa tudi čisto iz principa: x64 je na trgu že precej let, skrajni čas je, da mu sledimo z OS.

Ja že, ampak v tem primeru pa samo zamenjam SW emulacijo za HW emulacijo. Ne vem, kaj pridobim! Čuden občutek imam, mislim, da prav malo. Pri večjedrnih procesorjih pa še manj. Pa še nekaj. Sedanji OS 64 bitni so adaptirani 32 bitni sistemi. Bom počakal, da napišejo Windows od začetka, edino kar jih verjetno še ovira (MS) je združljivost za nazaj. To bi vsi najraje zavrgli in začeli od nule. To bi bil pa sistem!
Koliko pa je že 64 bitnih programov (napisanih za 64 bitni procesor)? Dokler bo še toliko "starih" procesorjev in OS se stanje ne bo izboljšalo. Na 64 bitnih strojih lahko emuliraš 32 bitne OS in programe, obratno pa ni možnosti, recimo raje, da tega nihče ne bo šel delat!

Vsak čas bo zunaj Windows 7, jaz sem pa v "sledenju" še zelo slab, meni tečejo XP, še Viste ne uporabljam.
Imel sem kolega, ki nobenega programa ni naložil, če je bila v verziji prva decimalka 0. Počakal je pač na stabilnejšo verzijo.
 

Gonzo

Guru
1. sep 2007
9.365
9.610
113
EU
Škoda, ker sem W2K ven vrgel iz abaka. Videl bi kako tam poteka deljenje nalog med procesorji.
Verjetno to sami WXP ne opravljajo, ampak to kontroler porazdeli med ostala jedra, mimo OS-a.
Bilo katero aplikacijo zaženem, obremenjena so vsa štiri jedra. Nekatera več, nekatera manj.
Probno sem kopiral en giga podatkov iz ene mape v drugo na istem zunanjem disku, priklopljenem prek E-SATA kabla.

Ustvarjanje nove mape na disku. prvo jedro največ, četrto jedro malo manj. Ostala jedra nekaj malega.
Kopiranje podatkov v novo ustvarjeno mapo_ vsa jedra enako..
Brisanje ustvarjene mape, skupaj s podatki_ prvo in drugo jedro največ. Četro polovico manj, in tretje najmanj.
Ponovitev prejšnjega postopka, je dalo drugačno sliko zasedenosti.

Ko delitev ne opravlja OS, to počne sam procesor (ali kontroler), po ne vem kakšnem algoritmu.

Pozneje bom še z linuxi probal.
 

Florjan

Pripravnik
1. sep 2007
444
1
16
Ljubljana
Vse skupaj je seveda še neprimerno bolj komplicirano, saj vsak postopek sproži še vrsto sistemskih servisov, cel kup nadzornih postopkov in še marsikaj, kar mi niti ne vemo.
Pravzaprav smatram, da je prav to dodeljevanje dela različnim jedrom (ali procesorjem) bistvo vsega. Uspešno razdeljevanje pohitri delo, neoptimalno razdeljevanje pa sicer zadevo "vozi" naprej, korist je pa majhna.

Spomil sem se ene objave v slovenskem računalniškem časopisu "Bit" (bil je prednik "Moj mikro"), kjer so objavili kratko novičko. Dobili so v preizkus program za arhiviranje (takrat je obstajal samo ZIP, če se prav spomnim) slovenskega avtorja. Seveda so ga navdušeno preizkusili. Rezultat je bil pa sledeč: "stisnjena" datoteka je bila večja od prvotne in drugič, program ni znal iz stisnjene datoteke dobiti nazaj original.

Ali se ta "dodeljevalnik" smatra za del operacijskega sistema je pa mislim bolj akademsko vprašanje. Ker gonilnike (driverje) smatramo kot del OS, bi po moje tudi to lahko smatrali kot gonilnik in seveda tudi kot del OS. Da jih dobimo s procesorjem je tudi razumljivo. Vsaka enota mora imeti tudi gonilnik priložen, redke so izjeme.
 

stein

Fizikalc
16. sep 2007
19.575
1
36
Dodeljevalniku se po angleško reče "task scheduler". In je del (vsakega) OS-a.
"Porazdelitev" enega programa na več jeder pa ni nobena porazdelitev. Program namreč laufa le na edem jedru. Čez nekaj milisekund se OS (oziroma "dodeljevalnik") premisli in ga da na drugega. Potem spet na četrtega.
Na Task Manager-ju, ki kaže povprečno zasedenost jeder, pa zgleda kot da je istočasno na vseh. Pa ni. To samo graf tak zgleda, ker je povprečen.

Če en program dela na polno (kaki ZIP) in Task Manager kaže zasedenost 50% enega jedra in 50% drugega, to ne pomeni, da program izkošča dva jedra. Ampak je navaden enotniten, se pa del časa izvršuje na enem jedru, del pa na drugem. Če bi eno jedro izklopil in pustil le enega, bi se program čist enako hitro izvajal.*

- pustimo dlake...
 

Florjan

Pripravnik
1. sep 2007
444
1
16
Ljubljana
Še kratko pojasnilo bi rad. Zakaj za vraga pa potem sploh delajo večjedrne procesorje, saj po tvoji razlagi bi morali biti počasnejši od ekvivalentov z enim jedrom.
Pa ne reci, da je to dlaka!
 

blazko

Majstr
21. sep 2007
7.448
426
83
Zato, ker je to ceneje, kot pa na matično ploščo tlačiti dva procesorja, kot smo delali perd uvedbo x-jedrnikov. In po drugi strani lažji in cenejši način večanja zmogljivosti (čeprav ti ni tisto "pravo", na kar kaže tudi naša debata).
smile-1.gif


Resno: če je aplikacija večnitna in podpira distribuirano izvajanje, potem se več-jedrnost hitro pozna. Ampak takšnega SW je zaenkrat (vsaj mislim tako) malo. Če se ne motim, je bil eden prvih med "običajnimi" programi ena izmed izvedenk Photoshopa. Tudi če čisto logično pogledaš moraj biti procesi, ki se izvajajo na n jedrih takšni, da omogočajo paralelno procesiranje. Takšnih pa pomojem ni ravno veliko.

Profitiraš pa že s tem, kar si dejal sam - da se določeni (sistemski) procesi vrtijo na enem jedru, drugo pa ostane za ostale aplikacije.

B.
 

SouthPark

Jas da nea vem?! Ka te je...
5. sep 2007
24.570
5
38
Klobukarjev dol
Zato, ker so enojedrniki dosegli končno mejo hitrosti (vsaj pri razumni ceni izdelave) in zato delajo večjedrnike. Nekatere Intelove modele s HT se sicer (baje) da prisilit da delujejo kot enojedrniki (Xeon, i7 ipd.).

Večjedrniki so (brez ustreznih programov, ki jih izkoristijo) pesek v oči. Se prav čudim, da jih vrli prodajalci ne oglašujejo kot npr. 4GHz procesor ampak 2x2GHz.
 

SouthPark

Jas da nea vem?! Ka te je...
5. sep 2007
24.570
5
38
Klobukarjev dol
Aja če smo že pri tem - je recimo dvojedrnik 2x 1,5 GHz kaj hitrejši od 3 GHz enojedrnika (pri enaki količini cache in hitrosti vodila seveda?)
 

stein

Fizikalc
16. sep 2007
19.575
1
36
Citat:
Uporabnik Florjan pravi:
Še kratko pojasnilo bi rad. Zakaj za vraga pa potem sploh delajo večjedrne procesorje, saj po tvoji razlagi bi morali biti počasnejši od ekvivalentov z enim jedrom.
Zato ker medtem, ko en program laufa na enem jedru, lahko drug program laufa na drugem jedru.

Primer:
Breme:
- en program, ki laufa 1 uro
- en program, ki laufa pol ure
- še en program, ki laufa pol ue

- eno jedrnik: če se izvajajo en za drugim, traja vse skup 2 uri (če se izvajajo istočasno, pa malenkost dlje, ker sprotno preklapljanje vzame nekaj časa - to je tista dlaka, katero sem omenil)

- dvo jedrnik: eno jedro laufa prvi progam, drugo jedro pa preostala dva. Čas izvajanja 1 ura. Dvakrat prej končano kot na enojedrniku.

- tri jdernik: več ali manj isto kot dvojedrnik, sicer bosta polurna programa fertik že po pol ure, ampak enourni bo pač trajal... eno uro.

(predpostavka: vsa jedra so enaka po zmogljivosti)
 

stein

Fizikalc
16. sep 2007
19.575
1
36
Citat:
Uporabnik SouthPark pravi:
Aja če smo že pri tem - je recimo dvojedrnik 2x 1,5 GHz kaj hitrejši od 3 GHz enojedrnika (pri enaki količini cache in hitrosti vodila seveda?)
Pri istočasnem izvajanju dveh niti malo.
Sicer pa je od enako do polovično zmogljiv.
(ob predpostavki, da sta prvi jderi po zmogljivosti točno pol onga tretjega)

PS: Hmm, zgleda se je nekdo nedavno užalil, mi je povprečje zvezdic padlo.
 
Nazadnje urejeno:

SouthPark

Jas da nea vem?! Ka te je...
5. sep 2007
24.570
5
38
Klobukarjev dol
It wasn't me.

Nazaj na temo: Zakaj pa potem dvojedrniki nimajo recimo 2x 3GHz jedra, ampak se začnejo pri 1,1 (če se ne motim)? Cena izdelave?

Gledam, da je najhitrejši ''civilni'' procesor 2x 2,8 dalje samo še xeon in i7, kjer pa gre cena v nebo.
 

_jolly_

Fizikalc
3. sep 2007
2.141
2
38
Wasnt me! Anyways.... Kakšno vlogo pa ima večnitnost? Recimo pri i7, ki ga okna prikažejo koj 8 jedrnika, čeprav to ni.
 

_jolly_

Fizikalc
3. sep 2007
2.141
2
38
To je zato, da ga lahk pol sam pohitriš, ko ti postane prepočasen!
smile-1.gif
pa mam pol 12ghz procesor! :D
šalo na stran: pomoje zaradi pregrevanja, ker 2 jedri povzročata 2x toplote! Sicer pa so tudi počasni dvojedrniki hitrejsi od boljsih enojedrnikov.