Ohlasy ze světa: první velký test čtyřjádrového Nehalemu

Diskuze čtenářů k článku

p  |  12. 06. 2008 09:11

Preco davate dva velke clanky dokopy? Ja chapem, ze robite prehlad noviniek, ale ved clanok o Naheleme mohol byt v pohode samostatny

Souhlasím  |  Nesouhlasím  |  Odpovědět
12. 06. 2008 12:43

Pravda.

Souhlasím  |  Nesouhlasím  |  Odpovědět
12. 06. 2008 07:15

"Čtyřjádrový Nehalem je vyroben 45nm technologií, skládá se z 731 MILIARD tranzistorů"

To je clanek z roku 2015?

Souhlasím  |  Nesouhlasím  |  Odpovědět
snake  |  12. 06. 2008 10:05

hehe, tak tohohle jsem si vůbec nevšiml a i teď mi chvíli trvalo, než jsem zabral, v čem je potíž; ale dobrýýý

Jinak já bych měl taky jednu technickou: těch 4,18 nemusí být nutně možných jen na něčem lepším než na teoreticky perfektním čtyřjádru bez HT, záleží opravdu na typu úlohy. Jasně, většina paralelizovatelných úloh škáluje sublineárně či přinejlepším přesně lineárně, ale existují i úlohy, které mají v určitém rozsahu počtu jader tzv. superlineární nárůst. A tam by těch 4,18x nárůst na čtyřjádru bez HT oproti jedinému jádru (opět bez HT) nebyl nic nemožného, klidně by to mohlo dělat i víc...

P.S. Pro ty, kteří nechápou, jak je něco takového možného, uvedu hned dva způsoby, jak se něco takového může stát. První, značně prostoduchý, spočívá v tom, že někdo zoptimalizuje běh přímo na čtyřjádro a daná úloha škáluje přitom téměř bezvadně lineárně. Úloha, která pak počítá s tím, že má k dispozici právě 4 jádra, musí být neustále switchována operačním systémem, a context switch není úplně levná operace, může stát třeba i mnoho mnoho tisíc instrukcí. Záleží pak hodně na tom, jak často se switch provádí.

Druhý způsob, jak se něco takového může stát, je podobný a přesto odlišný: daná úloha prostě těží z toho, že může běžet paralelně na více jádrech. jde typicky o (pod)úlohy, které jsou v podstatě velmi krátké, ale je jich mnoho za sebou a potřebují mezi sebou komunikovat. Jinými slovy úloha 1 potřebuje na svůj vstup výsledek z paralelně běžící úlohy 2 i 3, stejně tak úloha 2 potřebuje výsledek z úlohy 1 atd. Na jednojádře se pak musí provádět neuvěřitelné množství context switchů, případně, pokud je systém nevhodně nastavený, dokonce nemusí jet ani na 100% (úloha velmi rychle doběhne a přepne se do sleepu, protože potřebuje ke své práci data od jiného procesu). Na vícejádru pak při optimálním počtu jader není nutné čekat nejen na context switche, ale můžeme jet bez čekání na 100% výkonu na každém jádře... Tož tak... A to vůbec nemluvím o tom, že každé jádro má přinejmenším vyhrazenou L1, možná i L2 cache, o jejíž obsah při změně kontextu na jednojádře při nepříznivé souhře okolností přijde, a opětovné natažení dat z hlavní paměti jde do desítek až stovek tisíc cyklů, což může také klidně onen superlineární efekt způsobit...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor