120 likes | 349 Views
什么是 MPI?. MPI(Message Passing Interface ) MPI 是一个库,而ä¸æ˜¯ä¸€é—¨è¯è¨€ï¼› MPI 是一ç§æ ‡å‡†æˆ–规范的代表 ,而ä¸ç‰¹æŒ‡æŸä¸€ä¸ªå¯¹å®ƒçš„具体实现; MPI 是一ç§æ¶ˆæ¯ä¼ 递编程模型 ,并æˆä¸ºè¿™ç§ç¼–ç¨‹æ¨¡åž‹çš„ä»£è¡¨å’Œäº‹å®žä¸Šçš„æ ‡å‡†ï¼›. MPI 的历å². MPI åˆç¨¿ : 美国并行计算ä¸å¿ƒå·¥ä½œä¼šè®®ï¼ˆ 92 å¹´ 4 月) MPI-1 公布:第一届 MPI 大会( 93 å¹´ 1 月) MPI æ ‡å‡†æ£å¼å‘布: 1994 å¹´ 5 月 MPI-1.1 å‘布: 1995 å¹´ 6 月
E N D
什么是MPI? MPI(Message Passing Interface ) • MPI是一个库,而不是一门语言; • MPI是一种标准或规范的代表,而不特指某一个对它的具体实现; • MPI是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准;
MPI的历史 • MPI初稿:美国并行计算中心工作会议(92年4月) • MPI-1公布:第一届MPI大会(93年1月) • MPI标准正式发布:1994年5月 • MPI-1.1发布:1995年6月 • MPI-2发布:(以前的版本统称MPI-1) 1997年7月
MPI的实现 MPICH:最重要的MPI实现 • 与MPI-1规范同步发展的版本 • 支持部分MPI-2的特征(如动态生成进程等) LAM(Local Area Multicomputer) • Ohio State University开发 • 它主要用于异构的计算机网络计算系统
下载地址 • MPICH(最新版本1.2.7) http://www-unix.mcs.anl.gov/mpi/mpich/ • LAM-MPI(最新版本7.1.2) http://www.lam-mpi.org/download/
机房环境 • 软件部分 操作系统:RedHat Enterprise Linux AS4 Mpi实现:MPICH-1.2.7 • 硬件部分 每个集群系统4个刀片(每片主要参数): 2CPU (Xeon3.2GHZ),2GB RAM,2(4)个千兆网卡,2个SCSI硬盘
机房集群简介 • 一个主节点(一个刀片) 启用双网卡,设置内/外网IP地址,用于用户登陆、提交调试程序、管理员管理集群等。主节点开启SSH、Ftp等服务。 • 三个从节点 用于从主节点接受计算任务并执行计算(返回结果)。从节点开启SSH服务。 节点之间的通信通过SSH协议来实现
集群使用简介 • 用户可以使用SSH远程登陆主节点,推荐使用工具secureCTR或者Putty. • 用户提交数据使用Ftp上传,推荐使用工具cuteFtp.
MPI程序的编译 • 用户登陆之后,可以对提交的程序进行调试,调试命令为: • (c )mpicc –o yourproc yourproc.c • (c++)mpiCC –o yourproc yourproc.cpp • (f77)mpif77 –o yourproc yourproc.f • (f90)mpif90 –o yourproc yourproc.f90 • 更多的参数选项,请使用–help得到帮助
MPI程序的运行 • mpirun –np NUM yourproc 其中NUM表示用户需要开启的进程数 yourproc是编译后的可执行程序名,默认是a.out 更多的参数选项,请使用–help 得到帮助
例子演示 • 计算Pi的值
共享存储编程 • OpenMP应用编程接口API是在共享存储体系结构上(如SMP)的一个编程模型. • OpenMP包含编译制导(Compiler Directive)、运行库例程(Runtime Library)和环境变量(Environment Variables) • OPenMP也和c/c++/fortran语言绑定
OpenMP并行编程模型 • 基于线程的并行编程模型 • 使用Fork-Join并行执行模型: • 主线程根据需要创建一组子线程进行工作分担. • 可对串行程序进行逐步并行化.