MPI和OpenMP程序设计实验报告

2018-12-22 21:41

一、实验目的及要求

熟悉MPI编程环境,掌握MPI编程基本函数及MPI的相关通信函数用法,掌握MPI的主从模式及对等模式编程;

熟悉OpenMP编程环境,初步掌握基于OpenMP的多线程应用程序开发,掌握OpenMP相关函数以及数据作用域机制、多线程同步机制等。 二、实验设备(环境)及要求

Microsoft Visual Studio .net 2005 MPICH2

Windows 7 32位

Intel Core2 Duo T5550 1.83GHz 双核CPU 2GB内存 三、实验内容与步骤

1. 配置实验环境

http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads 处下载MPICH2,并安装。

将安装目录中的bin目录添加到系统环境变量path中。

以管理员身份运行cmd.exe,输入命令smpd -install -phrase ***。***为安装时提示输入的passphrase。

运行wmpiregister.exe,输入具有系统管理员权限的用户名及密码,进行注册。 配置vs2005,加入MPICH2的包含文件,引用文件和库文件,如下图。

配置项目属性,添加附加依赖项mpi.lib,如下图。 VS2005支持OpenMP,只需在项目属性中做如下配置。

2. 编写MPI程序

题目:一个小规模的学校想给每一个学生一个唯一的证件号。管理部门想使用6位数字,但不确定是否够用,已知一个“可接受的”证件号是有一些限制的。编写一个并行计算程序来计算不同的六位数的个数(由0-9组合的数),要求满足以下限制:

? 第一个数字不能为0;

? 两个连续位上的数字不能相同; ? 各个数字之和不能为7、11、13

代码如下。 #include \#include #include

#define NUM 6

#define MAX 999999 #define MIN 100000

int check(int n) {

int i, x, y, sum;

if (n < MIN) { return -1; }

sum = 0;

for (i=1; i

if (sum==7 || sum==11 || sum==13) { return -1; }

return 0; }

void main(int argc, char **argv) {

int myid, numprocs, namelen;

char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Status status;

double startTime, endTime; int i, mycount, count;

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);

if (myid == 0) { startTime = MPI_Wtime(); }

mycount = 0;

for (i=myid; i<=MAX; i+=numprocs) { if (check(i) == 0) { mycount++; } }

printf(\%d of %d on %s get result=%d\\n\myid, numprocs, processor_name, mycount);

if (myid != 0) { MPI_Send(&mycount, 1, MPI_INT, 0, myid, MPI_COMM_WORLD); } else { count = mycount; for (i=1; i

MPI_Finalize(); }

计算量平均分给每个进程,每个进程将自己计算的部分结果发送给0号进程,由0号进程将结果相加,并输出。

MPI_Init函数进行MPI的初始化,MPI_Comm_size函数获得相关进程数,MPI_Comm_rank函数获得该进程在指定通信因子中的进程号,MPI_Get_processor_name获得进程名。

其他进程使用MPI_Send函数将自己计算的结果发送给0号进程,0号进程使用MPI_Recv函数接受其他进程发送来的结果。

3. 编写OpenMP程序


MPI和OpenMP程序设计实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:邻二氮菲分光光度法测定微量铁

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: