\[ v = \frac{W}{T} \]
\[ Q = \rho vA = \frac{\rho AW}{T} = \frac{\rho A}{L} \]
#define N 10000000
...
void axpy(double *y, const double *x, double a, int n) {
#pragma omp parallel for
for(int i = 0; i < n; i++)
y[i] = a * x[i] + y[i];
}
...
axpy(x, y, a, N);
$ for((i=1;i<=12;i++)); do OMP_NUM_THREADS=$i ./strong; done
Suoritusaika 1 säikeellä: 0.0114419
Suoritusaika 2 säikeellä: 0.00692391
Suoritusaika 3 säikeellä: 0.00632405
Suoritusaika 4 säikeellä: 0.006181
...
#define N 10000000
...
void axpy(double *y, const double *x, double a, int n) {
#pragma omp parallel for
for(int i = 0; i < n; i++)
y[i] = a * x[i] + y[i];
}
...
int n = threadCount*N; // Säikeen tekemä työ pysyy vakiona
...
axpy(x, y, a, n);
$ for((i=1;i<=12;i++)); do OMP_NUM_THREADS=$i ./weak; done
Suoritusaika 1 säikeellä: 0.0115819
Suoritusaika 2 säikeellä: 0.013674
Suoritusaika 3 säikeellä: 0.0196369
Suoritusaika 4 säikeellä: 0.024848
...