我正在尝试创建一个 openMP 程序,该程序随机化双精度数组并通过以下公式运行值:y[i] = (a[i] * b[i]) + c[i] + (d[i] * e[i]) + (f[i] / 2);
如果我多次运行该程序,我就会意识到 Y[] 值是相同的,即使在第一次初始化数组时它们应该是随机的#pragma omp for。关于为什么会发生这种情况有什么想法吗?
#include<stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include<omp.h>
#define ARRAY_SIZE 10
double randfrom(double min, double max);
double randfrom(double min, double max)
{
double range = (max - min);
double div = RAND_MAX / range;
return min + (rand() / div);
}
int main() {
int i;
double a[ARRAY_SIZE], b[ARRAY_SIZE], c[ARRAY_SIZE], d[ARRAY_SIZE], e[ARRAY_SIZE], f[ARRAY_SIZE], y[ARRAY_SIZE];
double min, max; …Run Code Online (Sandbox Code Playgroud)