Ana sayfa Bilgisayar MPI ile Paralel Matris-Matris Çarpma İşlemi

MPI ile Paralel Matris-Matris Çarpma İşlemi

556
PAYLAŞ
MPI ile Paralel Matris-Matris Çarpma İşlemi

 IKJ İndekslemesi ile Paralel Matris-Matris Çarpma İşlemi 

Hatırlarsanız önceki çalışmamızda (kendisi burada) C için en hızlı indeksleme yöntemini IKJ olarak bulmuş ve diğer indeksleme yöntemlerine göre bariz bir hız farkı elde etmiştik. Bu çalışmamızda ise bunu bir adım daha öteye taşıyıp Matris-Matris çarpma işlemini paralelleştireceğiz ve MPI'ın gücünden yararlanarak paralel bir C kodu yazarak performans artışı hedefleyeceğiz. Önceki çalışmamızdan hatırlarsanız, IKJ indeksi ile yapılacak Matris-Matris Çarpımı için kod-taslağı(pseudo-code) aşağıdaki gibiydi;

/* ikj */

for (i=0; i<n; i++) {

for (k=0; k<n; k++) {

r = a[i][k];

for (j=0; j<n; j++)

c[i][j] += r * b[k][j];

}    

Bu taslağı aşağıdaki resim ile kolayca ifade edebiliriz;

2-1-300x235

Figure.1: IKJ Matrix Çarpımı

Her bir iç döngüdeki ıskalama sayısı ise bu indeks için aşağıda görülebilir;

A = 0

B = 0.25

C = 0.25

 MPI ile Paralel Matris-Matris Çarpma İşlemi 

Bu iş için kullandığımız MPI kod taslağı aşağıdadır. Bu rehber sizlere C ile MPI  öğretmeyi kapsamamaktadır. MPI Dersleri için buraya bakabilirsiniz.

 

Örnek Sonuçlar

  

 Tablo.1: Seri Algoritma Sonuçları 

Boyut (nxm) Zaman(Dak.)
1000 0.053775967
2000 0.432410067
3000 1.45942845
4000 3.454161017
5000 6.742232117
6000 11.63712482
7000 18.86768738
8000 27.82786805
9000 42.97894511
10000 65.32486487

 Tablo.2: 8 Çekirdek ile Paralel Algoritma Sonuçları 

8 Çekirdek  
Boyut (nxm) Zaman(Dak.)
2000 0.01
4000 0.03
6000 4.27
8000 10.67
10000 19.20
12000 29.87
14000 51.20
16000 74.67
18000 106.67
20000 145.07

Sizlerin de rahatlıkla gözlemleyebileceğiniz gibi Matris-Matris Çarpma işlemi paralel bir şekilde yapmak, bu için tek bir çekirdek kullanmaktan çok daha hızlı ve verimli olacaktır. Fakat burada dikkat etmemiz gereken çok önemli püf noktaları da bulunmuyor değil. Tabi ki bu noktalar ile ilgili de sizlere bilgiler vereceğiz. Takipte kalın,

Keçi ile kalın !