processor etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
processor etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

23.9.10

HyperThreading(HT) Teknolojisi

Bugün Paralel Programlama'nın ilk dersini yaptık. Multi core teknolojisinin ısındırma turlarını yapan HyperThreading teknolojisinden de bahsedildi. Ben de HT ile ilgili; geçen sene(Ekim 2009) yaptığım bir araştırmayı paylaşmak istedim. Makaleyi geçen sene yazmış olmam lütfen konunun güncel olmadığı şeklinde algılanmasın, HT konusunda geçen bir yıllık süreç içerisinde fazla da bir değişiklik olmamıştır. Umarım faydalı olur...

Bu araştırmada Intel firmasının geliştirdiği ve bazı ürünlerinde kullandığı Hyper threading teknolojisi (HT) araştırılmıştır. Araştırma ile Hyper threading teknolojisine neden ihtiyaç duyuldu, bu teknoloji nasıl çalışır, Intel hangi ürünlerinde bu teknolojiyi kullandı, ne derecede bir performans artışı sağlanıyor, performansın düştüğü uygulamalar oluyor mu, performansa etki eden faktörler neler, hangi işletim sistemleriyle uyumlu çalışıyor, enerji tüketimi konusunda nasıl gibi sorular cevap arandı. Özellikle çift çekirdekli işlemciler üretilmeden önce bunların bir simülasyonu niteliğindeki Hyper threading teknolojisine sahip tek çekirdekli işlemciler işlemcilerin gelişiminde önemli bir dönüm noktasıdır. Çünkü burada gelişim transistör sayısını ya da frekansı arttırarak değil, daha zekice bir çalışma prensibini ortaya koyarak olmuştur. Ancak HT şöyle bir dezavantaja sahip, hiçbir zaman simüle ettiği sistemin performansına ulaşamıyor. Ayrıca bazı uygulamalarda performans kaybına neden olabiliyor. Intel her ürününde HT kullanmıyor, bunun nedeni avantajlarının yanında dezavantajlarının da olması. Teknoloji ilk çıktığında bu teknolojiyi desteklemeyen işletim sistemleri piyasada hatırı sayılır ölçüde mevcuttu ancak günümüzde işletim sistemleri teknolojiyi desteklemekte. HT teknoloji performans artışı sağlayıp aynı işi daha az zamanda yaparak enerji tasarrufu sağlıyormuş gibi görünse de HT’siz çok çekirdekli işlemcilerle daha az enerji harcanarak aynı işlemler yapılabilir, bu da teknolojinin negatif taraflarından.

  
Hyper Threading Teknolojisine Neden İhtiyaç Duyuldu

