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...