MPI与OpenMP 基本使用

本文详细介绍了并行编程的两种关键技术:MPI(Message Passing Interface)和OpenMP。MPI适用于多进程并行计算,通过消息传递实现任务分布;而OpenMP则侧重于多线程并行处理,利用共享内存进行数据交换。文章提供了如何在C/C++中使用这两种技术的具体步骤,包括代码示例、编译和运行命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MPI

注意,MPI是多进程的。

1.在程序中加入MPI支持:

加入头文件mpi.h,并在程序开头做初始化,退出时,关闭MPI。

 

2.编译:

 

c文件用mpicc编译,c++文件用mpicxx编译。如:

$ mpicxx how_to_use_mpi.cpp -o how_to_use_mpi

3.运行:

mpirun使用mpi运行程序,-n参数指定进程数:

$ mpirun -n 4 ./how_to_use_mpi

 

OpenMP

1. 在C/C++和Fortran中,都有编译器支持OpenMP,不需要额外安装。注意,OpenMP是多线程的。

2.以c文件为例,介绍OpenMP的编程使用:

#include <stdio.h>
#ifdef _OPENMP
#include <omp.h>
#endif

int main() {
#pragma omp parallel
    printf("is parallel ! \n");  
    printf("is sequential \n");
}

3.编译:

$ gcc -fopenmp omp.c -o omp

-fopenmp编译选项告诉编译器,编译omp.c时,要传入宏_OPENMP。

3.运行:

指定线程数,这里使用4个线程:

$ export OMP_NUM_THREADS=4

可以看到#pragma omp parallel后面紧跟的一句指令执行了4次。如果不止一条指令,可以用{}指定。

 

参考:

https://my.oschina.net/zctzl/blog/1560593

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值