Windows和Linux系统下并行计算环境MPI和OpenMP的搭建

目录

  • windows平台下在Visual Studio2019配置MPI环境

    • MPI下载安装
    • 项目配置
    • 测试
  • Linux下配置MPI编程环境-Ubuntu 18.04
    • 终端配置过程
  • Windows系统下OpenMP配置
    • visual studio2019配置
    • 测试

windows平台下在Visual Studio2019配置MPI环境

MPI下载安装

MPI windows版本的下载地址:https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi?redirectedfrom=MSDN

然后点击这里下载:

图中两个文件都要选择,下载。

下载完成后,点击这两个文件,都需要进行安装。

项目配置

右击项目->属性,进行配置:

  • 右上角->配置管理器->活动解决方案平台,选择:x64;
  • VC++目录->包含目录,添加:“C:\Program Files (x86)\Microsoft SDKs\MPI\Include;”
  • VC++目录->库目录,添加:“C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x64;”

  • C/C++ -> 预处理器->预处理器定义,添加:“MPICH_SKIP_MPICXX;”
  • C/C++ -> 代码生成 -> 运行库,选择:多线程调试(/MTd);
  • 链接器 -> 输入 -> 附加依赖项,添加:“msmpi.lib;”

    至此,环境就配好了,接下来就可以开始编程了。

测试

项目源文件下,新建.cpp文件,写入以下代码:

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

int main(int argc, char* argv[]) {
	int myid, numprocs;

	MPI_Init(&argc, &argv);
	MPI_Comm_rank(MPI_COMM_WORLD, &myid);
	MPI_Comm_size(MPI_COMM_WORLD, &numprocs);

	printf("%d Hello world from process %d \n", numprocs, myid);

	MPI_Finalize();

	return 0;
}

让我们来分析一下上面的代码:

对于SPMD编程,程序员必须知道(1)进程编号,(2)多少个进程,(3)进程通信

那么MPI久提供了下列函数来回答这些问题:

  • 用MPI_Comm_size 获得进程个数p:

    int MPI_Comm_size(MPI_Comm comm, int *size)

  • 用MPI_Comm_rank 获得进程的一个叫rank的值,该rank值为0到p-1间的整数,相当于进程的ID

    int MPI_Comm_rank(MPI_Comm comm, int *rank)

  • 通信组/通信子: MPI_COMM_WORLD

    一个通信组是一个进程组的集合。所有参与并行计算的进程可以组合为一个或多个通信组。

    执行MPI_Init后,一个MPI程序的所有进程形成一个缺省的组,这个组被写作MPI_COMM_WORLD

    该参数是MPI通信操作函数中必不可少的参数,用于限定参加通信的进程的范围

下面我们来运行一下,看看结果:

在控制台该项目(这里的项目名称mpi_test)下的x64/Debug文件目录下打开cmd命令行窗口(Shift+鼠标左键,选择‘在此处打开Powershell窗口‘,输入start cmd),输入mpiexec -n 10 test.exe。

运行结果如下图:

Linux下配置MPI编程环境-Ubuntu 18.04

终端配置过程

  • 在终端上先找到文件所在位置:sudo tar -zxvf mpich-3.3.2.tar.gz
  • 解压完毕,使用ls命令查看便可发现多出了一个mpich-3.3.2目录, 然后进入该目录:cd mpich-3.3.2

    使用ls查看,会发现其中有configure这个文件。

  • 运行命令./configure -prefix=/usr/local/mpich进行软件配置与检查,这里我们只设置安装目录即可。注:prefix参数是表示安装路径。

    可能会报错error: no acceptable C compiler found in $PATH

    要先使用命令sudo apt-get install build-essential安装好需要的编译器

    然后make && make install进行安装

    然后配置环境变量

Windows系统下OpenMP配置

visual studio2019配置

项目属性 --> C/C++ --> 语言 --> OpenMP支持,下拉菜单选择“是(/openmp)”,同时要将符合模式设置成“否”,否则编译会报错,如下图所示:

测试

在使用具体实例测试之前,我们先来测试一下自己的计算机是几核的。

#include<omp.h>
#include<iostream>
int main()
{
    std::cout << "parallel begin:\n";
    #pragma omp parallel
    {
        std::cout << omp_get_thread_num();
    }
    std::cout << "\n parallel end.\n";
    std::cin.get();
    return 0;
}

