实验2 Cannon算法的MPI并行程序

时间:2024.3.31

     

              

课程名称:并行计算

实验名称:Cannon算法的MPI实现及性能分析

    名:

    号:

    级:

实验日期:


一.     实验目的

1) 用MPI语言实现Cannon矩阵乘法;

2) 对并行程序进行简单的性能分析。

二.     实验环境

1) 硬件环境:32核CPU、32G内存计算机;

2) 软件环境:Microsoft Visual Studio 2008;

3) 登录方式:通过远程桌面(mstsc)连接hpc.szu.edu.cn:801,用户名和初始密码都是自己的学号。

三.     实验内容

1. 用MPI语言编写Cannon矩阵乘法,实现两个n阶方阵ab的相乘程序,结果存放在n阶方阵方阵c中。在下面写出程序代码。

方阵ab的初始值如下:

a=b=

输入:

方阵的阶n

输出:

程序的执行时间t

提示:

计算执行时间用MPI_Wtime()函数,同时发送接收消息用MPI_Sendrecv()函数。

2. 分析Cannon矩阵乘法的执行时间和加速比(串行执行时间/并行执行时间):方阵阶固定为1000,节点数分别取1、4、9和16时,为减少误差,每项实验进行5次,取平均值作为实验结果。

答:

表1 不同节点数下程序的执行时间(秒)和加速比


第二篇:MPI并行程序设计实例教程


MPI并行程序设计实例教程

编辑推荐

◆书中内容侧重于以MPI库为基础开发并行应用程序,对MP规范定义的各项功能和特征在阐述其特点基础上均配以实例加以说明和印证。

  ◆书中所附实例尽量采用独立的功能划分,其中的代码片段可直接用于并行应用程序开发  ◆在讲述基本原理的同时,注重对各项消息传递和管理操作的功能及局限性、适用性进行分析从而使熟读此书的读者能够编写出适合应用特点,易维护、高效率的并行程序。

  ◆与本书配套的电子教案可在清华大学出版社网站下载。

本书简介

本书旨在通过示例全面介绍MP1并行程序开发库的使用方法、程序设计技巧等方面的内容,力争完整讨论MP1规范所定义的各种特征。主要也括MPI环境下开发并行程序常用的方法、模式、技巧等内容。在内容组织上力求全面综合地反映MPl-1和MPI-2规范。对MPI所定义的各种功能、特征分别

给出可验证和测试其工作细节的示例程序

目录

第1章 MPI并行环境及编程模型

 1.1 MPICH2环境及安装和测试

  1.1.1 编译及安装

  1.1.2 配置及验汪

  1.1.3 应用程序的编译、链接

  1.1.4 运行及调试

  1.1.5 MPD中的安全问题

 1.2 MPI环境编程模型

  1.2.1 并行系统介绍

  1.2.2 并行编程模式

  1.2.3 MPI程序工作模式

 1.3 MPI消息传递通信的基本概念

  1.3.1 消息

  1.3.2 缓冲区

  1.3.3 通信子

  1.3.4 进样号和进程纰

  1.3.5 通价胁议

  1.3.6 隐形对象

第2章 点到点通信

 2.1 阻糍通信

  2.1.1 标准通信模式

  2.1.2 缓冲通信模式

  2.1.3 就绪通信模式

  2.1.4 同步通信模式

  2.1.5 小结

 2.2 非阻塞通信

  2.2.1 通信结束测试

  2.2.2 非重复的非阻塞通信

  2.2.3 可醺复的非阻塞通信

  2.2.4 Probe和Cancel

 2.3 组合发送接收

  2.3.1 MPl_Send,MPI_RecvoMPl_Sendreev

  2.3.2 MPI_Bsend←→MPl_Sendrecv

  2.3.3 MPI_Rsend←→MPI_Sendrecv

  2.3.4 MPl_Ssend←→MPl_Sendrecv

  2.3.5 MPl_lsend←→MP1一Sendrecv

  2.3.6 MPl_Ibsend←→MPI_Sendrecv

  2.3.7 MPI_Irsend←→MPI_Sendrecv

  2.3.8 MPl_Issend,MPI_Irecv←→MPI_Sendrecv  2.3.9 MPI Send_init←→MPl_Sendrecv

  2.3.10 MPI一Bsendj init←→MPl_Sendrecv

  2.3.11 MPI_Rsend_init←→MPI_Sendrecv

  2.3.12 MPl_Ssend_init,MPl_Recv_init←→MPl_Sendrecv 2.4 点到点通信总结

  2.4.1 关于预防死锁

  2.4.2 关于阻塞与非阻塞、同步与异步  2.4.3 关于操作的执行顺序及“公平性”

第3章 组与通信子

 3.1 简介

 3.2 组管理API

  3.2.1 组的构建及取消

  3.2.2 访问组的相关信息和属性

 3.3 组问通信

  3.3.1 创建与取消

  3.3.2 访问通信子信息

 3.4 组间通信

  3.4.1 访问函数

  3.4.2 构造和取消函数

 3.5 属性

  3.5.1 创建及释放属性操作

  3.5.2 访问属性操作

  3.5.3 设置及删除属性操作

  3.5.4 命名通信子对象

 3.6 错误处理

 3.7 组及通信子的小结

