MPI学习之路(一)

来源:互联网 发布:ubuntu 文件夹root权限 编辑:程序博客网 时间:2024/05/24 00:35

       今天不写C++相关的东西,来分享一下MPI。随着机器学习和分布式计算逐渐流行,这个东西也开始被人关注得多了。MPI不是一种编程语言,也不是专门只某个库,而是一套标准。这套东西专门用于多进程的通信,用于构建多进程并行计算的模型,在HPC领域中是一项极其重要的技术。总的来说,MPI入门不是很难,因为很多东西都是封装好了直接使用现成的方法就行,不过MPI的优化却有很多值得挖掘的地方。我也会慢慢写出来分享,同时自己也会重新学习这部分内容,加深对这门技术的理解。
       MPI目前支持C/C++/FORTHAN,前面两个估计都用过,FORTHAN估计用过的人很少,也是比较古老的东西了,目前这几门语言也是HPC中最常用的语言。下面,展示一个非常简单MPI demo程序,非常经典的hello world。

#include "mpi.h" #include <stdio.h>#include <math.h> int main(){    int myid, numprocs;    int namelen;    char processor_name[MPI_MAX_PROCESSOR_NAME];    MPI_Init(&argc,&argv);    MPI_Comm_rank(MPI_COMM_WORLD,&myid);    MPI_Comm_size(MPI_COMM_WORLD,&numprocs);    MPI_Get_processor_name(processor_name,&namelen);    fprintf(stderr,"Hello World! Process %d of %d on %s\n",myid,numprocs, processor_name);    MPI_Finalize();}

上面就是一个非常简单的MPI程序,里面使用最基本的MPI初始化和结束的一些方法,但是还没有涉及到具体的进程数据通信,这个以后会慢慢写出来分享,这个只是作为一个引子先让大家看看MPI的程序到底啥样。

0 0
原创粉丝点击