《I并行程序设计》ppt课件_第1页
《I并行程序设计》ppt课件_第2页
《I并行程序设计》ppt课件_第3页
《I并行程序设计》ppt课件_第4页
《I并行程序设计》ppt课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MPI并行程序设计提纲1. MPI的定义2. 系统配置3. MPI编程解析4. MPI实例提纲1. MPI的定义2. 系统配置3. MPI编程解析4. MPI实例MPI的定义 n关于关于MPIMPI三个不同侧面的定义三个不同侧面的定义对对MPIMPI的定义是多种多样的,但不外乎下面三个方的定义是多种多样的,但不外乎下面三个方面,它们限定了面,它们限定了MPIMPI的内涵和外延。的内涵和外延。n(1)MPI(1)MPI是一个库,而不是一门言语。是一个库,而不是一门言语。许多人以为许多人以为MPIMPI就是一种并行言语,这是不准确的。就是一种并行言语,这是不准确的。但是按照并行言语的分类,可以把但

2、是按照并行言语的分类,可以把FORTRAN+MPIFORTRAN+MPI或或C+MPIC+MPI,看作是一种在原来串行言语根底之上扩展后得,看作是一种在原来串行言语根底之上扩展后得到的并行言语。到的并行言语。nMPIMPI库可以被库可以被FORTRAN77/C/Fortran90/C+FORTRAN77/C/Fortran90/C+调用,从语法上说,它调用,从语法上说,它遵守一切对库函数遵守一切对库函数/ /过程的调用规那么,和普通的函数过程的调用规那么,和普通的函数/ /过程没有什么区别。过程没有什么区别。MPI的定义n(2) MPI(2) MPI是一种规范或规范的代表,而不特指某一个对是一

3、种规范或规范的代表,而不特指某一个对它的详细实现。它的详细实现。迄今为止,一切的并行计算机制造商都提供对迄今为止,一切的并行计算机制造商都提供对MPIMPI的支持,可以在网上免费得到的支持,可以在网上免费得到MPIMPI在不同并行计算在不同并行计算机上的实现机上的实现(mpich/chimp/lam)(mpich/chimp/lam),一个正确的,一个正确的MPIMPI程序,程序,可以不加修正地在一切的并行机上运转。可以不加修正地在一切的并行机上运转。n(3)MPI(3)MPI是一种音讯传送编程模型,并成为这种编程模是一种音讯传送编程模型,并成为这种编程模型的代表和现实上的规范。型的代表和现实

4、上的规范。nMPIMPI虽然很庞大,但是它的最终目的是效力虽然很庞大,但是它的最终目的是效力于进程间通讯。于进程间通讯。提纲1. MPI的定义2. 系统配置3. MPI编程解析4. MPI实例系统配置n必需的软件包nmpich2-*.*.tar.gz (/pub/mpi/)nbinutils (autoconf, automake)nC compilern假设他需求用Fortran-77、Fortran-90、C+编写MPI程序,那么必需安装相应的编译器nPython 2.2 or later系统配置n安装n./configure -prefix=/usr/

5、local/mpich2 -enable-sharedlibs=gccnmakenmake installn设置环境变量nvim $HOME/.bashrcnexport PATH=/usr/local/mpich2/bin:$PATHnrootnode01 bin# which mpdn/usr/local/mpich2/bin/mpd系统配置nMPICH密令配置nmpd是mpi的进程管理器,欲启动mpi作业需首先对mpd进展配置,设置好mpd环相互通讯的密令nvim /etc/mpd.confn MPD_SECRETWORD=yourwordnchmod 600 /etc/mpd.conf

6、系统配置n本地运转程序测试nrootnode01 bin# mpd &n 1 2969nrootnode01 bin# mpdtrace -ln node01_38927 (71)nrootnode01 bin# mpiexec -n 1 /bin/hostnamen node01nrootnode01 bin# mpdallexitn rootnode01 bin#系统配置在一组结点上建立mpd环配置vim $HOME/mpd.hostsvim /etc/hosts交换密钥,使得登录结点无需输入密码ssh-keygen t rsascp cat $HOME/.ssh

7、/id_rsa.pub $HOME/.ssh/authorized_keysscp /etc/mpd.conf启动mpdboot -n -f mpd.hosts系统配置n查看mpd环的信息nrootnode01 # mpdboot -n 10 -f mpd.hosts nrootnode01 # mpdtrace -lnnode01_52737 (71)nnode05_57874 (75)nnode10_46474 (80)nnode04_44059 (74)nnode03_39268 (1

8、73)nnode02_41483 (72)nnode08_57202 (78)nnode09_45880 (79)nnode07_54456 (77)nnode06_37627 (76)系统配置n运转及调试MPI作业nmpiexec n process_num host host_name executablenmpiexec gdbnmpiexec -helpnmpdlistjobs提纲1. MPI的定义2. 系统配置3. MPI编程解析4

9、. MPI实例nC言语MPI程序的典型构造:n #include “mpi.hn n int main(int argc, char *argv)n n int myrank, size;n int namelen;n char processor_nameMPI_MAX_PROCESSOR_NAME; n MPI_Init(&argc,&argv);n MPI_Comm_rank(MPI_COMM_WORLD,&myrank);n MPI_Comm_size(MPI_COMM_WORLD,&size);n MPI_Get_processor_name(processor_name,&name

10、len); n MPI_Finalize();n nMPI编程解析头文件头文件变量声明变量声明MPI程序初始化程序初始化MPI程序执行部分程序执行部分MPI程序终了程序终了nMPI点对点音讯传送nMPI_Send(void * buf, int count, MPI_Datatype datatype,nint dest, int tag, MPI_Comm comm)nMPI_Recv(void * buf, int count, MPI_Datatype datatype,nint source, int tag, MPI_Comm comm,MPI_Status status)MPI编程

11、解析进程0进程1MPI_SendMPI_RecvMPI群体通讯广播 (Broadcast) :Int MPI_Bcast ( void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm ) MPI_Bcast 是从一个序号为 root 的进程将一条音讯广播发送到进程组内的一切进程。MPI编程解析n例:进程 0 向组内其他进程广播发送100个整型数。nMPI_Comm comm; nint array 100; nint root = 0;n.nMPI_Bcast ( array , 100 , MPI_INT

12、, root , comm ); 进程0进程1进程n-1MPI编程解析MPI群体通讯归约(Reduce) :int MPI_Reduce ( void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm )MPI_Reduce将组内每个进程输入缓冲区中的数据按 op 操作组合起来,并将其结果前往到序号为 root 的进程的输出缓冲区中。MPI编程解析reduce操作:进程0进程1进程n-1 : :reduce( );reduce( ); : : : :reduce( );reduce( ); : : : :reduce( );reduce( ); : :MPI编程解析提纲1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论