当前位置: 首页 > news >正文

山东省南水北调建设管理局网站东北大学秦皇岛吧

山东省南水北调建设管理局网站,东北大学秦皇岛吧,html5小游戏源码,自己做的网站给人攻击了怎么办搭建MPI并行计算环境,编写 MPI程序,求和 1 23....1 0000。 要求: 1.使用100个进程; 2.进程0计算1 2...100, 进程1计算101 102... 200, ..... 进程99计算9901 9902... 10000; 3.调用计时函数,分别输出每个进程的计算时间; 4.需使用MPI集群通信函数和同…

搭建MPI并行计算环境,编写 MPI程序,求和 1 +2+3+....+1 0000。 要求:

  • 1.使用100个进程;

  • 2.进程0计算1 +2+...+100,

    进程1计算101+ 102+...+ 200,

    .....

    进程99计算9901 + 9902+... +10000;

  • 3.调用计时函数,分别输出每个进程的计算时间;

  • 4.需使用MPI集群通信函数和同步函数

基本概念

解释的很好:MPI 与并行计算入门 - 知乎 (zhihu.com)

安装

下载:Downloads | MPICH

配置文件设置 ./configure --disable-fortran

编译安装 make -j 8; (设置8个进程进行编译会快一些)sudo make install

相关执行脚本:mpic++ mpicc mpirun mpichversion mpiexec mpicxx mpifort mpivars

确保已安装环境gcc 、cmake、gfortran,如下操作

下载mpi压缩包,解压后进行配置:

 配置完后,执行编译安装

添加环境变量,注意这里的路径一定是前面配置时设置的路径,这里踩坑了

vim ~./bashrc 修改后source启用

测试安装完成

 代码编写

#include <stdio.h>
#include <mpi.h>int main(int argc, char *argv[]) {int rank, size;MPI_Init(&argc, &argv);  // 初始化MPI环境MPI_Comm_rank(MPI_COMM_WORLD, &rank);  // 获取进程编号MPI_Comm_size(MPI_COMM_WORLD, &size);  // 获取进程总数if (size != 100) {if (rank == 0) {printf("需要100个进程,请确保启动时指定了100个进程。\n");}MPI_Finalize();return 1;}// 每个进程计算的起点和终点int start = rank * 100 + 1;int end = (rank + 1) * 100;// 计时开始double start_time = MPI_Wtime();// 计算部分和long long local_sum = 0;for (int i = start; i <= end; i++) {local_sum += i;}// 计时结束double end_time = MPI_Wtime();double elapsed_time = end_time - start_time;// 输出每个进程的计算时间printf("进程 %d 计算时间: %f 秒\n", rank, elapsed_time);// 使用MPI_Reduce收集所有部分和,结果存储在进程0long long total_sum = 0;MPI_Reduce(&local_sum, &total_sum, 1, MPI_LONG_LONG, MPI_SUM, 0, MPI_COMM_WORLD);// 进程0输出最终总和if (rank == 0) {printf("1 + 2 + ... + 10000 的总和为: %lld\n", total_sum);}MPI_Finalize();  // 结束MPI环境return 0;
}

代码分析

  1. MPI初始化

    • MPI_Init: 初始化MPI环境,所有进程开始运行。
    • MPI_Comm_rank: 获取当前进程的编号(rank)。
    • MPI_Comm_size: 获取总进程数(size)。
  2. 计时函数
    使用MPI_Wtime()计算每个进程的运行时间。

  3. 进程间通信

    • MPI_Reduce: 将所有进程的部分和累加到进程0。
    • MPI_SUM: 指定归约操作为求和。
  4. 同步
    MPI中的MPI_Reduce隐含了同步,因为它会等待所有进程计算完成。

运行方法

假设代码文件名为mpi_sum.c,在终端中执行以下命令:

mpicc mpi_sum.c -o mpi_sum  # 编译代码
mpirun -np 100 ./mpi_sum    # 使用100个进程运行程序

运行结果

http://www.yayakq.cn/news/887205/

相关文章:

  • 当当网电子商务网站建设移动互联网网站建设
  • 做移动网站多少钱可商用的图片素材网站
  • 最佳建站模板旅游网站怎么制作
  • 官方网站页面尺寸电子商务网站推广怎么做
  • 高端网站建设个人苏州网站推广建设
  • 内蒙古建设安全监督站的网站网站建设要钱么
  • 网站用哪些系统做的企业网站的维护工作要怎么做
  • 西部数码网站管理助手 2008网站法人与负责人
  • wordpress建两个网站甘肃兰州
  • 网站制作进度表二合一收款码免费制作网站
  • 目前网站在初级建设阶段_需要大量数据丰富宁波做网站的专业公司
  • 建站是什么东西微信网站开发详解
  • 做网站的是怎么赚钱的核酸检测公司上市
  • 开化网站建设泰安建设企业网站
  • pc网站建设的三大条件如何做自己的网站
  • 营销型网站一个多少钱wordpress代码优化插件
  • 重庆市建设网站公司公司网站开通
  • 合肥企业网站建专门做灯具海报的网站
  • php用什么做网站服务器网页设计公司开设需要投资多少钱
  • 南昌企业建设网站开发台州企业网站搭建电话
  • 西安做网站哪家最便宜帝国网站7.2 pc wap 跳转
  • 网站模板如何编辑软件福州网站排名优化
  • 找网站公司做网站用了织梦可以吗wordpress上传字体
  • 常州市钟楼区建设局网站wordpress 页面缓存
  • 网站登录页面盗号怎么做公司网站能自己做吗
  • 2345网址导航手机杭州网站seo价格
  • 专门做活动的网站湛江网站建设招聘
  • 贵阳城乡和住房建设厅网站遵义网站建设公司
  • 做网贷中介网站赚钱吗厦门网站流量优化价格
  • 建设校园网站的必要性甘肃省专业做网站