并行程序设计导论_第一章上

什么是并行计算

Solve a single problem by using multiple processorts working together。

Parallel computing is an evolution of serial computing that attempts to emulate what has always been the state of affairs in the natural world(并行计算是串行计算的演进,它试图模拟自然界中始终存在的事务状态)

生活中并行的例子
中午的时候,由1个服务员为100名顾客点单(串行),5名为100名顾客点单(并行)

serial computation(串行计算)
并行程序设计导论_第一章上
1个问题被拆分成多个instruction,被送到1个processor

parallel computation(并行计算)
并行程序设计导论_第一章上
use multiple computer resources to solve a computational problem.
同样的计算量,运用更多的资源。

为什么我们与需要并行计算

  • save time
    并行程序设计导论_第一章上
    * Using more resources to shorten execution with potential cost saving
    * Shorter execution time allows more runs or more tuning opportunity

  • solve large problem

    • Impossible or impractical(不可能或不切实际) to solve on a single computer
    • scientific computing(科学计算):
      Trillion particles(万亿颗粒)
      Tens and hundreds of parameters()数以百计的参数
      TBs of data to be processed/analyzed (TB待处理/分析的数据)
      Several hours of execution(执行几个小时)
      using millions of cores ( PetaFLOPS)(使用数百万个内核(PetaFLOPS))
      并行程序设计导论_第一章上
      The problem needs to be broken down into smaller problems, allowing different computers to calculate in parallel
  • Make better use of the underlying(底层的) parallel hardware

    • Advance in computer architecture
  • The Death of CPU Scaling

    • Increase of trainsistor density \ne performance
    • 单处理器的性能具有瓶颈,内部原因是因为晶体管的密度不可能无限制的增大,外部原因是因为密度增大,处理器的散热就是一个很大的问题,过于高的温度会影响性能。
  • Trend of Paralle Computing

并行程序设计导论_第一章上