【1】Embarrassingly computations
Embarrassingly Parallel
一个计算可以分配到一系列完整独立的任务各自执行
只有在一开始分配和收集任务的时候是有share的,其余在执行的过程种其实是各自不打扰各自的
Example1: Image Transformations
其实可以通过每个像素点的运算,独立去平移、转换、变换,每个像素都是独立的去运作。
所以这也是为什么GPU设计的原因,GPU是有很好的并行效果的,每个core互相不打扰对方;
但是真实的时候不会划分到真的到每个像素点(over),有可能去map按行和列区分割,但是要尽量让对应的计算量是平均balance的一个状态,且要注意在各个部分之间的需不需要做沟通,但在这个例子中是不需要进行沟通的,各方面独自工作。
如果我们要采用MPI的编程思想,去写对应的这个程序设计的话,可以按照master负责assign任务和收集任务,而其他的slave process是通过拿到data partition,对对应的计算工作进行相关操作。
Example2: Monte Carlo Methods
所有符合repeated random sampling的概念去计算结果的一个算法
去不断用simulating system去调整整个计算,每一次的simupation都是independent,sample数量越多它的结果就越精确,代价是消耗很多的计算资源。
- 求pi应用