用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

芙蓉妹妹    -  云代码空间

——

对cosx 在【0,2π】内积分

2019-04-19|946阅||

摘要:#include<stdio.h> #include<math.h> #include "mpi.h" #define PI 3.14159265 int main(int argc, char** argv){ MPI_Init(&argc,

#include<stdio.h>
#include<math.h>
#include "mpi.h"
#define PI 3.14159265
int main(int argc, char** argv){
    MPI_Init(&argc, &argv);
    MPI_Comm comm = MPI_COMM_WORLD;
    int rank, size, n = 9, k;
    MPI_Comm_rank(comm, &rank);
    MPI_Comm_size(comm, &size);
    MPI_Status status;
    double h = (PI*2)/size/n;
    double sum = 0;
    for(k = 0; k < n; k++)
        sum += h*cos((rank*n+k)*h +h /2);
    if(rank == 0){
        printf("the sum of process %d is %f\n", rank, sum);
        double total = sum;
        for(k = 1; k < 4; k++){
            MPI_Recv(&sum,1,MPI_DOUBLE,k,99,comm,&status);
            total += sum;
        }
        printf("f cos(x) dx is %f\n",total);
    }
    else{
        MPI_Send(&sum,1,MPI_DOUBLE,0,99,comm);
        printf("%d sends to 0: %f\n", rank, sum);
    }
    MPI_Finalize();
    return 0;
}
分成4部分积分,则size为4;n为每个part内分为几个小长方形
注意:因为代码内有cos函数运用,则编译运行时,要在最后加-lm
如:mpicc -o cos cos.o -lm
顶 1踩 1收藏
文章评论
    发表评论

    个人资料

    • 昵称: 芙蓉妹妹
    • 等级: 资深程序员
    • 积分: 1710
    • 代码: 104 个
    • 文章: 25 篇
    • 随想: 0 条
    • 访问: 32 次
    • 关注

    标签

    最新提问

      站长推荐