并行计算:初识并行计算

课程来源:新竹清华大学:并行计算与并行编程课程

(1)问:什么是并行计算?

    答:用 很多 处理器(如 core)一起工作 来 解决同一个问题。

    传统方法: 一个问题 -> 单个指令 -> 处理器

     并行计算: 一个问题-> 多个指令 -> 分别对应的多处理器(更多的计算资源处理相同的计算量)

(2)问:并行计算与分布式计算的区别?

   答:二者十分相似但是背景不同。

    并行计算 强调的是针对  一个问题/计算  用  多个计算核 来提高程序的 效率(重要), 区域跨度较小, 计算机很集中。

    分散式计算  不同的使用者,强调的是   资源共享/交流, 区域跨度很大,如云计算的兴起。  通过internet进行资源的计算。

(3)问:并行计算产生的原因:

   答:(1)节省时间 :以牺牲点内存获得更短的执行效率,在有限时间处理 更多的任务。

          (2)可以处理 更大规模 的问题。

          (3)在并行设备上得到更好的性能。

    FLOPS:  每秒做的浮点数的计算,用于描述性能。   

    并行计算是序列计算的革命,并行计算 一般在 bottleneck处做优化, 不是实时做并行。

(4)并行计算的趋势?

   答:1.单核时代:受摩尔定律,电压大小 驱动,受 能源以及复杂度 限制,常用语言 C/C++ -> java

           2.多核时代:受摩尔定律,SMP 驱动,受 能源,并行软件,尺寸限制, 主要是并行计算,工具: Pthread->OpenMP

           3.分布式系统时代:网络的兴起 驱动,受同步,通讯及开销 限制 工具:MPI->MapReduce (多个核需要交流做不同的事情)

           4.异构系统时代: 受 大数据,并行,GPUs性能驱动,受 编程,模型,通讯及开销 限制, 工具:Shader->CUDA->OpenCL(GPU所有核做相同的事情,这也是GPU快的原因之一,也是其缺点之一,同一时间所有core只能处理相同的事情。)

原文地址:https://www.cnblogs.com/fourmi/p/11919076.html