什么是并行计算?
根据并行计算的定义,并行计算必须具备三个基本条件:
(1)并行机。并行机至少包含两台或两台以上处理机,这些处理机通过互连网络相互连接,相互通信。
(2)
1.1 并行计算的三个基本条件 根据并行计算的定义,并行计算必须具备三个基本条件: (1)并行机。并行机至少包含两台或两台以上处理机,这些处理机通过互连网络相互连接,相互通信。 (2)应用问题必须具有并行度。也就是说,应用可以分解为多个子任务,这些子任务可以并行地执行。将一个应用分解为多个子任务的过程,称为并行算法的设计。 (3)并行编程。在并行机提供的并行编程环境上,具体实现并行算法,编制并行程序,并运行该程序,从而达到并行求解应用问题的目的。 1.2并行计算的四种形式 (1)位级并行(Bit-level parallelism):增加处理器字的大小,这减少了处理器必须执行的指令量,才能对大于字长的变量执行操作。 从1970年代超大规模集成(VLSI)计算机芯片制造技术问世到1986年左右,计算机体系结构的提速是由计算机字长加倍(即每个周期处理器可处理的信息量)推动的。增加字长会减少处理器必须执行的指令数量,以执行对大于字长的变量的操作。例如,如果一个8位处理器必须将两个16位整数相加,则处理器必须首先使用标准加法指令将每个整数中的8个低位位相加,然后使用加法器将8个高位位相加。一个8位处理器需要两条指令来完成一个操作,而一个16位处理器将能够用一条指令来完成操作。 从历史上看,4位微处理器先后被8位,16位,32位微处理器所取代。而32位处理器已经成为通用计算的标准已有二十年了。直到2000年代初期,随着x86-64体系结构的出现,64位处理器才开始逐步普遍应用。 (2)指令集并行(Instruction-level parallelism):本质上,计算机程序是由处理器执行的指令流。没有指令级并行性,处理器每个时钟周期只能发出少于一条指令(IPC (3)任务并行(Task parallelism):任务并行性是并行程序的一个特征,即“可以对相同或不同的数据集执行完全不同的计算”。这与数据并行性相反,数据并行性是对相同或不同的数据集执行相同的计算。任务并行性涉及将任务分解为子任务,然后将每个子任务分配给处理器以执行。然后,处理器将同时并经常协作地执行这些子任务。任务并行性通常不会随问题的规模而扩展。 (4)超字级并行(Superword-level):超字级并行性是一种基于循环展开和基本块矢量化的矢量化技术。它与循环矢量化算法的不同之处在于并行计算云计算,它可以利用内联代码的并行性,例如操纵坐标,颜色通道或手动展开的循环。 1.3 并行计算与云计算、分布式计算的区别 (1)并行计算与云计算的区别:云计算(cloud computing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。 现阶段所说的云服务已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果(图2)。 云计算常与网格计算(分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机,常用来执行大型任务)、效用计算(IT资源的一种打包和计费方式,比如按照计算、存储分别计量费用,像传统的电力等公共设施一样)、自主计算(具有自我管理功能的计算机系统)相混淆。 因此,云计算不只是一个技术概念,而是一个商业服务计算产品的概念,在云计算的产品里面,包含了分布式计算和并行计算的具体计算方法。如果从从用户的角度看,并行计算是由单个用户完成的,分布式计算是由多个用户合作完成的,云计算是没有用户参与,而是交给网络另一端的服务器完成的。通俗而言,云计算是一种计算产品,而并行计算是一种计算类型。 图2 云计算结构图 资料来源:Saggi M K, Bhatia A S. A review on mobile cloud computing: Issues, Challenges and Solutions[J]. International Journal of Advanced Research in Computer and Communication Engineering, 2015, 4(6): 29-34. (2)并行计算与分布式计算的区别:如表1所示,分布式系统共享一个软件框架,以横向提高可靠性和性能,该软件框架具有“并行计算”的特征。在并行计算中,所有处理器都可以访问共享内存,以在处理器之间共享信息。在分布式计算中,每个处理器都有自己的专用内存(分布式内存),因此数据通过处理器传输的消息共享。并行计算可以看作是分布式计算的特定、密切相关的类别,而分布式计算则可以看作是松散连接的并行计算。此外,一般而言,多处理器共享内存中的高性能并发计算使用并行算法,而大型分布式系统的协作使用分布式算法。 总体而言,并行计算与分布式计算之间的主要区别在于,并行计算允许多个处理器同时执行任务,而分布式计算则在多个计算机之间划分单个任务,以实现一个共同的目标。在一个计算机中,一个处理器执行一个任务又执行另一个任务并不是一种有效的方法。并行计算为该问题提供了解决方案,因为它允许多个处理器同时执行任务。现代计算机支持并行计算以提高系统性能。另一方面,分布式计算允许多台计算机相互通信并实现目标。所有这些计算机都通过网络传递消息来相互通信和协作。Facebook和Google等组织广泛使用分布式计算,以允许用户共享资源。 表1 并行计算和分布式计算的区别 资料来源:courses.washington.edu/css434/ 【引用文件】 Gottlieb, Allan; Almasi, George S. (1989). Highly parallel computing. Redwood City, Calif.: Benjamin/Cummings. ISBN 978-0-8053-0177-9. 张林波等,《并行计算导论》,北京:清华大学出版社,2006.6,第3页。 Asanovic, Krste et al. (December 18, 2006). "The Landscape of Parallel Computing Research: A View from Berkeley" (PDF). University of California, Berkeley. Technical Report No. UCB/EECS-2006-183. " 张林波等,《并行计算导论》,北京:清华大学出版社,2006.6,第4页。 Singh, David Culler; J.P. (1997).Parallel computer architecture([Nachdr.] ed.). San Francisco: Morgan Kaufmann Publ. p. 15. ISBN 978-1-55860-343-1. 林夕未晞,指令级并行,线程级并行,数据级并行区别?线程的概念是什么?2018年5月23日,zhihu.com/question/21823699/answer/111606716,访问时间:2020年10月2日。 Singh, David Culler; J.P. (1997). Parallel computer architecture([Nachdr.] ed.). San Francisco: Morgan Kaufmann Publ. p.124.ISBN 978-1-55860-343-1. Singh, David Culler; J.P. (1997). Parallel computer architecture([Nachdr.] ed.). San Francisco: Morgan Kaufmann Publ. p.125.ISBN 978-1-55860-343-1. Samuel Larsen; Saman Amarasinghe. "Exploiting Superword Level Parallelism with Multimedia Instruction Sets" Parallel Computing Definition, Oct 2ed, 2020, Available at: omnisci.com/technical-glossary/parallel-computing. 许子明,田杨锋.云计算的发展历史及其应用[J].信息记录材料,2018,19(8):66-67. 许子明,田杨锋.云计算的发展历史及其应用[J].信息记录材料,2018,19(8):66-67. 云计算,维基百科,2020年9月19日,zh.wikipedia.org/wiki/%E9%9B%B2%E7%AB%AF%E9%81%8B%E7%AE%97,访问时间:2020年10月2日。 Imagination Tech,并行计算、分布式计算、集群计算和云计算,大科谱!, 2018年02月1日,cloud.tencent.com/developer/news/78205,访问时间:2020年10月2日。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |