MPI—统计素数个数
来源:互联网 发布:苏州美工的行情 编辑:程序博客网 时间:2024/05/17 02:16
MPI求素数个数
// MPI1.cpp : 定义控制台应用程序的入口点。//MPI求素数个数#include "stdafx.h"#include "mpi.h"#include <stdio.h>#include <math.h>int isPrime(int lyy_num) //判断是否为素数 { int lyy_flag=1; int lyy_s=sqrt(lyy_num*1.0); for(int j=2;j<=lyy_s;j++) { if(lyy_num%j==0) { lyy_flag=0; break; } } return lyy_flag; } void main(int argc, char * argv[]){int n=0,myid,numprocs,i,pi,sum,mypi;double startwtime,endwtime;MPI_Init(&argc,&argv);MPI_Comm_size(MPI_COMM_WORLD,&numprocs);MPI_Comm_rank(MPI_COMM_WORLD,&myid);if(myid==0){printf("输入一个数字:");fflush(stdout);scanf_s("%d",&n);startwtime=MPI_Wtime();}MPI_Bcast(&n,1,MPI_INT,0,MPI_COMM_WORLD); //将n值广播出去sum=0;for(i=myid*2+1;i<=n;i+=numprocs*2)sum+=isPrime(i);mypi=sum; MPI_Reduce(&mypi,&pi,1,MPI_INT,MPI_SUM,0,MPI_COMM_WORLD); //规约if(myid==0) {printf("结果=%d\n",pi);endwtime=MPI_Wtime();printf("并行时间=%f\n",endwtime-startwtime);}//串行程序sum=0;double startwtime2=MPI_Wtime();if(myid==0){for(i=1;i<=n;i+=2)sum+=isPrime(i);double endwtime2=MPI_Wtime();printf("结果=%d\n",sum);printf("串行时间=%f\n",endwtime2-startwtime2);}MPI_Finalize();}
小数据运行结果:
大数据运行结果:
实验加速比:
加速比计算:0.209725/0.105496=1.988
0 0
- MPI—统计素数个数
- MPI求素数个数
- MPI—统计完数的个数
- wikioi1439统计素数个数
- 素数的个数统计
- 统计素数个数
- 1439 统计素数个数
- 并行计算—OpenMP—统计素数的个数
- Java多线程—Thread统计素数的个数
- MPI实现任意两个数之间的素数个数
- 【codevs1453 统计素数个数2】E氏筛法
- 湖南科技大学ACM1001统计素数个数
- 100到200之间的素数并统计个数
- NowCoder猜想---统计n以内的素数个数
- leetcode Count Primes 统计 素数 个数 超时 解决方案
- (java)统计小于N的数中素数的个数
- 【算法】寻找1000000000(十亿)内素数并统计个数
- hnust 1101(水): 实验3-3:统计素数个数
- CIH原码
- 深入理解Java之线程池
- 父元素是弹性盒子让内容是长单词强制换行
- 适配器模式
- Glide 入门到精通之六——缓存基础
- MPI—统计素数个数
- CDN浅谈
- 汇编-寄存器
- 广播接收器的坑
- Android动画之ScaleAnimation
- 直播推流端弱网优化策略 | 直播 SDK 性能优化实践
- webrtc研究-视频接收端处理
- Visual Studio 2013 KEY(密钥)
- ActorSystem讲解