Paralel Matris Çarpma Kodu: Bilgisayarınız için basit bir performans testi
Merhaba arkadaşlar, basit bir kod hazırlayarak farklı bilgisayarların paralel çalışma hızlarını karşılaştırmaya karar verdim. Bu test için hazırlanan paralel matris çarpma kodu aşağıda verilmiştir.
Paralel Matris Çarpma Kodu
#include
#include
#include
using namespace std;
#define N 2000
void init(int *A, int *B, int *C)
{
srand(N);
for(int i = 0; i < N; ++i)
for(int j = 0; j < N; ++j)
{
A[N * i + j] = rand() % 100 + 1;
B[N * i + j] = rand() % 100 + 1;
C[N * i + j] = 0;
}
}
void carp(int P, int *A, int *B, int *C)
{
omp_set_num_threads(P);
#pragma omp parallel for
for(int i=0; i < N; ++i)
for(int j=0; j < N; ++j)
for(int k=0; k < N; ++k)
C[N * i + k] += A[N * i + j] * B[N * j + k];
}
int main()
{
int *A = new int[N * N];
int *B = new int[N * N];
int *C = new int[N * N];
for(int i=1; i < 16; i *= 2)
{
init(A, B, C);
long start = clock();
carp(i, A, B, C);
long end = clock();
cout << "Num Proc: " << i << "\tDur: " << end-start << " ms" << endl;
}
system("PAUSE");
return 0;
}
Farklı bilgisayarlar için test sonucuna bakalım. Siz de test sonuçlarınızı bizimle paylaşmak isterseniz buyrun.
Ahmed'in Bilgisayarı
Intel i7-2600K 4.4 Ghz + DDR3 2000 Mhz (bol bol overclock)
Num Proc: 1 Dur: 4475 ms
Num Proc: 2 Dur: 2234 ms
Num Proc: 4 Dur: 1119 ms
Num Proc: 8 Dur: 1041 ms
Serdar'ın Bilgisayarı
Intel i7-3820 Socket 2011 3.6 Ghz + DDR3 1833 Mhz (overclock yok)
Num Proc: 1 Dur: 5023 ms
Num Proc: 2 Dur: 2527 ms
Num Proc: 4 Dur: 1497 ms
Num Proc: 8 Dur: 1248 ms
Beycan'ın Bilgisayarı
Intel i5-2500 3.5 Ghz + DDR3 1600 Mhz (masaüstü az overclock)
Num Proc: 1 Dur: 5592 ms
Num Proc: 2 Dur: 2791 ms
Num Proc: 4 Dur: 1650 ms
Num Proc: 8 Dur: 1840 ms
Contabo VPS XL
Six cores, 3.2 GHz + 16 GB Ram (guaranteed)
Num Proc: 1 Dur: 7925 ms
Num Proc: 2 Dur: 4081 ms
Num Proc: 4 Dur: 2468 ms
Num Proc: 8 Dur: 2046 ms
Beycan'ın Laptop
Intel P7350 Core2Duo 2 GHz + DDR2 800 Mhz (laptop normal)
Num Proc: 1 Dur: 14726 ms
Num Proc: 2 Dur: 7816 ms
Num Proc: 4 Dur: 7472 ms
Num Proc: 8 Dur: 7317 ms
Beycan'ın 2002 Model Bilgisayarı
AMD Athlon 2500+ 1.09 Ghz + DDR 400 Mhz (server yavaşlatılmış)
Num Proc: 1 Dur: 69219 ms
Num Proc: 2 Dur: 69078 ms
Num Proc: 4 Dur: 68234 ms
Num Proc: 8 Dur: 69078 ms
Poundhost AtomCube Server
Dual-Core Intel Atom D525 1.8GHz + 2GB DDR3
Num Proc: 1 Dur: 390240 ms
Num Proc: 2 Dur: 391120 ms
Num Proc: 4 Dur: 428160 ms
Num Proc: 8 Dur: 428080 ms
Poundhost AtomCube sunucusunda program çıktısı yukarıdaki gibi olmasına rağmen, çalışma süreleri yaklaşık olarak 391, 238, 136, 141 saniye olarak çıkmıştır.
Sanal işlemci kullanıldığı için böyle bir sonuç çıkmış olabilir.