Günümüzde bilgisayar ve yazılım teknolojileri baş döndürücü bir hızla ilerliyor. Her geçen gün internetten daha fazla veri alışverişinde bulunuyoruz, daha fazla medya uygulamasını bilgisayarlarımızda çalıştırıyoruz. Şirketlerde her geçen gün daha fazla işlem bilgisayarlarca yapılıyor, daha büyük veri tabanları kullanılıyor. Özellikle e-devlet uygulamalarının tüm dünyada tam manasıyla hayata geçirilmesine kadar geçecek sürede bu gelişimin bu şekilde sürüp gideceğini tahmin etmek pek de zor değil. Tüm bu baş döndürücü gelişme bilgisayar dünyasındaki ilerlemeyle gerçekleşmektedir. Bilgisayar dünyasını iki kıtaya ayıracak olursak biri yazılım kıtası, diğeri donanım kıtasıdır. Yazılım kıtasında teknolojik ilerlemeler donanım kıtasına oranla daha yavaş gerçekleşmektedir. Donanım kıtası ise Moore Kanunu’nun dışına fazla çıkmadan istikrarlı gelişmesini sürdürmekte. ( Moore Yasası, Intel şirketinin kurucularından Gordon Moore'un 19 Nisan 1965 yılında Electronics Magazine dergisinde yayınlanan makalesi ile teknoloji tarihine kendi adıyla geçen yasadır. Yasaya göre her 18 ayda bir tümleşik devre üzerine yerleştirilebilecek bileşen sayısının iki katına çıkacağını, bunun bilgisayarların işlem kapasitelerinde büyük artışlar yaratacağını, üretim maliyetlerinin ise aynı kalacağını, hatta düşme eğilimi göstereceği öngörülmektedir. Daha sonraları 18 ay yerine 24 ay denmiştir. ) Bu durumdan bilgisayar dünyasında ilerlemenin lokomotifi donanım tarafıdır sonucu çıkarılabilir. Yazılım teknolojilerinde ilerleme yavaş olsa da yazılım geliştiricilerin yeni yazılım geliştirme hızları hiç de yavaş değildir. Yeni yazılımlar daha güçlü donanımlara ihtiyaç duyarlar, daha güçlü donanımlar da donanımcılar tarafından piyasaya sürülür ve yazılımcılar daha da güçlü donanımlar gerektiren yazılımlar yazarlar. Bu böyle devam edip gider. Daha güçlü donanımlar mı karmaşık yazılımlardan dolayı piyasaya sürülür yoksa piyasadaki donanıma uygun daha gelişmiş yazılımlar mı yazılır sorusu yumurta tavuk sorusundan farksızdır. İşte bu bitmeyecek sürecin içerisinde Hyper Threading Teknolojisi yazılımın da desteğiyle donanımın daha hızlı ve verimli çalışmasını sağlamaya yönelik bir çözümdür. Intel firması tarafından geliştirilmiştir. HT destekli ilk Intel ürünü olan Pentium 4 630 işlemciler 15 Kasım 2002 tarihinde piyasaya sürülmüştür. Bu çözüm ile işlemcilerdeki transistör sayısında herhangi bir artışa gidilmeden ya da çekirdek sayısı fiziksel olarak arttırılmadan performans artışı sağlanmıştır. Performans artışı fiziksel bir artıştan kaynaklanmadığından beraberinde enerji artışını da katlanılması gereken bir maliyet olarak getirmiyor.  Bu nedenle işlemcilerin gelişiminde Hyper Threading teknolojisi önemli bir yere sahiptir.

 Hyper Threading Nedir?

İşlemcilerin içerisinde transistörlerden oluşan birimler vardır. Bu birimler farklı işleri yerine getirirler. Hesaplama işlemleri ve veri aktarma işlemleri işlemcinin yerine getirdiği işlemlerdendir. Bir işlemci genel olarak veri aktarma işlemini hesaplama işleminden daha fazla gerçekleştirir. Bu nedenle de işlemci içerisinde hesaplama işlemi yapan birimlerin çalışmadığı anlar oluşmaktadır. Bu anların yaşanmasının nedenlerinden biri de tekrarlanan komut dizileridir. Bir işlemci birimi bir döngü ile meşgulken diğeri atıl kalabilmektedir. Bu durumun önüne geçmek için hyper threading teknolojisi ile tek bir işlemciye birden fazla komut dizisi yollanarak performans artışı sağlanmıştır. Tek bir işlemcinin birden fazla komut dizisiyle meşgul olabilmesi için işlemci çekirdeği çift işlemciymiş gibi gösterilir. Esasında tek olan çekirdekte hyper threading özelliğini desteklemeyen bir çekirdekten farklı olarak 2 adet instruction fetch ve decode bulunur. Esasen teknoloji tek bir işlemciyi işletim sistemine çift işlemci gibi göstermek üzerine kurulmuştur. Yani HT teknolojisini çift işlemci simülasyonu olarak tanımlayabiliriz. İşletim sistemi kandırılmaktadır. İşletim sisteminin hyper threading teknolojisine uyumlu olması bu noktada önemlidir. Microsoft’un Windows Xp ve sonrası işletim sistemleri ile Linux Kernel 2.4 ve sonrası işletim sistemleri HT desteği sağlamaktadır. Bu teknolojinin bir ayağında da işletim sistemleri olduğu için bu teknolojiye uygun olmayan bir işletim sisteminde çalıştırılması mümkün değildir.

HT teknolojisi multitasking teknolojisiyle karıştırılmamalıdır. Multitasking uzun süredir bilgisayarlarda kullanılan bir teknolojidir. Aynı anda birden fazla uygulama veya programın bilgisayar üzerinde çalışmasını, daha doğru bir ifadeyle kullanıcının öyle algılamasını sağlamaktadır. Örneğin bilgisayarda oyun oynarken müzik dinlemek, ya da film izlerken bir taraftan internete girip diğer taraftan hesap makinesi uygulamasını çalıştırmak multitasking teknolojisi ile sağlanmaktadır. Task Manager’ı açtığımızda bilgisayarın onlarca işlemi aynı anda yaptığını gözlemleyebiliriz. Multitasking olmasaydı işlemci sadece bir işle meşgul olabileceğinden biz bilgisayarımızla herhangi bir işi yaparken başka hiçbir işi yapamayacaktık. Arka planda işlemci birden fazla işi aynı anda yapmaz. İşlemci kullanıcının algılayamayacağı kadar küçük zaman dilimleri içerisinde anahtarlama yaparak işletilen programları sırasıyla çalıştırır. Yani aslında işlemci yine tek bir işle uğraşır ve sadece bir komut dizisini işler ancak kullanıcıya bunu fark ettirmeden birçok programı aynı anda kullanma imkanını sağlar. HT’in multitaskingden farkı: işlemcinin iki komut dizisini gerçekten eş zamanlı olarak çalıştırmasıdır.
HT teknolojisine sahip bir işlemci gerçek bir çift çekirdekli işlemcinin performansına ulaşamasa da HT teknolojisine sahip olmayan eşdeğer bir işlemciden daha verimli ve etkilidir. Bir HT işlemci ile HT özelliği olmayan bir çift çekirdekli işlemci arasındaki fark aşağıdaki şekilde(Şekil 1) görülebilir.

 Şekil 1

HT teknolojisi tek çekirdekli bir işlemci üzerinde uygulandığı gibi iki ve dört çekirdekli işlemcilerde de uygulanmaktadır. Bu teknoloji ile nasıl bir çekirdekli işlemci iki çekirdekli gibi çalışıyorsa, iki çekirdekli işlemci dört, dört çekirdekli işlemci de sekiz çekirdekli gibi çalışmaktadır.


Şekil 2

Şekil 2 de HT teknolojisini kullanan bir tek çekirdekli işlemci ile kullanmayan başka bir tek çekirdekli işlemci arasındaki komut işleme olayı açıkça görülmektedir. HT’siz işlemcide sarı komutların işlemi bitmeden mavi komutlar işletilememektedir. HT’li işlemcide ise her iki komut dizini aynı anda işlemcide işlenmektedir.


Şekil 3

Şekil 3’de HT teknolojisine sahip bir tek çekirdekli Intel işlemcisi ile HT teknolojisine sahip olmayan bir çift çekirdekli bir Intel işlemcisi gösterilmiş. Burada görüldüğü gibi her iki işlemci de aynı anda iki komut dizisini işlemektedir. HT’li işlemci HT’siz dual-core işlemciyi taklit etmektedir ancak onun hızına ulaşamamaktadır. Öte yandan dual-core işlemci daha hızlı olmasına rağmen kaynak kullanımında daha verimsizdir.


Şekil 4

Şekil 4’de HT teknolojisi kullanan bir dual-core işlemci ile kullanmayan bir dual-core işlemci görülmektedir. Burada HT’li işlemci daha hızlı ve verimli çalışmaktadır.

Hyper threading BIOS ayarlarından etkinleştirlebilir ya da kapatılabilir.



Hyper Threading Teknolojisinin Performansı

Intel, gerekli kod ayarlamalarının yapıldığı bir programın HT açıkken çalıştırılmasıyla %30 oranında bir performans artışı olacağından internet sitesinde bahsetmiş. HT’nin sağladığı performans artışı araştırılırken performansı etkileyen birçok parametre göz önünde tutulmalıdır. Örneğin hangi işletim sisteminin kullanıldığı önemlidir. Çalıştırılan programın kodları da performansta büyük öneme sahiptir. Örneğin bazı programlar HT açıkken az da olsa daha düşük performansla çalışabilir. Bu tamamen kodun bu teknolojiye uygun olmamasından kaynaklanmaktadır. Kod üzerinde yapılacak ufak değişikliklerle bu problemin önüne geçilebilir. Ancak her programın kodu kullanıcı tarafından istenildiği gibi istenildiği zaman değiştirilemeyeceğine göre bu bir dezavantajdır.

Aşağıda bağımsız test otoritelerince yapılmış testlerin sonuçları şekillerde verilmiştir. Testler çift işlemci destekli Intel 860 cipset’li anakart üzerinde gerçekleştirilmiştir. Sistem içeriği; 512MB RDRAM, 64MB Geforce3 DDR ekran kartı, Western Digital WD300BB hard disk,  XEON 2.2 işlemci ve 6X DVD. İşletim sistemi olarak Windows 2000 Pro SP2 kullanılmıştır.


Rendering:


Şekil 5

Rendering uygulamalarından alınan sonuç Şekil 5’de görülmektedir. Burada HT’nin üstünlüğü görülmektedir. Ancak dikkat edilmesi gereken nokta HT’li işlemcinin gerçek çift çekirdekli işlemcinin hızına ulaşamadığıdır.


Photoshop ve MP3 kodlama: 


Şekil 6

Gerçek çift işlemci kullanımı %34 oranında performans sağlarken, hyper-threading %3’lük bir performans kaybına neden olmuştur.


CAD Uygulamaları:


Şekil 7

Bu tarz uygulamalarda işlemciye birden fazla komut dizini eşzamanlı olarak gönderilmediğinden HT teknolojisiyle bir performans artışı sağlanamaz, şekil 7 de de görüldüğü gibi bir performans kaybı yaşanır. Cad uygulamaları kullanan bir kullanıcı BIOS ayarlarından HT’i kapatırsa daha verimli bir şekilde çalışabilir. 

  
Intel’in HT Teknolojisine Sahip İşlemcileri(Not: Güncelliği Ekim 2009 tarihine kadardır.):





5. Intel® Core™ i7 Processor Extreme Edition

6. Intel® Atom™ Processor Z5xx Series

  SONUÇ

Bu araştırmada HT teknolojisine neden ihtiyaç duyulduğu ve hangi şartlar altında teknolojinin ortaya çıktığı kavrandı. Bu teknoloji nasıl çalışır sorusuna detaylı bir şekilde cevap getirildi. HT teknolojisinin bir işlemcinin üzerinde iki işlemci varmış gibi çalışması olayı olduğu öğrenildi. Intel’in hangi ürünlerinde bu teknolojiyi kullandığı öğrenildi. Bu teknolojinin kullanılması için işletim sisteminin HT’i desteklemesi gerektiği öğrenildi, destekleyen işletim sistemleri araştırıldı. Araştırma sonucunda HT teknolojisinin her zaman performans artışı sağlamadığı bazen de performansı olumsuz yönde etkilediği tespit edildi. Özellikle Cad uygulamalarında kullanıcı tarafından BIOS ayarlarından kapatılmasında fayda olduğu saptandı. Performans artışında belli bir standardın olmadığı, artışın uygulamadan uygulamaya değiştiği görüldü. Performanstaki değişiklilerin aslında kodların yapısından kaynaklandığı, kodlardaki değişikliklerle %30’luk bir performans kazancı sağlanabileceği öğrenildi. Tek çekirdekli ve HT li bir işlemcinin hiçbir zaman gerçek bir çift çekirdekli işlemcinin hızına ulaşamayacağı, gerçek çift çekirdekli işlemcilerin daha verimli olduğu öğrenildi. HT teknolojisinin şu anda tek iki ve dört çekirdekli işlemcilerde kullanıldığı öğrenildi. HT’nin server, masaüstü, mobil ve gömülü sistemlerin işlemcilerinin bazılarında halihazırda kullanıldığı öğrenildi. HT teknolojisinin artıları ve eksileri öğrenildi, yapılacak işe göre bu teknolojinin kullanılıp kullanılmayacağına karar verilmesi gerektiği sonucuna ulaşıldı.

KAYNAKLAR








Related Posts Plugin for WordPress, Blogger...