Hlavní navigace

Low-end SMP

Jistě ten pocit znáte. Právě jste si koupili nový počítač, nainstalovali jste na něj svůj oblíbený operační systém a pak už si jen užíváte rychlejšího běhu nejrůznějších efektních a náročných window managerů. Všechno se vám zdá úžasně rychlé, a nechápete jak jste to mohl s tou starou "šunkou" tak dlouho vydržet.

Tento pocit však netrvá dlouho. Již za nějakou dobu po nákupu začínáte trochu závidět kamarádovi, který si koupil počítač o dva měsíce později a má o pěkných pár bogomipsů rychlejší procesor o hodně větší disk. Není proto divu, že se mu kernel zkompiluje mnohem rychleji a těch pár fps navíc v Quake je taky poznat ;-) To Vás děsně štve a začínáte přemýšlet, jak svůj zánovní počítač ještě více zrychlit.

Klasickou možností, která vás napadne jako první, může být přidání operační paměti, výměna pevného disku či procesoru za větší, resp.rychlejší. Poněkud netradiční volbou, která však zaručeně oslní všechny Vaše přátele, může být přechod na víceprocesorový (SMP) systém.

Myšlenka je jednoduchá. Rychlost počítače je do značné míry určena nejvytíženější součástkou počítače – procesorem. Nabízí se proto možnost přikoupit mu „kolegu“ – druhý procesor. Dva jsou více než jeden a počítač se Vám odvděčí výrazně zvýšeným výkonem. V některých případech až dvojnásobným.

Pokud uvažujete o nákupu počítače založeného na SMP systému, měli byste zvážit pár skutečností.

1) Výkon dvou procesorů není pro každého. Přesvědčte se, že zvýšený výkon opravdu potřebujete. Pro nenáročné úlohy, jako je například psaní textů, hraní jednoduchých her nebo surfování na Internetu, je SMP počítač trochu škoda.

2) Ani servery pro malé sítě nemusejí být vhodnými kandidáty pro SMP. Více procesorů nabízí primárně zvýšený výpočetní výkon, zatímco u serverů je třeba především výkon Vstupně/výstupních operací. To ovšem neplatí pro vysoce vytížené a zejména aplikační servery, které potřebují jak výpočetní, tak i I/O výkon. Většího efektu ale téměř vždy dosáhnete tím, že koupíte rychlejší disk, nebo více paměti.

3) Vhodným adresátem SMP výkonu může být např. programátor, který často překládá rozsáhlé programy. Překládání více různých modulů v daném projektu může být snadno rozvrženo na dva procesory, což výrazně zkrátí celkovou dobu potřebnou pro kompilaci. Asi nejvděčnější ukázkou možností SMP jsou pak zejména různé snadno paralelizovatelné aplikace, jako například programy pro lámání šifer z distrubuted.net, programy projektu Seti@home, apod.

4) Aby se velký výkon SMP projevil, musíte mít vyvážené také ostatní součástky počítače. Co jsou vám platné dva procesory, každý s výkonem 600 MIPS kompilují x-tisíc řádek za vteřinu, když musí tahat své vstupy z pomalého disku s přenosovou rychlostí 2 MB/s, který je zároveň „postižen“ mohutným swapováním v důsledku poddimenzované kapacity hlavní paměti.
Uvědomte si, že při paralelním běhu více programů je požadavek na velikost operační paměti větší, neboť v ní bude v jednom okamžiku zavedeno více procesů. Nemá proto smysl uvažovat o SMP stroji s méně než 64 MB RAM.

5) Potřebujete mít správný operační systém. To by snad mělo být u čtenářů tohoto serveru samozřejmostí, ale snad jen pro pořádek… Linux má velmi dobrou podporu SMP již (nebo možná teprve) od verze 2.0. V současné době se velmi rychle vyvíjí a zvýšený výkon a stabilita jsou pozorované v každé nové release. Mezi ostatní systémy, které dobře ovládají SMP patří dále BeOS, FreeBSD, Windows NT, OS/2 a možná některé další. Na SMP naopak mohou zapomenout uživatelé Windows 9× či snad dokonce MS-DOSu.

6) Provozování SMP počítače s sebou může přinášet i problémy. Protože víceprocesorové počítače nejsou tolik rozšířené, je možné, že při provozování některých aplikací narazíte na chyby, které se na jednoprocesorových počítačích nevyskytují a o kterých autor dotyčného programu neví jednoduše proto, že SMP počítač nevlastní. To se týká i samotného kernelu. Často se stane, že v určité kombinaci konfiguračních parametrů nejde jádro vůbec zkompilovat.

7) Věřte nebo ne, ale někdy může být SMP konfigurace dokonce pomalejší než jediná samotná CPU! Procesory totiž spolu sdílejí operační paměť a sběrnici. Předpokládejme, že operační paměť je připojena ke sběrnici procesoru s rychlostí 66 MHz. Pokud ale používáme dva procesory, musí se oba o tuto přenosovou kapacitu dělit. Takže efektivní rychlost komunikace každého procesoru klesá na 33 MHz. U programů s převahou I/O operací to může znamenat významné snížení výkonu. K dalším ztrátám dochází vlivem zvýšené režie na obsluhu dvou procesorů. Sami se můžete přesvědčit, že pokud porovnáte velikost jádra OS s podporou SMP a bez ní, tak zjistíte, že víceprocesorová jádra jsou znatelně větší.


Příště se podíváme na jednotlivé modely dvouprocesorových základních desek. A podíváme se na způsob, jakým je v jádře Linuxu řešena podpora SMP.

Našli jste v článku chybu?