Mint tudjuk az Intel szerverekbe szánt új processzora - az Intel Xeon MP - több technológiai újítást is hoz(ott). Ezek közül az egyik Intel NetBurst mikroarchitektúra, a másik pedig a Hyper-Threading technológia. Az LKML-en (Linux Kernel Mailing List) többen is kérdezték, hogy mit jelent ez, hogy lehet ezt használni, mire jó, és hogy lehet megnézni, hogy egy processzor támogatja-e a Hyper-Threading technológiát? Hát lássuk.
Az első megjelenő Intel P4 processzorok nem támogatták az SMP-t, azaz a multi-processzorozhatóságot, vagyis nem tudtott két P4 processzor egymással együtt dolgozni egy alaplapban. Az új P4 (Xeon) processzorok már támogatják ezt a lehetőséget, így egyre több szerver-gyártó épít ezekre a processzorokra szervert. A Hyper-Threading technológia egy alapvetően új elgondolás az Intel részéről.
A Hyper-Threading technológia jelenleg már az Intel teljes Intel Xeon processzorcsaládjába beépítésre került. Ez a műszaki újdonság lehetővé teszi, hogy az operációs rendszer egyetlen fizikai processzort két logikai processzorként lásson, amelynek eredményeképpen lényegesen megnövelhető a szerver reakciókészsége, a tranzakciók sebessége és a hasznos munka teljesítménye.
Hogyan lehet ezt munkába fogni egy Linux rendszeren?Hogyan lehet ellenőrizni, hogy egy processzor rendelkezik-e a HT tulajdonságokkal?
Linux alatt kérjünk egy processzor információt:
#cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 1
model name : Intel(R) Pentium(R) 4 CPU 1.70GHz
stepping : 2
cpu MHz : 1694.907
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 3381.65
Ha látjuk a flagek között a ht jelzést, akkor biztos, hogy a processzor HT technológiával rendelkezik.
Mit is kaphatunk a HT-től? Az operációs rendszer egy processzor helyett kettőt lát. Azaz, egy processzorra tudunk SMP kernelt fordítani. A HT technológia lehetővé teszi, hogy a többszálú alkalmazások a szálakat párhuzamosan hajthassák végre, azaz párhuzamosan futhassanak minden egyes processzoron. A HT-vel ellátott processzorok tartalmaznak egy ún. thread-level-parallelism (TLP) funkciót, és ez teszi lehetővé a párhuzamos végrehajtást. A mérések szerint a HT-képes processzorokon futó, ezt kihasználni tudó alkalmazások akát 40%-kal gyorsabbak is lehetnek így.
Hogyan is tudjuk ezt kihasználni a Linux rendszerünkben?
Egyszerűen. Tegyük fel, hogy van egy P4 Xeon processzorunk HT technológiával. Hogy a szimulációt bekapcsolhassuk, egy sima SMP támogatással rendelkező kernelt kell fordítanunk:
cd /usr/src/linux
make menuconfig
Processor type and features --->
[*] Symmetric multi-processing support
Ezen kívül kapcsoljuk még be az ACPI rendszer támogatást:
General setup --->
[*] ACPI support
Azt tudnunk kell, hogy a technológia kihasználásához a BIOS-nak támogatnia kell ezt a funkciót.
Mentsük el a kernel konfigurációt, majd szokásos módon fordítsük le a kernelt.
Rebootoljunk.
Ha a reboot után a rendszerünk két processzort mutat, akkor a processzorunk Hyper-Threading-képes.
Jelenleg tesztelés alatt van nálam egy szerver, amely 2 darab 1.8GHz-es Xeon processzorral rendelkezik (ez ugye 4 processzornak látszik majd). A processzorok HT-képesek, tervezek egy összehasonlító tesztet. Mondjuk sima kernellel, és mondjuk SMP kernellel. Kíváncsi vagyok, az eredményre.