【并行计算7】并行计算

Embarrassingly computations

Embarrassingly Parallel

一个计算可以分配到一系列完整独立的任务各自执行
只有在一开始分配和收集任务的时候是有share的,其余在执行的过程种其实是各自不打扰各自的
【并行计算7】并行计算

Example1: Image Transformations

其实可以通过每个像素点的运算,独立去平移、转换、变换,每个像素都是独立的去运作。
【并行计算7】并行计算
所以这也是为什么GPU设计的原因,GPU是有很好的并行效果的,每个core互相不打扰对方
但是真实的时候不会划分到真的到每个像素点(over),有可能去map按区分割,但是要尽量让对应的计算量是平均balance的一个状态,且要注意在各个部分之间的需不需要做沟通,但在这个例子中是不需要进行沟通的,各方面独自工作。
【并行计算7】并行计算
如果我们要采用MPI的编程思想,去写对应的这个程序设计的话,可以按照master负责assign任务和收集任务,而其他的slave process是通过拿到data partition,对对应的计算工作进行相关操作。
【并行计算7】并行计算

Example2: Monte Carlo Methods

所有符合repeated random sampling的概念去计算结果的一个算法
去不断用simulating system去调整整个计算,每一次的simupation都是independent,sample数量越多它的结果就越精确,代价是消耗很多的计算资源。

  • 求pi应用
    【并行计算7】并行计算
    到我们在一个正方形中画一个圆,去算概率扔东西,当sample很多时,就可以发现它的值就是pi/4
  • integral求积分的应用【并行计算7】并行计算
    算一个integral积分的问题去求解整体的值,通过根据fx也是概率扔东西,看比例
Example3: Mandelbrot Set

在任何一个数字可以通过投影到坐标点上,实和虚坐标,所以所有数字只有两种可能落在set中,还是落到set外
【并行计算7】并行计算
方法就是:不断迭代的过程,Zk+1会随着迭代不断去改变
如果k是无限的,如果说迭代的这个距离如果超过了2,则这个complex number就会发散下去,代表不属于Mandelbrot Set,而针对Mandelbrot Set就是可以一直保持在这个对应条件下中的数值
而就会发现mandelbrot set具有fractal特性
【并行计算7】并行计算
Fractal的特性:在不同的维度下(实数和虚数)会有很类似的长相,follow一些pattern去不断地呈现对应地特性。