本文主要是介绍MPI与OpenMP 基本使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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>
#endifint main() {
#pragma omp parallelprintf("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
这篇关于MPI与OpenMP 基本使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!