openmp parallelism
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| #include <math.h> | ||||
| #include "sparse_matrix.h" | ||||
| #include <omp.h> | ||||
|  | ||||
| void init_vector(double *vector, int size, double value) { | ||||
|     for (int i = 0; i < size; ++i) { | ||||
| @@ -9,6 +10,7 @@ void init_vector(double *vector, int size, double value) { | ||||
|  | ||||
| double diff_norm_vector(double *vector1, double *vector2, int size) { | ||||
|     double res = 0.0; | ||||
|     #pragma omp parallel for reduction(+:res) | ||||
|     for (int i = 0; i < size; ++i) { | ||||
|         res += fabs(vector1[i] - vector2[i]); | ||||
|     } | ||||
| @@ -26,6 +28,7 @@ void generate_f(const SparseMatrix *matrix, double *res) { | ||||
|  | ||||
| double vec_product(const double* v1, const double* v2, int N) { | ||||
|     double sum = 0.0; | ||||
|     #pragma omp parallel for reduction(+:sum) | ||||
|     for (int i = 0; i < N; i++) { | ||||
|         sum += v1[i] * v2[i]; | ||||
|     } | ||||
| @@ -34,9 +37,11 @@ double vec_product(const double* v1, const double* v2, int N) { | ||||
|  | ||||
| void normalize_vector(double* v, int N) { | ||||
|     double sum = 0.0; | ||||
|     #pragma omp parallel for reduction(+:sum) | ||||
|     for (int i = 0; i < N; i++) { | ||||
|         sum += v[i]; | ||||
|     } | ||||
|     #pragma omp parallel for | ||||
|     for (int i = 0; i < N; i++) { | ||||
|         v[i] /= sum; | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user