Innováció a hardver infrastruktúrában – processzorok, rendszerek és teljesítmény Fischer Erik Principal Engineer
[email protected]
Témák • • • • •
Technológiai bevezető Processzor újdonságok UltraSPARC szerverek Opteron szerverek Solaris 10
A teljesítmény növelés lehetőségei • • • • •
Magasabb órajel Több funkcionális egység (ILP) Vektor feldolgozás (DLP) Jobb/több támogató logika Több mag és/vagy több fonál (TLP)
Magasabb órajel • • • •
Egyre kevésbé segít, a memória továbbra is lassú Elképzelhetetlenül macerás egy ponton túl Mindenki megtorpant 4GHz-nél Sőt az új cél inkább a 3GHz
Több funkcionális egység • A Moore-törvény tranzisztor szinten segít • Korlátozhatja az órajelet, több támogató logikát igényel • Exponenciálisan nehezedik a validálása • A programjaink sajnos nem nagyon változnak, a compiler-ek sem tudnak segíteni, a függőségek szinte értelmetlenné teszik • Ma mindenki megállt a 4-6-utas szuperskalár magoknál • A támogató logika képességei korlátosak
Vektor feldolgozás • A Moore-törvény tranzisztor szinten segít • A compiler-ek szinte képtelenek a ma divatos programokból adat szintű párhuzamosságot kinyerni • Kézzel optimalizált függvénykönyvtárak • Már mindenki meglépte
Jobb/több támogató logika • Órajelet korlátozhat • Nehéz validálni • Triviális a gyorsítótárak növelése > Reguláris struktúra > Megeszi a Moore-törvény adta tranzisztorokat > Sajnos korántsem segít annyit, mint szeretnénk
Több mag és/vagy több fonál 1. • A Moore-törvény tranzisztor szinten segít • Rendkívül egyszerű validálni • Bizonyos korlátok mellett gyorsan megvalósítható (9-24 hónap) • A több mag a teljesítményt szinte linárisan, közel 45°-os meredekséggel növeli • Az interconnect válik a teljesítmény fundamentumává
Több mag és/vagy több fonál 2. • A többfonalas végrehajtásnak sok lehetséges verziója van > Szimultán többfonalas végrehajtás > SoE > Időben multiplexelt
• A választás nem egyszerű • Az implementáció sem • Sikeres esetben jelentős teljesítmény növelő tényező lehet
A kompomisszum (1) • Az alkalmazásokban elérhető párhuzamosság alkalmazás függő, de erősen korlátos • Az átlagos IPC CPU típustól függetlenül 0.3-1.5 közötti egy átlagos 3-6 utas szuperskalár processzorban Technical
Integer
Enterprise 15
48
52
Stall
Stall
Stall
Execute
Execute
Execute
51
49
85
A kompomisszum (2) • Sok, de egyszerű mag • Megfelelő, de nem feleslegesen nagy támogató logika • A várakozási idő részleges elrejtése többfonalas végrehajtással • Integrált kiegészítő komponensek
Az UltraSPARC T1 processzor • Az alapok > 4,6 vagy 8 mag > 90GB/sec nem blokkoló prioritizált crossbar > 3MB integrált másodszintű gyorsítótár > Négy (!) DDR2 memória kontroller > Egyetlen FP egység > Hypervisor > 1.0 és 1.2GHz órajel > 65-75W disszipáció
A magok • A magok > Rendkívül egyszerű 6 lépcsős csővezeték > Magonként 4 fonál (!!) kezelése > Minden órajelben az éppen elérhető és legrégebben futattot thread utasítása kerül a csővezetékbe > Moderált elsőszintű gyorsítótárak > Kriptográfiai gyorsítás: 2048b RSA, modulo arithmetika
A pipeline PipeStage 6 Writeback
WB Stage (Tag cmp, way select, Ld rtn, byp)
PipeStage 5 M/T
LSU (DTLB, D$, Dtag access, traps)
PipeStage 4 Execute
Execute Stage (ALU, VA Generation)
PipeStage 3 Decode
PipeStage 2 Switch PipeStage 1 Fetch
Thread 3 GPRs Thread 2 GPRs Thread 1 GPRs Thread 0 GPRs
Switch Stage (Tag Comp,Predecode)
Thread 0-PSTATE,PC,nPC, etc Thread 1-PSTATE,PC,nPC, etc
Fetch Stage (Icache access)
Thread 2-PSTATE,PC,nPC, etc Thread 3-PSTATE,PC,nPC, etc
RAS • Rendelkezésre állást növelő funkciók > L1 adat és utasítás gyorsítótár, valamint a TLB-k paritás védettek > A regiszterek SECDED ECC védettek > L2 gyorsítótár > Adat: SECDED > Tag: SEC > Státusz és directory: paritás > Hardver scrubber > DRAM > Quad hiba javítás, octális hiba detektálás > Hardver scrubber, chipkill támogatás, DRAM rekonfigurálhatóság és tartalékolás > JBUS paritás védett > Degradálható magszám és gyorsítótár
Az architektúra következményei • Single thread teljesítmény nem kiemelkedő • A T1 ott jó, ahol > Nagy párhuzamosságú feladatok vannak > Nagy fonálszámú alkalmazások vannak > Alapvetően I/O intenzívek a feladatok (diszk, hálózat) > Vagyis ott jó a teljesítmény, ahol az I/O műveletek átlapolhatóak más feladatokkal • A lebegőpontos feladatok automatikusan nem erre a chipre valók • A jó teljesítményhez adott esetben több memória kell, mint ami valójában az alkalmazásnak szükséges
Tipikus feladatok • Minden, ami hálózat és I/O orientált Web, portal és proxy server LDAP, Metadirectory, Identity Mailstore, MTA, SPAM és virus filtering Java alkalmazások, application server feladatok, különösen nagy threadszámmal > RDBMS, ERP > > > >
> Ha nem batch intenzív > Ha nem számításigényes tranzakciókat futtat
> Audio és video streaming > Sun Ray server
Tesztelt alkalmazások • • • • • • • • • • • •
Apache Bea WebLogic BLAST Lotus Domino MySQL Oracle (OLTP, DSS) PostgreSQL Siebel CRM SAP Enterprise Portal SAP ISA SAP mySAP SAP XI
• • • • • • • • • • • • •
Sophos PureMessage Sun Java Application Server, Sun Java Web Server Sun Java Directory Server Java kód Web szerverek Mail szerverek Apache Tomcat FASTA RealNetworks Helix SAP Sun Java Portal Server Sun Ray Server
UltraSPARC T1 rendszer architektúra DDR2
DDR2
DDR2
200/400MHz
200/400MHz
DDR2
200/400MHz
UltraSPARC T1
200/400MHz
2 SSI
10/100
Service Processor
FPGA
PowerPC
ALOM Boot Rom
JBUS
JBus 3.2 GB/S
Fire
X8 @2.5GHz
PCI-Express
X8 @2.5GHz
A szerverek – T2000 • • • • • • • •
2RU 32GB maximális memória Redundáns tápegységek 4db 2.5” SAS diszk (73GB), opcionális DVD 5db PCI slot (3xPCI-E, 2xPCI-X) 4db USB port 4db GE port ALOM
A szerverek – T1000 • • • • • • •
1RU 16GB maximális memória 1db 2.5” SAS diszk (73GB) 1db PCI-E slot 4db GE port ALOM Márciusi szállítás
A teljesítmény adatok Gép
CPU#
Mag#
Thread#
Órajel
Eredmény
Δ
SPECjbb2005 T2000 V890 V890
1 CPU 8 CPU 8 CPU
8 mag 16 mag 16 mag
32 thread 16 thread 16 thread
1.2GHz 1.5GHz 1.3GHz
63378 117986 75862
0.54 0.84
SPECweb2005 T2000 Xeon
1 CPU 2 CPU
8 mag 2 mag
32 thread 2 thread
1.2GHz 3.8GHz
14001 4348
3.22
8 mag 4 mag 7 x 8 mag 8 x 4 mag
32 thread 4 thread 7 x 32 thread 8 x 4 thread
1.2GHz 1.6GHz 1.2GHz 1.6GHz
615.64 471.28 4098.77 3734.68
SPECjAppServer2004 T2000 1 CPU Itanium2 9M 4 CPU T2000 cluster 7 x 1 CPU Itanium2 9M cluster 8 x 4 CPU
1.31 1.1
Lotus Notes Domino 7 T2000 V890
1 CPU 8 CPU
8 mag 16 mag
32 thread 16 thread
1.2GHz 1.5GHz
16061 21904
0.73
SAP 2-tier SD (5.0) T2000 V490
1 CPU 4 CPU
8 mag 8 mag
32 thread 8 thread
1.2GHz 1.5GHz
4780 5320
0.9
UltraSPARC-IV+ • A klasszikus alkalmazási területek számára • Módosítások > > > > > > >
Jelentősen javított architektúra Lényegesen jobb teljesítmény Magasabb órajel On-chip L2 gyorsítótár Off-chip L3 gyorsítótár Azonos fogyasztás Kisebb méret
UltraSPARC IV+ ●
External L3 Cache Data SRAM (32 MB total)
●
L3 Cache Tags 2MB L2 Cache Enhanced US III Pipeline (L1 Caches)
ARB
Enhanced US III Pipeline (L1 Caches) Mem Ctrl
to DRAM to FirePlane System Interconnect
●
● ●
2 UltraSPARC-III mag – Javított teljesítmény 2MB L2 Cache – On-chip tag és adat 32MB L3 Cache – On-chip tag – Exkluzív L2 (34 MBs összesen) Három szintű, fair arbitráció Optimalizált interfészek
Memória és rendszer interconnect Fireplane Interconnect
●
• Point-to-Point data network • Hierarchical address bus 4.8 GB/sec
256
Core 0
9.6 GB/s
L2 cache L3 tag 300 MHz
Core 1
Core 0
USIV+
Core 1
USIV+
2.4 GB/sec
2.4 GB/sec
Data Switch 4.8 GB/sec
DRAM
DRAM
DRAM
DRAM
●
4.8 GB/sec
DRAM • • •
256
●
SRAM (L3 Cache)
SRAM (L3 Cache)
9.6 GB/s 300 MHz L3 tag L2 cache
150 M snoops/sec
UltraSPARC III kompatibilis Az on-chip L2 cache tehermenetíti az L3 cache-t A nagy L3 cache csökkenti az interconnect terhelését
• • •
DRAM
Control Address Line Data
UltraSPARC-IV+ felhasználás • Kompatibilis az összes korábbi UltraSPARC-III és derivativ chip-pel • Keverhető (!) • Minden korábbi UltraSPARC-III-as gépben elérhető • 1.5GHz most • Hamarosan 1.8GHz
Szerverek
V490 4 CPU
V890 8 CPU
E2900 12 CPU
• Munkacsoportos szerverek • Azonos duál CPU/memória alaplapok
E4900 12 CPU
E6900 24 CPU
E20K/E25K 36/72 CPU
• Nagyvállalati szerverek • Azonos quad CPU/memória alaplapok • Dinamikus rekonfiguráció • Virtuális szerver támogatás
Piaci változások • Az x86-os világ új lehetőségeket teremtett a Sun Microsystems számára • Ráadásul az x86-os processzorok igen erősek • Egyértelműen nyitni lehet az x86 irányába • A legjobb x86-os chip az AMD Opteron > 64-bit > Kiváló interconnect > A érezhetően jobb teljesítmény
Az Opteron-os világ • Saját tervezésű gépek > Szerverek 1-8 CPU-ig, hamarosan penge formában is > Munkaállomások 1-2 CPU-val
• Széles és komoly termékportfolió (még bővülő állapotban) • Nagyon jó teljesítmény • Kiváló menedzselhetőség
Sun Fire X4100 • • • • • • • •
1RU Egy vagy két duál magos Opteron 16GB memória 2 SAS diszk (73GB) 4 GE port 2 PCI-X slot Szerviz processzor Redundáns hűtés és tápellátás
Sun Fire X4200 • • • • • • • •
2RU Egy vagy két duál magos Opteron 16GB memória 4 SAS diszk (73GB) 4 GE port 5 PCI-X slot Szerviz processzor Redundáns hűtés és tápellátás
Alkalmazások és CPU-k I. Nagy thread szám
Háttértár intenzív
Data Warehousing Web Proxy Caching Meteorology/Climate Simulation Web Serving Data Analysis Adat Nuclear Simulation/Weapons Modeling Streaming Media OLTP Database Security File Server IMS transport Directory Seismic Analysis, SAP R3 Reservoir Modeling SGSN Thermodynamics Application Media gateway Hálózati Batch Sávszélesség J2EE Application Servers intenzív Hálózati
HPC
EAI Servers
Structural Analysis Electronic Design Simulation Compute Grid Workgroup Application Development Financial Risk/Portfolio Analysis Monte Carlo Simulation
Számítási Commercial Technical
Alacsony thread szám
Genomics, Cheminformatics
Alkalmazások és CPU-k II. Nagy thread szám
Web Adat
Háttértár intenzív
Rock Niagara
Batch
Application Hálózati
HPC
Számítási
UltraSPARC-IV+/Opteron Alacsony thread szám
Hálózati Sávszélesség intenzív
Solaris 10
Solaris 10 • Minden idők egyik legkomplexebb operációs rendszere és projektje a Sun-nál • Minden idők egyik legjobb Unix operációs rendszere • Mintegy 700+ alprojekt • Ingyenes!!! (Nincs támogatás, de a biztonsági hibajavítások elérhetőek) • Nyílt forráskódú: OpenSolaris
Izgalmas nagyobb projektek • • • • • • • • • •
JDS 3 grafikus felület 64-bites AMD64/EM64T kernel Linux emulációs alrendszer – Brand-ek Új TCP/IP stack – FireEngine DTrace Integrált ipfilter BART – integrált baselining Kriptográfiai alrendszer Biztonsági kiegészítések Service Management Framework
ZFS • • • • • • • • • • • •
Még fejlesztés alatt, megjelenés a Solaris 10 U2-ben Integrált fájlrendszer és kötetkezelő Tranzakcionális Teljesen integritás védett 128-bites (256 quadrillió zettaB) Dinamikus metaadatok Beépített tömörítés, titkosítás (fejlesztés alatt) Diszk scrubbing Replikáció Minden művelet copy-on-write Gyors snapshot, verziózás Big-endian/little-endian konverzió
COW 1. Az eredeti
2. Adat blokk COW
3. Indirekt blokk COW
4. Überblock módosítás (atomi)
Hibajavítás, kontrollösszegek • Mágneses gyengülés • Fantom írás • Elpozicionált irás vagy olvasás • DMA paritás hibák • Eszközmeghajtó hibák • Véletlen felülírás
Address Address Checksum Checksum Address Address Checksum Checksum
Data
Data
Önjavítás Alkalmazás
Alkalmazás
Alkalmazás
ZFS tükör
ZFS tükör
ZFS tükör
Snapshot
Snapshot überblokk
Aktuális überblokk
Zónák • Egyetlen kernel megosztása több virtualizált applikációs konténer között • Processz “bedobozolás” > erőforrás és biztonsági izoláció > láthatóság és kontrol (globális, nem globális)
• Virtualizált hardver (!), de nem virtuális gép • Kintről önálló operációs rendszernek tűnik
Zónák – blokk diagram
Zónák – erőforrás menedzsment • A Solaris 9 továbbfejlesztett erőforrás menedzsmentje • Erőforrás limitek definiálhatók a zónákhoz és dinamikusan változtathatóak • Erőforrás pool-ok készíthetőek > Egy pool-ra több zóna is multiplexelhető • A projekt adatbázis virtualizált, zónánként • Minden zóna önálló fizikai memória kontrollal rendelkezik • Két lépcsős Fair Share Scheduler
Zónák – erőforrás menedzsment
RBAC • Solaris 8 óta az operációs rendszer része • A root feladatai szerepekbe szervezhetőek • A szerepek csak felvehetőek, de nem lehet beléjük lépni • A szerepek 4 fájlban definiálódnak és parancs szinten konfigurálhatóak • A Solaris 10-től privilégium kiegészítést is kaptak
Privilégiumok - alapgondolat • Least privilege • A mindenható root jogainak szétszedése apró darabokra > Egyenként elvenni vagy odaadni
• Sok minden fut root-ként, aminek nem kellene > Pl. alacsony portokra bind-oló web szerver
Megvalósítás • A kernel nem UID==0-ra vizsgál, hanem az éppen szükséges privilege-re • 47 egyedileg ki-bekapcsolható privilege • Bővíthető • Kompatibilitás: root minden privilege-vel rendelkezik • Privilege-aware programozás