Sun T2000 nechává znova zazářit UltraSparc

Sun představuje výkonem ohromující server vybavený osmijádrovým riscovým CPU UltraSparc. Server Sun Fire T2000 vyba...


Sun představuje výkonem ohromující server vybavený osmijádrovým riscovým CPU
UltraSparc.

Server Sun Fire T2000 vybavený technologií CoolThreads se snaží nabídnout
enormní propustnost v podobě šasi o výšce 2 U při spotřebě 385 W. T2000 pohání
vůbec první procesor UltraSparc vybavený osmi jádry. Čip je založený na
sunovské architektuře RISC (Reduced Instruction Set Chip) a nese označení
UltraSparc T1. Server T2000 jsme shledali neobvyklým (v kladném slova smyslu),
neboť jeho výkon je vzhledem ke spotřebě a velikosti šasi zajímavý.
Procesor T1 je umístěn ve velmi přehuštěném boxu serveru disponujícího třemi
PCI-E a dvěma PCI-X sloty. V jeho konfiguraci dále figurují zdvojené a
redundantní napájecí zdroje (prošly naším testem selhání napájení) a čtyři
gigabitové porty. Prověřovaný Sun T2000 byl dále osazen 32 GB paměti (což je
maximální konfigurace, se dvěma 16GB DDR moduly ve dvou slotech).
V rámci schopností tohoto serveru Sun Fire jsme se setkali s několika
neobvyklými vlastnostmi. Některé z nich, jako třeba požadavek, aby byl server
při instalaci nabootován ze sériového kabelu, je jakýmsi návratem do starých
časů (ale také odkaz Sunu). Platformy jiných výrobců se spouštějí jednoduše
prostřednictvím bootp, netboot, PxE boot a dalších na Ethernetu založených
schémat vzdáleného bootování. Uvítali bychom tedy uživatelsky přívětivější nebo
rychlejší metodu natažení instalace.
Ostatní aplikace byly k dispozici v rámci předinstalované konfigurace
operačního systému Solaris, a to včetně Java Enterprise Systemu a
předkompilovaných verzí Apache či dalších na OSS (Open Source Software)
orientovaných aplikací. Pro spuštění stroje byl nejprve využit Advanced Lights
Out Manager (ALOM) od Sunu, který je předinstalován spolu se Solarisem 10. Po
počáteční konfiguraci nabootuje Solaris svá média, ať interní nebo v rámci SAN
(Storage-Area Network; my jsme používali pouze interní), spolu s natažením
Solarisu. ALOM není tak důmyslný jako metody zavádění nebo aplikace pro
monitorování poskytované jinými operačními systémy; bylo však příjemné dostat
se k systému HyperVisor sadě ovladačů jádra. Bohužel však byl přístupný přes
telnet, což v nás vzbudilo obavy ohledně bezpečnosti.

Kompetence jádra
UltraSparc T1, který pohání Sun Fire T2000, obsahuje osm diskrétních jader v
rámci jediného čipu. Představte si každé jádro jako autonomní CPU, ačkoliv
všechna sdílejí jedinou FPU (Floating-Point Unit), tedy jednotku pro zpracování
výpočtů s plovoucí čárkou. Použití jediné instance FPU je sice neobvyklé, Sun
tím ale dosáhl redukce čipem vyzařovaného tepla. "Chybějící" FPU jsou nicméně
poněkud vykompenzována, neboť UltraSparc T1 je schopen interně provádět
64bitové výpočty s celými čísly, dokud aplikace během kompilace nespecifikuje
plovoucí čárku. Při testování jsme ze systému dostali při výpočtech s celými
čísly dobrý výkon.
Každé jádro je schopno zpracovávat čtyři autonomní vlákna, která se chovají
jako procesory v procesorech. Čtyři thready a osm jader se dohromady rovnají
schopnostem současného zpracování úloh ve 32 virtuálních procesorech v rámci
jednoho 2 U serveru. Není to však totéž, jako mít 32 diskrétních CPU v jednom
stroji, neboť vlákna vzájemně bojují o zdroje jádra CPU.
Pozastavené thready (procesy čekající, než proběhnou jiné operace, jako je
třeba přístup do paměti nebo další závislé procesy) jsou odsunuty stranou a
příležitostně jsou opětovně dotazovány, dokud nedojde ke znovuspuštění threadu.
Jakmile je vlákno restartováno, je v procesoru T1 v každém jádru zavedeno do
sekvenčního zpracování s pomocí algoritmu round-robin. Tato metoda ovládání
threadů dobře zapadá do systému ovládání virtualizačních procesů Sunu s
označením Zone (viz Solaris 10).
Každé jádro je propojeno s ostatními prostřednictvím plnohodnotné crossbar
(křížové) architektury, což znamená, že při soutěžení během komunikace mezi
jádry nedochází ke vzniku žádných latencí. To je užitečné zejména v případě,
když je více jader využíváno stejnou aplikací není aplikováno zpracování,
pomocí něhož jádra a thready komunikují najednou, spíše se dá říci, že
komunikují přímo.

