___H___y___p___e___r___-___T___h___r___e___a___d___i___n___g ___B___i___r___ ___E___l___i___n___ ___N___e___s___i___ ___V___a___r İ___k___i___ ___E___l___i___n___ ___S___e___s___i___ ___V___a___r İşlemcilerin yazılımlar ve işletim sistemi tarafından daha iyi kullanılmasını isteyen Intel, Hyper-Threading teknolojisini geliştirdi. Bu yazıda Hyper-Threading mantığını ve ne derecede bir performans artışı sağladığını okuyabilirsiniz. GÜNCEL » KAPAK » DONANIM » YAZILIM» HI-TECH » PRATİK » INTERNET 43 CHIP | OCAK 2003 nan iki adet mantıksal işlemci tarafından ortaklaşa kullanılıyor. Saat hızı her zaman her şey değildir İşlemcilerin performansları, değişen frekans değerleri ile orantılı olarak artar. Fakat başka kriterler de vardır. Örneğin 20 tane işhattına (pipeline) sahip olan Pentium 4 işlemcisi, her biri için 10 GHz’lik bir frekans değerini destekleyebilir. Paralel çalışma sayesinde Pentium 4 işlemcisi, bir çok işlemi kullandığı bu çok miktardaki pipeline ile gerçekleştiriyor. İşlem gücü yeterli gelmiyorsa, çoklu işlemcili sistemler devreye girer. Bu çözüm özellikle server ve diğer üst uç amaçlı sistemlerde kabul görüyor. Uygun şartlar yaratılırsa oldukça yüksek bir performans sağlayan bu tür sistemlerin kendilerine göre dezavantajları da var. En önemli dezavantaj tabii ki toplam sahip olma maliyetinin yüksek oluşu. Zira böyle sistemlerde kullanılan anakartlar çok sayıda üretilmediği için pahalıdır. Doğal olarak CPU’lar da normal işlemcilere göre fiyat açısından pek de cazip olmayan bir tablo çizer. Bu kervana bellek modüllerini ve SCSI gibi diğer aygıtları da eklemek mümkün. Teoride ve pratikte çoklu işlemcili sistemler Öte yandan çoklu işlemcili sistemlerde de işlemci kaynaklarının tam anlamıyla kullanılmadığını söyleyebiliriz.AMD’ye nazaran çok daha sofistike bir üretici olan Intel’in açıklaması, Netburst mimarisine sahip işlemcilerden Pentium 4 ve Xeon’larda, genel bir uygulamada donanım kaynaklarının sadece yüzde 35’inin kullanıldığı yönünde. Bu durum bir yana, çok işlemcili sistemlerin de yazılımları çalıştırırken her zaman beklenilen hıza ulaşamadıklarını söylemeliyiz. Bunun nedeni bazı yazılımlardaki komutların paralel çalışmaya uygun olmaması. Bu da güçlü bir sisteme sahip olmanıza rağmen o gücü kullanamamanız anlamına geliyor. Modern işletim sistemleri bu tür bir iş bölümüne çok önceden hazır aslında... Eksik olan, pek çok yazılımın bu tür bir özelliği desteklememesi. Aslına bakarsanız çok işlemcili sistemlerde kullanılan yazılımların çoğu, daha doğrusu çok işlemcili bir sistem gerektiren yazılımların çoğu, birden fazla CPU’yu kullanacak şekilde tasarlanmıştır. Hatta aynı anakart üzerindeki ikinci bir işlemciyi kullanmak bir yana, ağ donanımı üzerinden başka bilgisayarların işlem gücünü kullanan yazılımlar da mevcut. Bu konuda verilebilecek en iyi örnekler, 3D render yazılımları ve SETI projesi olabilir. Multi-Thread kavramı nedir ve nasıl çalışır? Hyper-Threading kavramını anlamak için kuşkusuz işin temeline, yani multithread konusuna inmek gerek. İşletim sistemi ve ilgili yazılım arasındaki ilişki sonucunda gerekli işlem gücü, birden çok parçaya, yani thread’lere ayrılıyor. Fakat daha önce söylediğimiz gibi gerek işletim sisteminin gerekse yazılımın buna uygun bir yapıda olması şart. Talep edilen işlemci gücü böylece küçük dilimlere ayrılarak CPU kaynaklarının daha verimli kullanılması sağlanabiliyor. Multi-thread destekli yazılımlar birden çok çalışma yüzeyine sahiptirler. Yani bir yüzeye birden çok thread’i alırlar ve toplu halde CPU içindeki kontrol fonksiyonuna yollarlar. Fakat burada gerçekleşen işlemlerin bağımsız olabilmesi çok önemli. Çünkü özellikle server sistemlerde sunuculardan birçok işlem isteği gelir ve bir karmaşa ortamı oluşmaması için bağımsız uygulamaların paralel olarak hızlı ve sağlıklı bir şekilde çalıştırılması şarttır. Durum böyle olunca, birçok yazılım dili Thread konseptini benimsediler ve uygulamaya koydular. Hyper-Threading : Güçlü paralel çalışma Intel’in dünya çapında yankı uyandıran Intel Developer Forum’unda Multi- Threading fonksiyonun geliştirilmiş versiyonu,Hyper-Threading olarak lanse edildi. Bu teknolojik değişim Jackson Multı-Threadıng: Multi-Threading destekli pek çok yazılım halen mevcut. Masaüstündeki Kral: Masaüstü sistemlerin şu an için gediklisi olan P4, Hyper- Threading ile daha da güçlü. 44 GÜNCEL » KAPAK » DONANIM » YAZILIM» HI-TECH » PRATİK » INTERNET CHIP | OCAK 2003 teknolojisi ya da Simultaneous Multi- Threading (SMT) olarak da adlandırılıyor. Burada mantık, thread değişiminin sadece işletim sistemi tarafından yapılmaması ve dolayısıyla daha yüksek bir stabilite ve performans elde edilmesi. Yani istenen çoklu işlemcilerde, sistemlerde olduğu gibi birden çok işhattının birden çok uygulamayı aynı anda kullanmasını sağlamak. Kısaca burada işlemler, teker teker değil de paralel veri kanallarından aynı anda işleniyor. Hyper- Threading’de işletim sistemi ve yazılımların tek bir fiziksel işlemciyi iki mantıksal işlemci olarak algılaması sağlanıyor. Dolayısıyla sürekli olarak en az iki adet thread görünüyor ve işlemlere yukarıda anlattığımız şekilde devam ediliyor. Hyper-Threading destekli işlemcilerin çalışmasında ilk olarak, işlemci iki adet mantıksal işlemci olarak tanımlanıyor ve hazır hale getiriliyor. İşletim sistemi bir numaralı mantıksal işlemcide bir thread başlatıyor ve ardından işlemler yapılmaya başlanıyor. Sonra iki numaralı mantıksal işlemcide ikinci bir thread başlatılıyor.Var olan iki thread, sistem kaynaklarını paylaşmaya başlıyor. Kaynakların paylaşımında paralel kullanmaya müsait olan donanım birimleri de dikkate alınıyor. Intel’den yeni bir işlemci: Pentium 4 3.06GHz Intel, Hyper-Threading teknolojisine sahipti. Ama bu teknolojiyi Prescott işlemcisine dahil etmek için uzun süre bekledi. Intel bu teknolojiye o kadar çok güveniyor ki, northwood çekirdekli işlemcisine de ileride bu teknolojiyi entegre edeceği tahmin ediliyordu zaten. Kısaca önceleri Prestonia çekirdekli yani Xeon işlemcilere dahil edilen bu teknoloji, şimdi desktop sistemlerde de görülecek. Desktop sistemlere bu teknolojiyi ilk olarak dahil edecek işlemci, 3.06 MHz hızında çalışan Intel Pentium 4 işlemcisi. Hyper-thread özellikli P4’ün alameti farikası olarak Pentium 4 logosunun üzerinde H ve T harşeri yer alıyor. Intel bu yeni işlemcisi ile AMD’yi oldukça zor durumda bırakacak gibi. Nedeni, GHz yarışını önde sürdürmesinin yanı sıra AMD’nin yaptığı gibi işlemcilere ek özellikler kazandırmasında da oldukça iddialı olması. Bu yeni işlemci klasik Northwood’da olduğu gibi 133 MHz’lik (533 MHz Quad-pumped) bir saat hızı ile çalışıyor. 23 değerindeki çarpan ile 3.066 MHz’de çalıştırılan işlemci, 1.55 voltluk bir gerilim değerinin yanı sıra 81.8 watt’lık bir güç harcamakta. Dış görünüş olarak herhangi bir değişiklik yok. Nedeni bu yeni işlemcinin eski işlemcilerle aynı çekirdeğe sahip olması. Ayrıca transistor sayısında da bir değişiklik görünmüyor. Yani yapılan tüm değişiklik fiziksel değil de fonksiyonel. İşlemcinin soğutmasında ise fiziksel bir değişiklik yapıldı. Intel tasarladığı orijinal fan yapısını değiştirdi. Bu işlemci için oldukça güçlü bir soğutma sistemi kullanılıyor. Ayrıca soğutma ızgaralarının kenarları yuvarlatılmış. Bunun sebebi soğutucu içinde bir sirkülasyon yaratarak soğutmayı daha efektif hale getirmek. Anakart chipsetlerinde Hyper-Threading desteği Intel bu yeni teknolojisini destekleyen dört adet chipsetini çoktan piyasaya sürdü. Bunlardan ilki i845PE. MCH 82845PE memory hub ve ICH4 destekleyen bu yeni chipset i845E’ye çok benziyor, fakat PC2100 DDR modüllerine ek olarak PC2700 DDR modüllerini de destekliyor. İkinci chipset olan i845GE, i845PE ile aynı özelliklere sahip. Bu chipseti farklı kılan tek özellik, chipsete Nvidia GeForce2-MX200 ayarında bir grafik işlemcisinin entegre edilmesi. Bir diğer Hyper-Threading destekli chipset olan i845GV de entegre grafik işlemcisine sahip. Fakat bu chipsete sahip anakartlara bir AGP ekran kartı takılamıyor. Gerçi AGP portu bu tür anakartlarda mevut, ama bu porta sadece televizyon ve dijital monitörlerle bağlantıyı sağlayan AGP Dijital Display kartı takılabiliyor. Profesyonel kullanıcılar için en uygun chipset kuşkusuz i850E. PC 1066 RDRAM modüllerini destekleyen bu chipset, Hyper-Threading desteği ve genel olarak yüksek performansın iyi bir bileşimi. Şu an için 850E chipseti performans arenasında rakipsiz. Sadece Intel değil, diğer üreticiler de hazır gibi Minareyi çalan kılıfını da hazırlamış oluyor.Yani Hyper-Threading’in gelmesi ile birlikte bu özelliğin kullanılmasını sağlayan yeni chipsetler de piyasaya sürüldü. Böylece Intel tarafından Pentium 4 işlemciler için desteklenen chipsetlerin sayısı 11’e çıkmış oluyor. Hepsi bir yana, Hyper-Threading teknolojisinde geriye dönük bir uyum göze çarpıyor. Yani günümüzün Pentium 4 işlemcilerini çalıştıran anakartlarda bir değişikliğe gerek yok. IDF’te katıldığımız Hyper-Threading seminerinde de gördüğümüz gibi bu teknolojinin desteklenmesi için 533 k Workstation Pazarındaki Lider: Intel’in Itanium 2 Workstation sistemlerde ağırlıklı olarak kullanılıyor fakat yazık ki bu işlemcide Hyper-Threading desteği yok. Ne Sihirdir, Ne Keramet: WCPUID, Hyper-Threading özellikli işlemcimizi iki işlemci olarak değerlendirdi. Hyper-Threading Testi 46 Hyper-Threading Testi GÜNCEL » KAPAK » DONANIM » YAZILIM» HI-TECH » PRATİK » INTERNET CHIP | OCAK 2003 FSB destekli bir anakarta sahip olmanız yeterli. Tabii kullanacağınız anakartın Hyper-Threading fonksiyonuna sahip olabilmesi için bir BIOS update yapmanız şartı ile. Bu bağlamda anakartınız 533 FSB destekliyse anakart üreticinizin web sitesine yakın zamanlarda uğrayıp Hyper-Threading desteği sağlayan bir BIOS güncellemesi olup olmadığını kontrol etmenizde fayda var. Intel dışındaki chipset üreticilerine baktığımızda SiS’in Hyper-Threading destekli 5 adet chipsetini görüyoruz. VIA ise bu konudaki çalışmalarını sürdürüyor. İki işlemcili sistemlerin çalışma mantığı İki işlemcili sistemlerde iki tane fiziksel işlemci paralel olarak çalışırlar ve sistemin donanım bileşenlerini bölüşürler. Pentium III ve Athlon MP işlemcilerle uygun bir maliyetle bu tarz bir sistem oluşturulabilir. Fakat P4’ler ve Athlon’lar çok işlemcili sistemlerde çalışabilecek işlemciler değil. Intel Xeon işlemciler, aslında bu tür sistemler için çok uygun, ama fiyatlarının çok yüksek olması, bu işlemcilerin sadece geniş bütçeli üst uç profesyoneller için bir tercih sebebi olmasının en büyük sebebi. İki işlemcili sistemlerin avantajı teorik olarak sistemin işlem kapasitesini ikiye katlamak.Yalnız buradaki sorun, işlemcilerin hiçbir zaman tam anlamıyla tek bir işlemciye nazaran iki kat kapasitede çalışmaması. Pratikte böyle bir kapasiteye ulaşabilmek için uygulamanın tam anlamıyla işlemcilere bölünebilmesi ve orada da paralel çalışabilmesi gerekir. Bu da çoğu kez yazılımın veya işletim sisteminin pratikteki eksiklikleri yüzünden mümkün olamıyor. Tek işlemcili sistemlerle iki işlemcili sistemleri örneklemek gerekirse: İki kişi bir işi tek kişiye nazaran çok daha kısa bir sürede yapabilir.Ama o iş bir kişiye bağlı ise ikinci kişi ancak birinci kişi yorulduğunda devreye girebilir. Bu da istenen performansı sağlamaz. Oysa her ikisi farklı işler yapsalar, çok daha kısa sürede yapmaları gereken işleri bitirebilirler. İşte bu tez, PC dünyasında da geçerli. Çoğumuz ofis programlarıyla çalışırken mp3 dinleriz. Ya da internetten bir dosya çekerken film izleriz. Bu tür bir uygulamada çoklu işlemcili sistemler yüksek bir performans sağlar. Tek işlemcili sistemlerle de bu söylediklerimizi aynı anda yapabilirsiniz, ama bunlar hiçbir zaman paralel olmaz. Yani tek işlemcili sistem bir miktar ofis yazılımı verisini işler, ardından mp3 verisine geçer. Sonra da yine ofis yazılımı işlemleri ile ilgilenir. Günümüz uygulamaları ve Hyper-Threading Hyper-Threading uzun zamandır var. Bu özellik ilk olarak Intel Xeon işlemcili server sistemlerde kullanılmaya başlanmıştı. Burada oldukça büyük bir başarı yakalayan Intel, bu teknolojisini desktop ve workstation sistemlerine de Pentium 4 3.06 GHz işlemcisiyle entegre etti. Intel’in dediğine göre bu teknolojinin kullanımı ile performans artışı yüzde 30 kadar olabilir.Ama bu söylenenlere dikkatli yaklaşmak gerek. Sonuçta böyle bir performans artışından söz edebilmek için yazılım cephesini de dikkate almak gerek. Yani sonuçta yazılımın türüne ve yapısına göre hiçbir artış gözlenmeyebilir de. Fakat tam tersi çok büyük bir artış da ortaya çıkabilir. Hyper- Threading’in avantajı, çoklu işlemcili sistemlere göre çok daha düşük bir maliyete sahip olması. Tek işlemcili sistemlere göre değişken bir performans artışı gösteren bu teknoloji, doğal olarak iki fiziksel işlemci bulunduran sistemlerle yarışabilecek kadar güçlü değil. Bu teknolojiyi WindowsXP ve Unix bazlı sistemler destekliyorlar. Ama multi- threading destekleyen uygulamalar, Intel’in bu yeni teknolojisini destekleyecekler. Ayrıca single-threading uygulamalar için Intel bir code dptimizer yardımı ile bu uygulamaları multi-threading destekli hale getirmeye çalışacak. Neticede desktop, workstation ve server Yeni Dönem: Hyper-Threading destekli 3.06 GHz P4’lerin üretimine ağırlık verilmiş durumda. CPU’larda Yeni Dönem: Intel üst uç işlemcilerinde kullanmış olduğu Hyper-Threading özelliğini 3.06 GHz modeliyle masaüstü sistemlere de taşıyarak yeni bir dönemi başlattı. Chipset Önemlidir: RDRAM destekli güçlü 850E chipseti Hyper-Threading için iyi bir altyapı sağlıyor. k 48 Hyper-Threading Testi GÜNCEL » KAPAK » DONANIM » YAZILIM» HI-TECH » PRATİK » INTERNET CHIP | OCAK 2003 sistemler gün geçtikçe daha büyük bir performans artışına ihtiyaç duyuyorlar. Intel, Hyper-Threading teknolojisi ile hep ihtiyaç duyduğumuz ve belki de çok daha önce yapılması gereken bir işi yaptı ve işlemcilerin tam performans çalışmasını sağladı. Hyper-Threading’i kullanmak: Dikkat edilmesi gerekenler Hyper-Threading teknolojisi maalesef her P4 işlemcili sistemde kullanılamaz. Anakartın (hem BIOS hem de chipset bazında) bu teknolojiyi desteklemesi şart. i845G, i845E, i845GE, i845GV, i845PE ve i850E chipsetli anakartlar, Hyper-Threading teknolojisini destekliyorlar. Tabii başka chipset üreticileri de bu yeni teknolojiyi destekleyecekler. Anakartın Hyper-Threading desteğinin yanı sıra bazı özellikleri daha desteklemesi gerekiyor. Örneğin gerilim dağılımı ile soğutmanın iyi yapılması, bu yeni işlemci için oldukça dikkat edilmesi gereken bir özellik. Tabii bu teknolojiyi BIOS’dan ayarlayabilmek de çok önemli. En basitinden bu teknolojinin BIOS’da aktif olması gerekir.Yalnız, 533 FSB destekleyen P4 uyumlu anakarta sahip olan kullanıcılar endişelenmesinler. Çünkü ilerideki günlerde bu kullanıcılar için yukarda anlattığımız özelliklere sahip olan bir BIOS güncellemesi yolda. Dikkat edilmesi gereken başka bir nokta ise işletim sisteminin bu teknolojiyi desteklemesi. Yapılan açıklamalara göre Windows XP Home, Windows XP Professional ve Linux Kernel Version 2.4.18 ve üstü işletim sistemlerde bir desteğinin var olduğu.Windows 2000 çok işlemcili sistemlerde çalışabilmesine karşın, Intel tarafından desteklendiğine dair bir haber verilmedi. Test sonuçları: Mucize yok ama ümit var Test sonuçlarından kolayca görebileceğiniz gibi, uygulama ağırlıklı benchmark yazılımlarının çoğunda Hyper- Threading çok büyük bir fark ortaya koymuyor. Bu yazılımların günümüz uygulamalarını kullanması tabii ki işin yazılım kısmında önemli bir dezavantaj yaratıyor. Çünkü günümüz masaüstü sistemlerinde kullanılan yazılımlar, henüz Hyper-Threading’in gelişmiş yapısını kullanamıyor. İşin ilginç yanı multi- threading destekli bir 3D yazılımı olan Lightwave, işletim sistemini ve pek çok Benchmark yazılımını kendini 2 işlemci olarak göstererek kandırmayı başaran Hyper-Threading özelliğini görmezlikten geldi ve her multi-thread destekli yazılımın direkt olarak hyper-thread destekli olamayacağını kanıtladı. Lightwave’in Render seçeneklerindeki multi-threading menüsü sayesinde render işlemini maksimum 8 thread’e kadar bölebiliyoruz. Öte yandan gerçekleştirdiğimiz testlerde gördük ki Lightwave’in ağ ortamında gayet başarılı çalışan multi-thread özelliği, Hyper-Threading özellikli tek bir işlemciye avantaj sağlayamadı. Performans artışı sadece bazı şartlar altında mümkün Peki, günümüz yazılımlarının bazılarının Multi-Thread destekli olmasına rağmen,Hyper-Threading ciddi bir fark yaratmayabiliyorsa, bu özelliğin bize şu an için sağlayacağı bir hız artışı olmayacak mı? Cevap: Olacak! Yine test sonuçlarımızdan kolayca görebileceğiniz gibi aynı anda birden fazla yazılım çalıştırıldığında, işletim sistemi yardıma koşuyor ve yazılımlar teker teker Hyper-Threading avantajını kullanamıyorsa da beraber çalışırken, elde edilen toplam CPU gücü, Hyper-Threading devre dışı bırakılan sistemdekine nazaran belirli bir miktar yüksek oluyor. Burada, daha önce de belirttiğimiz gibi en önemli rol, işletim sistemine düşüyor. Zira bu aynı anda çalışan yazılımlara ait thread’leri ayrı ayrı sınışandırarak işlemci içindeki 2 mantıksal CPU’nun mümkün olan en yüksek hızda çalışmasını işletim sistemi sağlıyor. Bu bağlamda artık MPEG2 encoding ya da render gibi yüksek CPU gücü isteyen yazılımlarla çalışırken sisteminizi kendi haline bırakmak zorunda kalmayacaksınız. Zira işletim sistemi bu uygulamalara ait komutları işlemciye yollarken, yine aynı işlemci içinde size işletim sistemi içinde çalışmanıza yetecek kadar bir kaynağı sürekli olarak ayırabilecek. Aslına bakarsanız test yazılımları arasında az da olsa Hyper-Threading’in ön plana çıktığı SYSMark 2002 de durumu özetleyen bir başka kriter. Zira bu test yazılımı, toplam performans puanını hesaplarken, test sırasında çoğunlukla aynı anda 2 hatta 3 yazılım çalıştırıyor. Böylece farklı ve çok sayıda thread işletim sistemi tarafından Hyper-Threading üzerinden iki mantıksal CPU’ya paylaştırılabiliyor. ___H___Y___P___E___R___-___T___H___R___E___A___D___I___N___G___ ___P___R___A___Tİ___K___T___E___ ___N___E___ ___K___A___D___A___R___ ___H___I___Z___ ___S___A/___L___I___Y___O___R___? Hyper-Threading aktif Hyper-Threading devre dışı SYSMark2002 I.C.C. 421 409 SYSMark2002 O.P. 207 199 3D Mark 2001 SE 7269 7232 PC Mark 2002 7550 7490 Quake 3 Arena 1.16 (kare/sn) 334 338 Lightwave 7.5 (sn) 48 48.5 Winace 2.2 (sn) 90 112 Flask 0.7.8 (sn) 90 108 Sisoft Sandra 2003 D.Stone 9389 7909 Sisoft Sandra 2003 W.Stone FPU/SSE2 2638/5698 1760/4014 SiSoft Sandra 2003 CPU M.M Bench Integer/Floating 14112/22496 12185/15499 Sisoft Sandra Mem. B.Width Bench. Int./ Floating 3366/3358 3316/3318 Winace 2.2 +Flask 0.7.8 153/151 126/202 Winace2.2+3DMark2002 Demo 114 122 Winace2.2+Lightwave 7.5 125/65 140/67 Flask 0.7.8+Lightwave 7.5 133/103 148+157 SpecViewperf 7 DRV-08 46.51 46.9 SpecViewperf 7 DX-07 30.36 30.39 SpecViewperf 7 UGS-01 5.33 5.33 Yüksek Performans İhtiyacı: Flask MPEG gibi programlar CPU kaynaklarını yoğun bir şekilde kullanır. k * Süre değerlerine ait rakamların küçük, diğer rakamların büyük olması daha iyi bir performansı gösterir. 50 Hyper-Threading Testi GÜNCEL » KAPAK » DONANIM » YAZILIM» HI-TECH » PRATİK » INTERNET CHIP | OCAK 2003