这是我的运行结果,所以说明处理器是8核的。

OpenMP中使用parallel指令标识代码中的并行段:

#pragma omp parallel

{

      多核并行执行的代码;

}

当编译器发现#pragma omp parallel for后,自动将下面的for循环分成N份,(N为电脑CPU核数),然后把每份指派给一个核去执行,而且多个核之间为并行执行。

下面是一个小实例:

#include <iostream>
int main()
{
#pragma omp parallel for
    for (int i=0;i<10;i++)
        std::cout<<i<<std::endl;
    return 0;
}

控制台输出:

运行结果:

原文地址:https://www.cnblogs.com/CuteyThyme/p/12652273.html

时间: 2024-10-16 20:43:04

Windows和Linux系统下并行计算环境MPI和OpenMP的搭建的相关文章

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

Linux系统下Jsp环境部署

-------本文大纲 简介 Jsp环境部署 Tomcat目录结构 SHOP++网上商城系统安装 --------------- 一.简介 JSP JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp).简单地说,jsp就是可能包含了java程序段的html文件(由ja

【转帖】Windows与Linux系统下的库介绍

Windows与Linux系统下的库介绍 http://embeddedlinux.org.cn/emb-linux/entry-level/200903/12-553.html 库的定义 库文件是一些预先编译好的函数的集合,那些函数都是按照可再使用的原则编写的.它们通常由一组互相关联的用来完成某项常见工作的函数构成,从本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 无论在Windows平台还是Linux平台下都存在大量的库,但由于Windows和Linux的本质不同,因

redis在windows和Linux系统下的下载、安装、配置

1.下载redis安装包 在redis的官网只有Linux系统下的安装包,微软的GitHub上有提供windows版本的redis安装包 redis中文网:http://www.redis.cn/ 微软redis GitHub网址:https://github.com/MSOpenTech/redis/releases 链接:https://pan.baidu.com/s/1d3fCshRXT0UBYiNejbehMA 提取码:t4l72.Windows安装 将ZIP包解压到安装路径的redis

TeamCity安装Agent(Windows和Linux系统下)

这个迭代刚好要在做TeamCity迁移工作,也算边工作边学习吧,把遇到的问题记录下来,希望能帮到有需要的胖友. 一.Windows系统下 安装与配置Agent 1.先在TeamCity服务中的导航栏中点击Administration,点击Install Build Agents,下载相应的Agent版本: 2.右键agentInstaller.exe,选择以管理员身份运行,弹出窗体如下: 3.点击Next: 4.点击I Agree,选择安装后台服务: 5.点击Next,选择安装位置: 6.设置T

Linux系统下配置环境变量

一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量. 所以管理环境变量的文件也分为系统级和用户级的,下面贴一个网上找到的讲的比较明白的文件介绍(略作修改)[1]: 1.系统级: (1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个

Windows 64 位系统下 Python 环境的搭建

Windows 64 位开发环境 注意:本教程适用于 Windows 7 64 位操作系统 及 Windows 10 64 位操作系统,其他系统尚未经过校验. 安装 IDE PyCharm 下载:https://www.jetbrains.com/pycharm/ 安装 Python 环境 Python2.7 下载:https://www.python.org/downloads/ Python2.7 的默认安装目录在 C:/Python27/,安装目录请勿转移到其他盘!有C盘洁癖症的患者请特别

linux系统下开发环境安装与配置

安装系统环境 CentOS 6.8 64位 jdk版本 7u80 64位 Tomcat版本 Tomcat7 maven版本 Apache Maven 3.6.0 vsftpd版本 vsftpd-2.2.2-24.el6.x86_64 Nginx版本 nginx-1.14.2 mysql版本 mysql-server-5.1.73-8.el6_8.x86_64 git版本 git version 2.18.0 阿里源配置 #备份 [[email protected] yum.repos.d]# m

Linux系统下修改环境变量PATH路径

方法一: PATH=$PATH:/etc/apache/bin 该方法只对当前会话有效,每次注销或者拿出系统,该设置就会无效 方法二: vi /etc/profile 在适当的位置写入:PATH=$PATH:/etc/apache/bin $PATH是默认的系统环境变量路径 /etc/apache/bin是需要添加的环境变量路径 如果修改了/etc/profile,那么编辑结束后执行source profile 或 执行点命令 ./profile,PATH的值就会立即生效了. 方法三: vi ~