高性能矩阵乘法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
partitioning and Cannon Algorithm
2020/6/18
8
Cannon
• Objective
– Computing the matrix-matrix multiplication on SMP System. Use block checkerboard partitioning of the matrices and Cannon's Algorithm.
2020/6/18
9
Cannon
Cannon's algorithm is based on cartesian virtual topology
A and B are square matrices of size n and C be the output matrix.
These matrices are dived into blocks or submatrices to perform matrixmatrix operations in parallel
• Assumption
– Size of the square matrices p= q2 and the size of square matrices A and B is evenly divisible by q. It is assumed that the number of blocks are equal to the number of processors.
• 基于分之思想的两种划分策略:条形划分和 块状(棋盘)划分的6种常见分布式矩阵乘法并 行算法。
2020/6/18
5
基于不同划分策略的矩阵乘法算法探讨
1、条形(striped partitioning)划分的矩阵乘法并行算法
行条划分
列条划分
两两组合:行列、行行、列列、列行
2020/6/18
6
基于不同划分策略的矩阵乘法算法探讨
工作
• 可扩展性:衡量在性能更加强劲的系统上运行软件时能否有效利用更多线程的指
标,
观察应用程序在更高级的平台上运行
4核到8核线性增长
2020/6/18
2
Fra Baidu bibliotek
多线程(核)设计主要分解模式
• 任务分解: 对程序根据其执行的功能进行分解的过程
• 数据分解: 将应用程序根据各任务所处理的数据而非按任务的天然特性来进行分解
12
传统并行
Process Pi, j initially store block matrices Ai, j and Bi, j and computes block Ci, j of result matrix.
To compute submatrix Ci, j , we need all submatrices , Ai, k and Bk, j ( 0 <= k < q ) . To
n x n matrix A can be regarded as q x q array of blocks Ai, j (0<=i <q, 0<= j < q) such that each block is an (n/q) x (n/q) submatrix
We use p processors to implement the block version of matrix multiplication in parallel by choosing q as a square root of p and
常用于GUI应用程序
多个线程对不同的数据块执行 常用于音频、图像处理和科学计
相同的操作
算应用程序
一个线程的输出作为另一个线 程的输入
尤其应注意尽量消除启动和排空 延迟
4
矩阵乘法算法探讨
• 在工程科学计算中,矩阵乘积是最基本的运 算
• 典型的n阶稠密方阵乘积算法的时间复杂度 是O(n3) 。
• 目前对大型矩阵乘积运算的处理主要是采用 分治思想,将矩阵分布在多个节点上,但每个 结点上的小矩阵仍要立方级乘法次数。
高性能矩阵乘法
夏霏 xiafei@mail.ustc.edu.cn
2020/6/18
1
并行算法优化研究相对于传统面向对象串行算法的4个挑战:
• 同步:两个或者多个线程协调其行为的过程
• 通信:与线程之间交换数据相关的带宽和延迟问题
• 负载均衡:多个线程之间工作量分布的情况,给各个线程(执行核)分配均匀的
of size (n/q x n/q) on each process.
These blocks are mapped onto a q x q logical mesh of processes. The
processes are labeled from P0,0 to Pq-1,q-1.
2020/6/18
• 数据流分解:
问题
研究数据在诸任务之间如何流动,根据任务之间的数据流关系对 进行分解
模式
分解方式
任务级并行模式 Divide and Conquer
几何分解模式 流水线模式 波峰(wavefront)模式
任务分解 任务/数据分解
数据分解 数据流分解 数据流分解
2020/6/18
3
多线程(核)设计主要分解模式
• 任务分解: 对程序根据其执行的功能进行分解的过程
• 数据分解: 将应用程序根据各任务所处理的数据而非按任务的天然特性来进行分解
• 数据流分解:
研究数据在诸任务之间如何流动,根据任务之间的数据流关系对问题 进行分解
分解方式
设计
说明
任务分解 数据分解 数据流分解
2020/6/18
不同的程序行为采用不同的线 程实现
2、块状划分(checkerboard partitioning)的矩阵乘法并行算法
称为棋盘划分
2020/6/18
7
Cannon
Description for implementation of MPI program to compute Matrix Matrix
Multiplication using block checkerboard
compute a distinct block Ci, j on each processor.
2020/6/18
10
传统并行
2020/6/18
11
传统并行
The matrices A and B are partitioned into p blocks, A i, j and B i, j (0<=i < q, 0<= j < q)
相关文档
最新文档