core i7 üzerinde matlab performans testi
core i7 bildiginiz gibi intel in masaüstü piyasası için çıkarmış olduğu son işlemci serisi. işlemcide 4 çekirdek bulunuyor. ayrıca quad core larda olmayan hyper threading özelligi de eklenmis. 920 serisi ailenin en düşük frekansta çalışan (2.66 ghz) ve en ucuz işemcisi (~350$). mevcut sistemde anakart olarak intel dx58so kullanildi. ram olarak 3x2 gb ddr3 1600 mhz corsair tercih ettik. bu yeni ram teknolojisi 3 kanalli olarak çalışabiliyor. harddisk olarak 2 adet 1 TB sata seagate raid 0 olarak konfigure edildi. ati 3650 ekran kartı bulunuyor. bu test te amacım i7 nin matlab deki performansini test etmek. işletim sistemi windows server 2008 64bit standart edition. matlab versiyonu 2009a. test için, içerisinde genetik algoritma barındıran küçük bir test kodu oluşturuldu:
bu kodu tek bir matlab açıp koşuyoruz. elde edilen sumt değeri i7@920 icin 32sn. aynı değer q6600 işlemcili bir diğer makinede 35sn iken benim yadigar 3ghz p4 ht işlemcili 32bit xp'de 60 sn.
tabi i7 de birden fazla çekirdek olduğu için paralel çalıştırma performansını merak ediyoruz. bu yüzden birden fazla matlab açıp ayı kodu simultane olarak aynı anda başlatıyoruz (bu işlemi manuel olarak yapıyoruz, ufak zaman kayıpları tolere edilebilir, çünkü bu kayıplar tüm test konfigurasyonları için geçerli). paralel çalıştırma için küçük bir not: eğer uyguladığınız kod pratik bir şekilde parçalara bölünebiliyorsa anlatılan teknik oldukça efektif. mesela yukardaki kod parçalara çok kolay bölünebilir çünkü dikkat edilirse 1 den 8 kadar bir for döngüsü var. tek bir matlab de 1 den 8 e kadar koşmak yerine 8 tane farklı matlabde 1er kere koşmak aynı şey. yani bu kod hiç bir ekstra işlem yapmadan parçalanabiliyor. tabi ben testlerde manuel başlatma yaptığım için kodu parçalamadım. parçalasaydık süreler oldukça düşeceği için manuel başlatmadan dolayı zaman kayıpları ve dolayısıyla hatalar artacaktı. bunun yerine tüm kodu olduğu gibi koşup, elde edilen süreyi matlab sayısına böldüm. nasıl olsa kodun eşit küçük parçalara ayrıldığını biliyoruz.
elde ettiğim sonuçlar özetle şu şekilde:
-i7 de maksimum verimlilik 8 adet paralel matlab koşulduğunda elde ediliyor ve yaklaşık 6.84 sn. yani tek matlab ile çalışmanın tam 4.77 katı.
-q6600 da maksimum verimlilik 4 adet paralel matlab koşulduğunda elde ediliyor ve yaklaşık 9.20 sn. yani q6600 da tek matlab ile çalışmanın tam 3.89 katı.
-p4 3ghz de maksimum verimlilik 2 veya daha fazla matlab ile çalışmakla elde ediliyor ve 47sn. yani p4 de tek matlab ile çalışmanın 1.27 katı.
sonuçları yorumlayacak olursak:
-i7 de esasen 4 çekirdek var. fakat hyper threading in bir artisi olsa gerek paralel koşmada 4 ün üzerinde (4.7 kat) verim artışı elde edebildim.
-q6600 ekonomik bir çözüm olmasına rağmen performansı ve verimliliği (3.8 kat) oldukça yüksek.
sistemleri birbiri ile karşılaştıracak olursak:
-i7 920, q6600 dan 1.33 kat daha hızlı
-i7 920, p4 3ghz ht den 6.83 kat daha hızlı (oy oy :)
elde ettiğim detaylı sonuçlar şu excel dosyasında mevcut.
eğer matlab ile uğraşıyorsanız ve yukardaki testi siz de yapmak isterseniz sonuçlarını görmek isterim. konfigurasyonunuz ve performans değerlerinizi ve yorumlarınızı bekliyorum :)
clear,clc,close all
options = gaoptimset();
options = gaoptimset(options,'Generations',500);
options = gaoptimset(options,'TolFun',1e-1024);
options = gaoptimset(options,'Display','none');
options = gaoptimset(options,'PopulationSize',100);
t=zeros(1,8);
for i=1:8
tic;
[x,fval,exitflag,output] = ga(@rastriginsfcn,200,[],[],[],[],[],[],[],options);
ttime=toc;
fprintf('%d %f\n',i,ttime);
t(i)=ttime;
end
meant=mean(t)
stdt=std(t)
sumt=sum(t)
bu kodu tek bir matlab açıp koşuyoruz. elde edilen sumt değeri i7@920 icin 32sn. aynı değer q6600 işlemcili bir diğer makinede 35sn iken benim yadigar 3ghz p4 ht işlemcili 32bit xp'de 60 sn.
tabi i7 de birden fazla çekirdek olduğu için paralel çalıştırma performansını merak ediyoruz. bu yüzden birden fazla matlab açıp ayı kodu simultane olarak aynı anda başlatıyoruz (bu işlemi manuel olarak yapıyoruz, ufak zaman kayıpları tolere edilebilir, çünkü bu kayıplar tüm test konfigurasyonları için geçerli). paralel çalıştırma için küçük bir not: eğer uyguladığınız kod pratik bir şekilde parçalara bölünebiliyorsa anlatılan teknik oldukça efektif. mesela yukardaki kod parçalara çok kolay bölünebilir çünkü dikkat edilirse 1 den 8 kadar bir for döngüsü var. tek bir matlab de 1 den 8 e kadar koşmak yerine 8 tane farklı matlabde 1er kere koşmak aynı şey. yani bu kod hiç bir ekstra işlem yapmadan parçalanabiliyor. tabi ben testlerde manuel başlatma yaptığım için kodu parçalamadım. parçalasaydık süreler oldukça düşeceği için manuel başlatmadan dolayı zaman kayıpları ve dolayısıyla hatalar artacaktı. bunun yerine tüm kodu olduğu gibi koşup, elde edilen süreyi matlab sayısına böldüm. nasıl olsa kodun eşit küçük parçalara ayrıldığını biliyoruz.
elde ettiğim sonuçlar özetle şu şekilde:
-i7 de maksimum verimlilik 8 adet paralel matlab koşulduğunda elde ediliyor ve yaklaşık 6.84 sn. yani tek matlab ile çalışmanın tam 4.77 katı.
-q6600 da maksimum verimlilik 4 adet paralel matlab koşulduğunda elde ediliyor ve yaklaşık 9.20 sn. yani q6600 da tek matlab ile çalışmanın tam 3.89 katı.
-p4 3ghz de maksimum verimlilik 2 veya daha fazla matlab ile çalışmakla elde ediliyor ve 47sn. yani p4 de tek matlab ile çalışmanın 1.27 katı.
sonuçları yorumlayacak olursak:
-i7 de esasen 4 çekirdek var. fakat hyper threading in bir artisi olsa gerek paralel koşmada 4 ün üzerinde (4.7 kat) verim artışı elde edebildim.
-q6600 ekonomik bir çözüm olmasına rağmen performansı ve verimliliği (3.8 kat) oldukça yüksek.
sistemleri birbiri ile karşılaştıracak olursak:
-i7 920, q6600 dan 1.33 kat daha hızlı
-i7 920, p4 3ghz ht den 6.83 kat daha hızlı (oy oy :)
elde ettiğim detaylı sonuçlar şu excel dosyasında mevcut.
eğer matlab ile uğraşıyorsanız ve yukardaki testi siz de yapmak isterseniz sonuçlarını görmek isterim. konfigurasyonunuz ve performans değerlerinizi ve yorumlarınızı bekliyorum :)

3 Yorumlar:
12:39 PM,
halil dedi…
Bu kayıt, yazar tarafından kaldırıldı.
12:41 PM,
halil dedi…
Merhaba
İşlemci(MHZ) :Core2Duo - T7250 2.0-800MHZ
Bellek (MB) :4GB DDR2 667MHz
İşletim Sistemi :Vista Home Premium (32bit)
Bu özellikleri bulunduran ASUS-F3SR modeli modeli dizüstü bilgisayarım üzerinde yazdığınız kod dizini çalıştırıldığında sumt değeri 30.0042sn olarak bulundu. i7 konusunda şaşırdım daha iyi performans beklerdim.
Paralel prosessing konusunda, nasıl yapılacağı ile ilgili uygulamaya dönük, daha detaylı bilgi verebilirmisiniz.
teşekkürler
4:14 PM,
Rifat KURBAN dedi…
tek matlab ile i7'nin performansi oldukca düşük, nitekim gecenlerde q9650 islemcide 19sn gibi degerler elde ettik tek matlab kullanarak. i7 den tam performans almak paralel calismak gerekiyor.
matlab de paralel processing ile ilgili kısa bir tutorial hazırlayacağım en kısa zamanda. selamlar.
Yorum Gönder
<< Anasayfa