MPICH2在VS2022中环境配置并实现两个演示程序

mpich2下载链接https://www.mpich.org/static/downloads/1.4.1p1/

 MPICHP2安装可以参考:win10下安装MPICH2(已经排坑,成功运行)_风流潇洒云中子的博客-CSDN博客

一、在VS2022中的配置:

1.首先新建一个C++控制台程序:

2.在属性中配置

3.配置选择所有配置,在左侧找到C/C++,编辑附加包含目录:

先点击图标新建,然后点击后面那三个点:

选择MPICH2安装所在文件夹中的include文件夹:

默认安装在C盘路径一般是C:\Program Files\MPICH2\include

4.在属性页面,在左侧找到“链接器”,编辑附加库目录:

先点击图标新建,然后点击后面那三个点:

选择MPICH2安装所在文件夹中的lib文件夹:

默认安装在C盘路径一般是C:\Program Files\MPICH2\lib

5.在属性页面,在左侧找到“链接器”,展开“链接器”,点击“输入”,在右侧第一项“附加依赖项”,前面加上“mpi.lib;”,末尾有分号。

最后点击应用,确定,配置完成。

二、命令行测试,演示Hello world:

1.运行控制台程序所生成的初始文件

.

2.在文件资源管理器中打开文件夹:

3.在Debug文件夹中找到.exe可执行文件,debug文件夹在x64里面

4.复制当前文件夹所在路径D:\code_test\test\x64\Debug

5.Win + R输入并打开cmd,先输入cd + MPICH2安装文件夹bin所在路径,MIPCH2 C盘安装bin默认路径为C:\Program Files\MPICH2\bin

输入cd C:\Program Files\MPICH2\bin

6.再输入“mpiexec -n 6 D:\code_test\test\x64\Debug\test”,前面复制过路径D:\code_test\test\x64\Debug,该命令行中的路径处可以用粘贴方式输入 。

“-n 6”是参数,是指6个进程,后面就是路径 + .exe文件名。

配置环境变量在cmd命令中就可以不用每次都cd+路径 

此电脑+右键属性+高级系统设置+环境变量+系统变量+PATH+新建+C:\Program Files\MPICH2\bin

三.两个演示程序的实现

1.第一个演示程序代码:

 	#include <stdio.h>
 	#include <mpi.h>
 	int main(int argc, char * argv[])
 	{
 	  int myrank, nprocs;
 	  // 初始化MPI环境
 	  MPI_Init(&argc, &argv);
 	  // 获取当前进程在通信器MPI_COMM_WORLD中的进程号
 	  MPI_Comm_size (MPI_COMM_WORLD, &nprocs);
 	  MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
 	  printf("Hellow, world! %dth of totalTaskNum = %d\n", myrank, nprocs);
 	  MPI_Finalize();
 	  return 0;
 	}

2.第二个演示程序代码:

#include <stdio.h>
#include "mpi.h"
#include <windows.h>


int main(int argc, char* argv[])
{
	int myrank, nprocs, name_len, flag;
	double start_time, end_time;
	char host_name[20];

	MPI_Initialized(&flag);
	//fprintf(stderr, "flag:%d/n", flag);

	MPI_Init(0, 0);

	MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
	MPI_Comm_size(MPI_COMM_WORLD, &nprocs);

	MPI_Get_processor_name(host_name, &name_len);

	if (myrank == 0)
	{
		fprintf(stderr, "Precision of MPI_WTIME(): %f.\n", MPI_Wtick());
		fprintf(stderr, "Host Name:%s\n", host_name);
	}

	start_time = MPI_Wtime();
	Sleep(myrank * 3);
	end_time = MPI_Wtime();

	fprintf(stderr, "flag:%d/nmyrank: %d. I have slept %f seconds.\n", flag, myrank, end_time - start_time);


	MPI_Finalize();
	return 0;
}

将代码替换上面的控制台应用程序所生成的初始代码,若新建工程后VS2022需要重新配置,参照上面内容。

调用MPI演示程序:

第一个演示程序:

在cmd命令中输入

mpiexec -n 8 D:\code_test\test\x64\Debug\test

mpiexec -n 16 D:\code_test\test\x64\Debug\test

8个进程并行运行,16个进程并行运行,运行次序随机显示。

第二个演示程序:

在cmd命令中输入

mpiexec -n 16 D:\code_test\test\x64\Debug\test

16个进程并行运行,运行次序随机显示。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值