第4章 集合通信

 4.1 1←→N

  4.1.1 MPI_Bcast

  4.1.2 MPI_Scatter/MPI_Scatterv

 4.2 N←→1

  4.2.1 MPl_Gather/MPI_Gatherv

  4.2.2 MPI_Reduce

 4.3 N←→N

  4.3.1 MPI_Allgather/MPI_Allgatherv.  4.3.2 MPI_Allreduce

  4.3.3 MPl_Reduce scatter

  4.3.4 MPI_Alltoall/MPI Alltoallv/MPI_Alltoallw  4.3.5 MPI_Scan/MPI_Exscan

 4.4 同步操作--MPI_Barrier

第5章 数据类型

 5.1 类型图

 5.2 与数据类型相关的API函数

  5.2.1 创建

  5.2.2 访问

  5.2.3 注册与取消

 5.3 数据类型在通信函数缓冲区的构成 5.4 数据类型的属性

  5.4.1 属性创建与释放

  5.4.2 属性操作  

  5.4.3 复制数据类型

  5.4.4 类型属性举例

  5.4.5 数据类型命名

 5.5 数据类型的析构

  5.5.1 获取创建数据类型MPI函数所使用参数数量信息  5.5.2 获取创建数据类型MPI函数所使用实际参数信息  5.5.3 示例

 5.6 打包/解包

第6章 进程拓扑

第7章 动态进程管理

第8章 单向通信/远端内存访问

第9章 并行I/O

第10章 MPI与外部环境的信息交互

第11章 MPE

参考文献

下载后 点击此处查看更多内容

更多相关推荐:
排序算法实验报告

实验课程算法分析与设计实验名称几种排序算法的平均性能比较验证型实验实验目标1几种排序算法在平均情况下哪一个更快2加深对时间复杂度概念的理解实验任务1实现几种排序算法selectionsortinsertions...

数据结构排序算法实验报告

数据结构课程设计报告

数据结构排序实验报告

数据结构课程设计报告实验五排序一需求分析本演示程序用C60编写完成各种排序的实现对输入的一组数字实现不同的排序方法对其由小到大顺序输出1分别对直接插入排序希尔排序冒泡排序快速排序选择排序堆排序算法进行编写2对存...

查找排序实验报告

实验十查找排序计算机学院12级2班1211020xx李龙实验目的1掌握折半查找算法的思想2实现折半查找的算法3掌握常见的排序算法插入排序交换排序选择排序等的思想特点及其适用条件4能够分析各种算法的效率5熟练的掌...

算法设计与分析实验报告--排序

计算机算法设计与分析实验报告学号20xx211773姓名吕功建班级0411103实验一快速排序一实验目的1以排序分类问题为例掌握分治法的基本设计策略2熟练掌握一般插入排序算法的实现3熟练掌握快速排序算法的实现4...

排序算法比较系统实验报告

排序算法比较系统一项目计划书1项目的选题意义随着计算机科学技术的快速发展排序成为了计算机程序设计中的一种重要操作它在计算机图形计算机辅助设计机器人模式识别及统计学等领域具有广泛应用在实际应用当中比如数据统计等方...

实验报告-各种排序方法及其实现

计算机学院实验报告专用纸实验室网络实验室机号网38实验日期20xx年6月25日1计算机学院实验报告附页2计算机学院实验报告附页3计算机学院实验报告附页4计算机学院实验报告附页5计算机学院实验报告附页6计算机学院...

算法分析与设计实验报告-合并排序、快速排序

实验报告实验一合并排序快速排序一实验目的1学习合并排序和快速排序算法的思想掌握原理2运用合并排序和快速排序算法的思想进行编程实现以加深理解二实验内容1输入几个整数运用合并排序的思想进行编程实现输出正确的排序结果...

排序C++程序实验报告

北京邮电大学信息与通信工程学院数据结构实验报告实验名称实验四排序学生姓名班级班内序号学号日期1实验要求使用简单数组实现下面各种排序算法并进行比较排序算法1插入排序2希尔排序3冒泡排序4快速排序5简单选择排序6堆...

排序法实汇编编程实验报告

实验二排序程序设计编程训练一.实验目的和要求1.利用分支、循环、子程序调用等基本程序结构实现排序程序2.掌握综合程序的设计、编制及调试方法二.实验算法1.,从最后一个数(或第一个数)开始,依次把相邻的两个数进行…

几种排序算法的平均性能比较(实验报告)

实验课程算法分析与设计实验名称几种排序算法的平均性能比较验证型实验实验目标1几种排序算法在平均情况下哪一个更快2加深对时间复杂度概念的理解实验任务1实现几种排序算法selectionsortinsertions...

排序算法实验报告

排序算法实验报告内部排序算法比较主要实验内容对各种内部排序算法进行比较要求1任意输入5组各50个数据2对冒泡排序直接插入排序简单选择排序快速排序堆排序的关键字比较和交换次数进行统计源程序代码主函数文件sortc...

排序算法实验报告(36篇)