c_cpp openmp.c

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp openmp.c相关的知识,希望对你有一定的参考价值。

// compile with: gcc openmp.c -o openmp -std=c11 -O3 -Wall -fopenmp

#include <stdio.h>
#include <stdlib.h>

typedef int num;

int main(int argc, char *argv[]) {
	int n = 20000;
	int m = 20000;
	
	num *p = (num*)malloc(n * m * sizeof(num));
	if (p == NULL)
		return 1;
	
	for (int i = 0; i < n * m; ++i) {
		p[i] = 1;
	}
	
	num s = 0;
	#pragma omp parallel for
	for (int i = 0; i < n; ++i) {
		num ss = 0;
		for (int j = 0; j < m; ++j) {
			ss += p[i * m + j];
		}
		#pragma omp atomic
		s += ss;
	}
	
	printf("%lld\n", s);
	
	return 0;
}

以上是关于c_cpp openmp.c的主要内容,如果未能解决你的问题,请参考以下文章