Výkon: Jedno, osm, nebo 32?
Pro testování výkonu jsme použili dobře známý (a často kontroverzní) benchmark
LMBench3. Výkon T2000 jsme porovnávali rovněž s námi nedávno testovaným a
inovovaným serverem HP ProLiant 585. Server jsme nakonfigurovali tak, aby
pracoval jako jediná jednotka (kdy byla testována instance jedné kopie),
následně jako stroj s osmi CPU (osm běžících kopií) a poté jako plně
virtualizovaný server se 32 běžícími procesy.
HP 585 obsahoval čtyři dvoujádrové procesory AMD Opteron 64 (každé jádro
disponovalo vlastní FPU jednotkou), tudíž jsme neporovnávali výsledky v
plovoucí čárce, protože nemohou být srovnatelné (pro další podrobnosti o
problémech s nesouměřitelností viz Jak jsme testovali). Například ve výpočtech
s celými čísly byly výsledky téměř shodné, jsou-li upraveny pro téměř poloviční
takt CPU serveru Sun Fire T2000. Čtyři dvoujádrové procesory Opteron ale
nedostanete do stejného šasi, tedy do serveru velikosti 2 U.
V našich testech nebyl LMBench3 schopen vykonat úlohy pro zatížení 32 CPU.
Protože nemůžeme modifikovat zdrojový kód LMBench3, byli jsme omezeni na
testování jedné a potom osmi instancí testovací sady. CPU AMD jsou navíc
taktována na více než dvojnásobnou rychlost oproti procesoru Sun UltraSparc T1,
což poukázalo na další výhodu CPU AMD: Jeho rychlost větvení procesů je téměř
čtyřnásobkem rychlosti Sun T1. Navíc, jak již bylo zmíněno, každý Opteron má
vlastní integrovanou FPU. Modifikovali jsme tedy LMBench3 tak, abychom
odstranili I/O testy, a mohli jsme se tak soustředit na přesun v paměti,
pipelining a využití/provoz procesoru.
Bez toho, abychom benchmark jinak optimalizovali, jsme zjistili, že celkově byl
scénář s osmi jádry přibližně osmkrát tak rychlý jako výsledek s jedinou
instancí. To znamená, že jediné CPU může vykonat osminásobek práce jediné
instance s velmi málo naměřenými zpožděními. UltraSparc T1 v serveru T2000 byl
v 64bitovém SMP módu pro osm CPU nicméně významně pomalejší než konfigurace
osmi jader čtyř dualcore čipů AMD, reprezentovaná serverem HP 585 a operačním
systémem Novell/SuSE Linux 10.
Nicméně výkon serveru T2000 vybaveného osmi jádry byl velmi dobrý, vezmeme-li v
úvahu malý form factor jeho šasi. A kdybychom mohli provést výše zmíněnou
optimalizaci pro 32 vláken (logických nebo virtuálních CPU), mohl by být jeho
výkon velkolepý. Existuje však málo způsobů, jak to korektně změřit, a jen málo
aplikací je schopno výhod diskrétních threadů využít.

V produkci
Během testování jsme na T2000 stáhli a rekompilovali několik open source
aplikací, jež jsme na T2000 provozovali (jako vymoženost Solarisu 10) i
navzdory jeho neobvyklému uspořádání CPU.
Většina aplikací, s nimiž jsme se setkali, nemá k dispozici specifické
optimalizace ani pro architekturu UltraSparc, ani pro uspořádání s více jádry a
s více thready používané v T2000 (nebo ostatně v jakémkoliv jiném CPU). Kód
připravený pro více procesorů je mimořádně vzácný.
Ke spuštění a vykonání aplikací ve specifických částech CPU T1 lze využít také
techniku Solarisu zónování. Ta administrátorům umožňuje oddělovat a agregovat
aplikace prostřednictvím technik threadingu procesoru UltraSparc, ačkoliv nejde
o jednoduchý proces. Nicméně tato technika virtualizace významně zvyšuje
možnosti členění/artikulace správy, kterou lze provádět v rámci architektury
Sun Fire.
Zástupci společnosti Sun tvrdí, že T2000 nabízí silný výkon při nízkých
provozních nákladech. S tím souhlasíme, Sun Fire T2000 bude velmi zajímavý pro
firmy, které spoléhají na platformu Sunu, a pro ty, které jsou ochotné
přepracovat kód (což je jednoduché označení pro velmi nákladné úsilí), aby
mohly těžit z výhod pokročilých možností procesoru UltraSparc T1.


Jak jsme testovali
Testovali jsme předprodukční verzi serveru, která obsahovala přeinstalovanou
verzi Solarisu 10. T2000 využíval osmijádrové 1,2GHz CPU a 32 GB DDR paměti a
dále byl vybaven interní CD/DVD mechanikou, 73GB interním SATA diskem, dvěma
napájecími zdroji, třemi sloty sběrnice PCI-E a dvěma sloty sběrnice PCI-X.
T2000 jsme do naší interní sítě připojili přes Fibre Channel host bus adaptér
LSI Logic. Všechny testy nicméně využívaly interní SATA disk.
Testy jsme prováděli s použitím open source benchmarku LMBench3. Jak je
vyžadováno v rámci licence LMBench, byl autorům LMBench poskytnut plný popis
testu a kompletní výsledky jsou k dispozici na adrese
www.networkworld.com/reviews/2005/ 121905-sun-fire-test-how.html?brl. Zde
rovněž získáte informace o testovací metodologii.
Kromě toho jsme Sun Fire T2000 porovnávali se serverem HP ProLiant 585 (jeho
konfigurace obsahovala čtyři dualcore CPU AMD 64 Opteron běžícími na 2,4 GHz,
16 GB DRAM, interní řadič HP se dvěma SCSI disky UltraSCSI 320 ačkoliv pro
testování byl použit pouze jeden disk) pod operačním systémem Novell/SuSE
Linux, 10 SMP CPU, kernel 2.6.7. Server HP byl také testován pomocí LMBench3.
Oba zmíněné operační systémy byly nainstalovány výrobcem v neoptimalizovaných
konfiguracích a běžely v holé konfiguraci (žádné httpd, bind nebo jiné
serverové procesy). Benchmark LMBench3 byl kompilován pomocí překladače gcc s
použitím defaultních kompilačních přepínačů (neoptimalizovaných pro thready,
cache či další vylepšení).









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.