- 1、本文档共144页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C03-并行计算培训-基本的MPI编程技术
基本的MPI编程技术
谭光明 博士
tgm@ncic.ac.cn
中国科学院计算技术研究所
国家智能计算机研究开发中心
计算机体系结构国家重点实验室
什么是MPI?
• Massage Passing Interface:是消息传递函
数库的标准规范。
• 由MPI论坛开发.支持Fortran 、C和C++ 。
• 一种新的库述, 不是一种语言.
消息传递并行程序设计
• 消息传递并行程序设计
– 用户必须通过显式地发送和接收消息来实现处理机间的数据交换。
– 每个并行进程均有自己独立的地址空间,相互之间访问不能直接进行,
必须通过显式的消息传递来实现。
– 这种编程方式是大规模并行处理机(MPP )和机群(Cluster )采用的
主要编程方式。
• 并行计算粒度大,特别适合于大规模可扩展并行算法
– 由于消息传递程序设计要求用户很好地分解问题,组织不同进程间的
数据交换,并行计算粒度大,特别适合于大规模可扩展并行算法.
• 消息传递是当前并行计算领域的一个非常重要的并行程序设
计方式
3/122
从简单入手!
• 下面我们首先分别以C语言和Fortran语言
的形式给出一个最简单的MPI并行程序
Hello (下页).
• 该程序在终端打印出Hello World!字样.
• “Hello World”:一声来自新生儿的问候.
4/122
Hello world (C)
#include stdio.h
#include mpi.h“
main(
int argc,
char *argv[] )
{
MPI_Init( argc, argv );
printf( Hello, world!\n );
MPI_Finalize();
}
5/122
Hello world (Fortran)
program main
include ‘mpif.h’
integer ierr
call MPI_INIT( ierr )
print *, Hello, world!
call MPI_FINALIZE( ierr )
end
6/122
编译、安装MPI
• cd /home/chen
• tar -xvzf openmpi-1.6.3.tar.gz
• cd openmpi-1.6.3
• ./configure –prefix=/opt/openmpi
• make
• sudo make install
MPI程序的的编译与运行
• mpif77 hello.f 或 mpicc hello.c
– 默认生成a.out 的可执行代码.
• mpif77 –o hello hello.f 或 %小写o
• mpicc –o hello hello.c
– 生成hello 的可执行代码.
% np:
文档评论(0)