From: Ilker Gokhan (ilker.gokhan@linux.org.tr)
Date: Thu 20 Feb 2003 - 17:14:55 EET
Merhabalar,
Bu mail gozumden kacmis o yuzden gec yanit verebiliyorum. Simdi gorunce
birkac satir daha eklemek istedim. Ozur..
Baris Metin wrote:
> Selamlar,
>>Hmmm.. Simdi hyperthreading aslinda tek CPU yu lojical olarak cift gibi
>>gosterme durumu bunda hem fikiriz. Bu sayede multhread yazilmis
>>uygulamalar -alt duzeyde- hyperthread in sayesinde yaratilmis olan
>>*lojik SMP* uzerinde makina sanki SMP iymis gibi calisabiliyor. Yani tek
>>bir CPU uzerinde multhread uygulamalar calisabiliyor. SMP de
>>uygulamalarda ozellikle multithreading uygulamalarin kostugu fiziksel
>>coklu CPU tarlasi. Dolayisiyla SMP icin yazilmis bir uygulamanin
>>hyperthread bir platforma da kosarken performans vermemesi durumu ancak
>>o urun SMP uzerinde de verimli calismadigi bir durumda gecerlidir.
>
>
> Bu cogu durum icin dogru, yalniz bazi durumlarda ne yazikki olay tam
> olarak bu sekilde gerceklesmiyor/gerceklesemiyor.
>
Evet dogru istisnai durumlar yok degil.
> Bunu aciklamak icin hyperthreading'in nasil calistigina biraz olsun
> deginmek gerekiyor.
>
> Hyperthreading'de bazi kaynaklar paylasilir(shared); mesala cache...
> Bazi kaynaklar calisan thread'ler arasinda bolunur(partitioned); mesela
> bufferlar...
> Bazi kaynaklar ise kopyalanarak (replicated) kullanilir; mesela
> instruction pointers...
> Yani sizin de bahsettiginiz gibi islemcilerde bazi bolumler logical
> olarak coklanirken bazi bolumler ise paylasilir, ortak kullanilir...
>
> Hal boyleyken Hyperthreading'de ortak kaynaklar icin yarisan(compete)
> thread'lerin varligi HyperThreading teknolojisinden istenilen verimin
> alinamamasina neden olur. Buna bir ornek de bir onceki mektubumda
> bahsettigim spin-wait loops gosterilebilir. Bu konu ile ilgili de
> detayli bilgi intel.com'dan alinabilir. Hatirladigim kadari ile bir
> "hyperthreading icin kod hazirlamak" gibi bir baslik altinda
> anlatiliyordu.
Walla Baris eline saglik guzel anlatmissin. :) Benim tam olarak
anlatmaya calistigim sey kisaca soyle aslinda. Xeon bir makina aldiniz,
bunda hyperthread ozelligini kullanarak bu makinada kuracaginiz mail
server,web server vs in (Apache, IIS, M$ Exchange, Qmail, sendmail vs
olabilir yani multithreat uygulamalar) %30 civarinda performans artimina
sahip olabiliyorsunuz. (Intel in yalancisiyim) :)) Yoksa hicbir hazir
yazilmis olan gercek dunya uygulamasi hyperthread de daha iyi calisacak
diye butun kodlari tekrar elden gecilip te yazilacak degil. ;-)
Intel in tavsiyelerinden biride kendi compiler larinin kullanilmasi.
Boylece seninde bahsettigin hyperthread optimizasyonu otomatik
yapilabiliyor.
Hmm istisnai bir uygulamaya ornek vermek gerekirse, bir tanesi MP3
encoding olayi mesela. Ama performans cok az dusuyor. (Tabi bu benim
zamaninda okuduklarimdan arta kalanlar yoksa *sahsen* herhangi bir sey
denemisligim yok. Yanlis anlasilmasin.) :)
Saygilar..
Ilker G.
-----------------------------------------------------------------------
Liste üyeliğiniz ile ilgili her türlü işlem için
http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz.
Listeden çıkmak için: 'linux-request@linux.org.tr' adresine,
"Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz.
-----------------------------------------------------------------------