Bilgisayarınıza 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 <iostream>
#include <ctime>
#include <omp.h>
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.
Intel i7-2600K 4.4 Ghz + DDR3 2000 Mhz (bol bol overclock)
Num Proc: 1 Dur: 4474 ms
Num Proc: 2 Dur: 2254 ms
Num Proc: 4 Dur: 1452 ms
Num Proc: 8 Dur: 1177 ms
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
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
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
2011-06-19 04:47:24

