并行计算:初识并行计算
课程来源:新竹清华大学:并行计算与并行编程课程
(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只能处理相同的事情。)