并行与分布式计算导论(一)衡量并行程序好坏的指标

并行与分布式计算:衡量并行程序好坏的指标(一)

介绍

写给普通学习者: 本文及其后续系列是一套详尽的并行计算与分布式计算,openMP及MPI的入门教程

写给P大学子: 由于授课英语太塑料了,我的学术英语也太差了,并分导的课堂上我总是处于游离边缘。因此我特别在学习之余总结了并分导授课的主要内容(内容来自PPT和教材的阅读),以供后人使用。阅读本系列你将获得:

  • 罗老师并分导的全部知识点(还有分支去梳理考点噢)
  • 所有作业及其详解
  • 用半小时完成两小时塑料英语课堂的学习(ppt reader已经很过分了,用的还是塑料英语)

特别说明,由于Lecture1除了speedup怎么算什么solid的东西都没有,在这里就不着重写了

为了方便,下文将MPI与OpenMP并行程序设计:C语言版(By Michael J. Quinn)简称为教材

特别的,对于P大学子,推荐阅读完教材的第三章之后直接跳到第十七章去学OpenMP

Section 1 衡量并行程序好坏的指标

一言以蔽之,进行并行与分布式计算的原因就是把搬砖的工作分给10个人搬起来就比1个人快

我们很自然的关注快了多少——也就是加速比(Speedup)的问题

  • A m d a h l ′ s   L a w Amdahl's\ Law Amdahls Law
    S p e e d u p = o n e   t h r e a d   e x e c u t i o n   t i m e n   t h r e a d   e x e c u t i o n   t i m e = 1 ( 1 − p ) + p / n Speedup=\frac{one\ thread\ execution\ time} {n\ thread\ execution\ time}=\frac 1 {(1-p)+p/n} Speedup=n thread execution timeone thread execution time=(1p)+p/n1
    其中, p p p是程序可并行的部分( P a r a l l e l   f r a c t i o n Parallel\ fraction Parallel fraction), 1 − p 1-p 1p是程序仅串行的部分( S e q u e n t i a l   f r a c t i o n Sequential\ fraction Sequential fraction)

这个公式的内容和意义都是显然的

此外,我们还会很自然的关注另一个问题——假如我用一个人,干活的时间是二十四小时,用一千个人,干活的时间是二十三小时,那我不就是个有钱的凯子吗?——并行效率(Parallel Efficiency)

P a r a l l e l E f f i c i e n c y = o n e   t h r e a d   e x e c u t i o n   t i m e n ∗ ( n   t h r e a d   e x e c u t i o n   t i m e ) = 1 n ( 1 − p ) + p Parallel Efficiency=\frac{one\ thread\ execution\ time} {n*(n\ thread\ execution\ time)}=\frac 1 {n(1-p)+p} ParallelEfficiency=n(n thread execution time)one thread execution time=n(1p)+p1
这个公式简单来说就是作为一个老板,你不仅要考虑请一群人搬砖节约了多少时间,还要考虑为此你要雇多少人

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
并行分布式程序设计导论主要涉及并行程序设计的基本原则和方法,以及分布式计算的概念和应用。从实际工程的角度考虑,并行程序设计通常是通过改进已有的串行程序来实现的,而不是从零开始设计并行程序。这是增量并行化原则的核心思想。从并行设计的角度考虑,我们可以采用Foster的抽象模型来设计逻辑严密、结构清晰、效率高的并行程序。 Foster的设计理念包括以下四个步骤: 1. 划分数据:将问题的数据划分为多个子问题,每个子问题可以独立地进行计算。 2. 划分任务:将计算任务划分为多个子任务,每个子任务可以在不同的处理器上并行执行。 3. 通信:在子任务之间进行通信,以便共享数据或协调计算。 4. 映射:将子任务映射到可用的处理器上,以实现并行计算。 在并行程序设计中,还需要考虑任务调度算法和任务数量的动态变化。常见的任务调度算法包括静态映射和动态映射。静态映射是在程序开始执行之前确定任务到处理器的映射关系,而动态映射是在程序执行过程中根据任务的负载情况动态调整任务到处理器的映射关系。 总结起来,并行分布式程序设计导论主要包括增量并行化原则、Foster的设计理念、任务调度算法和任务数量的动态变化等内容,旨在帮助设计出高效的并行程序分布式计算系统。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值