Windows 7系统下搭建MPI(并行计算)环境

2024-01-29 17:08

本文主要是介绍Windows 7系统下搭建MPI(并行计算)环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Windows系统下搭建MPI环境

MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算。MPI的具体实现一般采用MPICH。下面介绍如何在Windows XP系统下VC6中搭建MPI环境来编写MPI程序。

一.准备工作

1.1   安装MPI的SDK——MPICH2。

mpich2-1.4.1p1-win-ia32安装程序的下载地址:

http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1-win-ia32.msi

本文以设置安装在C:\Program Files\MPICH2目录下为例。

测试所安装的MPICH2

测试前首先需要注册一个用户,具体操作如下:“开始”按钮-->所有程序-->MPICH2-->wmpiregister.exe。输入用户名、密码。有一点需要说明:该用户名须为有效的操作系统管理员账户,密码对应为系统登录密码。如图所示:

接下来选择开始-->所有程序-->MPICH2-->wmpiexec.exe;

选择Application为 c:\program files\mpich2\examples\cpi.exe (就是自带的一个计算圆周率的例子程序)。在Number of processes的数量选择2表示用二个进程来协同完成。选中“run in separate windw”选项。再点击Excute就可以执行了。

然后在控制台窗口下提示输入number of intervals ,随便输入个大点的数字(500005000000)就可以看到求的的圆周率值。如下图:

注意到上图中的Show Comman中的字符串,可以在控制台下输入应该字符串得到类似结果,这里就不再介绍了。

1.2 在VC6中添加MPICH2

先在VC6.0中加入mpi的include和lib。VC6.0程序菜单中“Tools” --> “Optains”-->“Directories”然后添加,如下图所示:

 

 

 

 

二.第一个MPI程序

加入之后,新建Win32 Console Application工程,加入如下代码:

[cpp]  view plain copy
  1. #include <mpi.h>  
  2. #include <stdlib.h>  
  3. #include <stdio.h>  
  4. #include <conio.h>  
  5.   
  6. #pragma comment (lib, "mpi.lib")   
  7.   
  8. int main(int argc, char* argv[])  
  9. {  
  10.     int myid,numprocs;  
  11.     int namelen;  
  12.     char processor_name[MPI_MAX_PROCESSOR_NAME];  
  13.       
  14.     MPI_Init(&argc, &argv);  
  15.   
  16.     //用MPI_Comm_rank 获得进程的rank,该rank值为0到p-1间的整数,相当于进程的ID  
  17.     MPI_Comm_rank(MPI_COMM_WORLD, &myid);  
  18.     //用MPI_Comm_size 获得进程个数  int MPI_Comm_size(MPI_Comm comm, int *size);  
  19.     MPI_Comm_size(MPI_COMM_WORLD, &numprocs);  
  20.   
  21.     MPI_Get_processor_name(processor_name, &namelen);  
  22.       
  23.     printf("Hello World! by MoreWindows\nProcess %d of %d on %s\n", myid, numprocs, processor_name);  
  24.       
  25.     MPI_Finalize();  
  26.       
  27.     if (myid == 1)  
  28.     {  
  29.         printf("\nPress a key and exit.\n");  
  30.         getch();  
  31.     }  
  32.     return 0;  
  33. }  

编译运行,第一个MPI程序就诞生了。下面是我电脑上的运行结果:

 

 

 

三.多台电脑上协同运行MPI

只有多台电脑集群后才能更好的发挥并行计算的威力,当然由于MPI的帮助,这个工作将变得异常简单。下面以二台PC协同运行前面提到过的cpi.exe为例。

3.1 多台电脑运行MPI的条件

第一.参加并行计算的机器须至少注册一个相同的账户,如两台PC上都注册了一个 mpi 帐号。

第二.创建JOB目录。每台机器上须有一个路径相同的目录,用于存放待执行的JOB(即 exe 程序),如创建的目录是 d:\MPI\,再将测试用的可执行文件复制到二台PC的该目录下。

 

3.2 联机执行命令解释

可以在控制台下输入"C:\Program Files\MPICH2\bin\mpiexec.exe" -help2来查看其所以参数,这里不一一介绍了,重点介绍下用于联机操作的命令:

联机执行命令: -hosts n Node_1 Node_2  ...  Node_n  -noprompt ExePath

“-hosts”表示要联机运行,n 表示有n台机器参加运算,Node_1(及Node_2 ...)为各机器的计算机名或IP。ExePath为exe的文件路径如d:\MPI\cpi.exe。

3.3 联机效果示范

可以这个结果与上面单机运行的结果作个比较。

 

不难发现,由于MPI的帮助,使用多台电脑来进行并行计算其实也是一件比较容易的事件。

 

 

转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/6823436

这篇关于Windows 7系统下搭建MPI(并行计算)环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/657600

相关文章

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处