资源简介

这是用mpi与openmp并行计算实现蒙特卡洛算法求不规则图形面积,其中还需用opencv进行图像处理,拍照生成.jpg文件,注意图片尺寸。

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
int main(){
    int comm_sz;
    int my_rank;
    int numsum=0;
    int countall_count;
    int a[440][590];
    double xy;
    srand((unsigned)time(0));
    FILE *fp=fopen(“1.txt““r“);
        if(fp==NULL){
           printf(“open error\n“);
           return -1;
        }
        for(int i=0;i<434;i++){
           for(int j=0;j<578;j++){
           fscanf(fp“%d“&a[i][j]);
           }
           fscanf(fp“\n“);
        }
    MPI_Init(NULLNULL);
    MPI_Comm_size(MPI_COMM_WORLD&comm_sz);
    MPI_Comm_rank(MPI_COMM_WORLD&my_rank);
    double startfinish;
    if(my_rank!=0){
       num=0;
       start=MPI_Wtime();
       MPI_Recv(&count1MPI_INT00MPI_COMM_WORLDMPI_STATUS_IGNORE);
       srand(my_rank);
       for(int i=0;i       x=(double)(433.0*rand()/RAND_MAX); //产生0-433的随机数
       y=(double)(577.0*rand()/RAND_MAX);
       if(a[(int)x][(int)y]==1)
          num++;
       }
       finish=MPI_Wtime();
       printf(“proc %d > Elapse time =%e seconds\n“my_rankfinish-start);
       MPI_Send(&num1MPI_INT00MPI_COMM_WORLD);
    }
    else{
        printf(“please input the count of all point :“);
        scanf(“%d“&all_count);
        count=all_count/comm_sz;
        start=MPI_Wtime();
        for(int q=1;q           MPI_Send(&count1MPI_INTq0MPI_COMM_WORLD);
        }
        srand(my_rank);
        for(int i=0;i          x=(double)(433.0*rand()/RAND_MAX); //产生0-433的随机数
          y=(double)(577.0*rand()/RAND_MAX);
          if(a[(int)x][(int)y]==1)
             sum++;
       }
       for(int q=1;q          MPI_Recv(&num1MPI_INTq0MPI_COMM_WORLDMPI_STATUS_IGNORE);
          sum+=num;
       }
       printf(“the count of point in the graph:%d\n“sum);
       printf(“the area is :%lf\n“((double)sum/all_count)*400);
       finish=MPI_Wtime();
       printf(“proc %d > Elapse time =%e seconds\n“my_rankfinish-start);
       }
       MPI_Finalize();
       return 0;
}














 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-19 23:41  蒙特卡罗求面积\
     目录           0  2019-01-19 23:41  蒙特卡罗求面积\mpi_openmp\
     文件      502138  2019-01-09 10:48  蒙特卡罗求面积\mpi_openmp\1.txt
     文件       16600  2019-01-19 23:07  蒙特卡罗求面积\mpi_openmp\mpi
     文件        2105  2019-01-18 10:51  蒙特卡罗求面积\mpi_openmp\mpi.c
     文件       16576  2019-01-19 23:09  蒙特卡罗求面积\mpi_openmp\omp
     文件        1265  2019-01-15 13:21  蒙特卡罗求面积\mpi_openmp\omp.c
     目录           0  2019-01-19 23:40  蒙特卡罗求面积\test\
     文件     3432570  2019-01-07 14:59  蒙特卡罗求面积\test\1.jpg
     文件      502138  2019-01-19 23:39  蒙特卡罗求面积\test\1.txt
     文件       11727  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeCache.txt
     目录           0  2019-01-19 23:40  蒙特卡罗求面积\test\CMakeFiles\
     目录           0  2019-01-19 23:40  蒙特卡罗求面积\test\CMakeFiles\3.5.1\
     文件        2002  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CMakeCCompiler.cmake
     文件        4556  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CMakeCXXCompiler.cmake
     文件        8640  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CMakeDetermineCompilerABI_C.bin
     文件        8656  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CMakeDetermineCompilerABI_CXX.bin
     文件         402  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CMakeSystem.cmake
     目录           0  2019-01-19 23:40  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CompilerIdC\
     文件       16423  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CompilerIdC\CMakeCCompilerId.c
     文件        8800  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CompilerIdC\a.out
     目录           0  2019-01-19 23:40  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CompilerIdCXX\
     文件       16406  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CompilerIdCXX\CMakeCXXCompilerId.cpp
     文件        8808  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\3.5.1\CompilerIdCXX\a.out
     文件         609  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\CMakeDirectoryInformation.cmake
     文件       40301  2019-01-01 21:42  蒙特卡罗求面积\test\CMakeFiles\CMakeOutput.log
     目录           0  2019-01-19 23:42  蒙特卡罗求面积\test\CMakeFiles\CMakeTmp\
     文件        2093  2019-01-19 23:38  蒙特卡罗求面积\test\CMakeFiles\Makefile.cmake
     文件        3200  2019-01-19 23:38  蒙特卡罗求面积\test\CMakeFiles\Makefile2
     文件         139  2019-01-19 23:38  蒙特卡罗求面积\test\CMakeFiles\TargetDirectories.txt
     文件          85  2019-01-19 23:38  蒙特卡罗求面积\test\CMakeFiles\cmake.check_cache
............此处省略20个文件信息

评论

共有 条评论