小编jac*_*bar的帖子

OpenMP和reduce()

我只有3个函数,一个是控制函数,接下来的两个函数是使用OpenMP以不同的方式完成的.但是函数thread1给出了另一个得分而不是thread2和控件,我不明白为什么?

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

float function(float x){
    return pow(x,pow(x,sin(x)));
}



 float integrate(float begin, float end, int count){
    float score = 0 , width = (end-begin)/(1.0*count), i=begin, y1, y2;


    for(i = 0; i<count; i++){
            score += (function(begin+(i*width)) + function(begin+(i+1)*width)) * width/2.0;
 }
    return score; 
 }




 float thread1(float begin, float end, int count){
    float score = 0 , width = (end-begin)/(1.0*count), y1, y2;

    int i;
    #pragma omp parallel for reduction(+:score) private(y1,i) shared(count)
    for(i = 0; i<count; i++){ …
Run Code Online (Sandbox Code Playgroud)

c openmp numerical-methods

2
推荐指数
1
解决办法
5117
查看次数

标签 统计

c ×1

numerical-methods ×1

openmp ×1