acm-header
登录

ACM通信

点/对位

论计算模型:对位:并行编程墙和多核软件螺旋:否认由此产生危机


两个图在讨论,说明

来源:盖蒂图片社

背景。单CPU核的软件螺旋(SWS)和RAM算法模型。安迪•格罗夫(2004年之前一直是英特尔的业务主管)将“软件螺旋”称为通用cpu背后异常有弹性的商业模式。应用软件是SWS的定义组件:编写一次的代码仍然可以从后续CPU代的性能伸缩中受益。SWS由几个抽象级别组成。随机存取机或模型(RAM)与当前的对位视点(CPV)最相关:算法的每个串行步骤都具有一个基本操作,需要单位时间(“统一成本”准则)。RAM长期以来一直是算法和数据结构的黄金标准。RAM的突出特点包括:简单;从数学中引进自己的金标准:描述算法(或其命令式编程代码)并证明其正确性的数学归纳法;以及基于冯·诺依曼体系结构的计算机系统的良好支持。其他抽象层次和方法包括各种基准测试,指导在一系列任务、软件兼容性、对象或二进制代码兼容性、操作系统和各种标准上的平衡性能,例如,图1.8关于Hennesey和Patterson的功能需求。5单核CPU业务成为竭尽全力推进体系结构和优化编译器的代名词,以保持SWS的正常运行,使其和RAM具有如此强的弹性,并为前进的道路树立明确的榜样。

领先的计算模型不仅仅是专门的效率。Point Viewpoint (PV)为基于硬件层面可量化成本的优化提供了强有力的理由。这个CPV与将PV提出的PECM计算模型应用于工作负载中的特殊例程以及加速器是一致的。然而,当今多核并行的首要问题是缺乏程序员,因为编写这样的系统实在是太难了。将PECM隐含的优化强加给程序员不太可能让程序员回来,因此限制了它的适用性。我也不知道PECM在通用编程方面是否取得了成功。使用计算机架构术语,当前段落的结论是,许多核心平台的架构师不仅必须认识到所谓的“内存墙”和“能量墙”,而且还必须认识到“并行编程墙”。

一个更广泛的角度。本CPV演示了如何使用不同的前提来处理关于计算模型的辩论。学习通用单核cpu(前面提到的SWS)的传统业务模型。SWS使这类cpu取得了显著的成功。这些cpu可以说是整个信息技术领域创始人那一代最成功的故事。SWS提供了卓越的可持续性和韧性。它使CPU应用程序从少数科学应用程序发展到今天的无处不在,如在台式机、笔记本电脑、服务器和智能手机应用程序中所见。然而,目前对通用应用程序性能的并行开发远远落后于对单核cpu性能的开发。现在是时候认识到这场危机的根源了:在多核cpu统治了近20年之后,SWS停滞不前,未能扩展到通用多核cpu。CPU供应商在这个问题上已经完全擅离职守了。缺乏利用并行性的成本效益方法是问题的核心:大多数应用程序程序员和他们的雇主甚至都不尝试为并行性编程,今天的多核或特定领域驱动的加速器(如gpu)。 This CPV aspires to rectify this failure. Namely: seek to instate a multi-core SWS (MSWS) for general-purpose CPUs.

即使对于性能编程来说,高性价比的编程也是至关重要的。一个产品必须适应它的顾客。多核cpu也不例外。MSWS将需要吸引广泛的程序员,然后他们的软件将使它吸引广大的应用程序用户。为了可持续性和弹性,新的城市固体废物系统将需要提供:具有成本效益的编程,并且当城市固体废物系统就位时,向后兼容先前的城市固体废物应用软件。这些特性对于推动对新的和当前应用程序的投资是必要的。RAM计算模型在实现简单的串行计算性能编程方面发挥了主导作用,因此很自然地转向PRAM模型,它的并行对应物进行此类编程。在比较PRAM和PECM时,成本效益对不同程序员的首要吸引力将使天平向PRAM倾斜。PECM对专业效率的过度依赖将使当前的体系更加脆弱,加剧而不是治愈当前的困境。本CPV将解释PRAM与适当设计的体系结构和优化的编译器如何在未来的MSWS中保持向后兼容性。例如,用于gpu上矩阵乘法的局部优化类型,目前与不可避免的性能算法和编程相关,将被描述为“编译器算法”。 The point being that with few exceptions application programmers must not be responsible for such optimizations for a manycore to reach broad use. Instead, once developed these optimizations as well as PECM-type optimizations belong in a compiler.

多核软件螺旋:行业抱负与当前危机。大约在2005年,当CPU时钟速率加速开始放缓时,并行已经成为应用程序开发人员和创新者提高性能的主要来源。但是,SWS发生了什么?在2008年的一次采访中,3.Patrick Gelsinger(当时英特尔公司的CTO和现任CEO)被问及SWS的概念是否仍然成立,多核芯片已经可用,但没有大量的SW可以同时在多个处理器上运行。他回答说,他认为向多核的转变是螺旋式发展的一个新转折。不幸的是,这个问题的前提今天仍然有效:没有多少软件利用多核上的并行处理。另外,为昨天的多核编写的SW可能需要为今天的多核进行性能调整。因此,螺旋的转折尚未发生。不断扩大的都市固体废物危机是计算机科学和工程的核心。这一问题必须得到广泛承认和解决。每台桌子和笔记本电脑上都有多核设备。然而,多核软件利用的编程和业务障碍妨碍了引入足够多的程序员。


当今多核并行的首要问题是缺乏程序员,因为编写这样的系统实在是太难了。


PRAM的原始原理。自从向多核cpu过渡以来,问题仍然存在:哪个计算模型应该取代RAM作为主要模型?PV提出了并行显式通信模型(PECM),但没有参考MSWS。相比之下,该CPV表明,PRAM模型领导着克服城市固体废物危机。在PRAM抽象中,算法的每个串行步骤包含无限数量的基本操作,假设所有操作都在单位时间内并发执行。意识到串行算法知识加上编译器本身将不足以有效地使用并行处理,当时的PRAM最初的动机是在尽可能保留RAM的简单性的同时解决这个问题。其思想是程序员表达他们看到的所有并行性,而不需要向RAM添加其他任何东西。同步同步式抽象也保留了对数学归纳法的紧密依赖。相比之下,许多线程并行模型放弃了后者,导致了这种情况7对他关于它们效用的严厉警告。

PRAM有克服都市固体废物危机的能力。从20世纪90年代末开始,人们设想在十年内实现多核芯片上CPU,一种称为XMT或片上ram的垂直集成计算机框架,11是在马里兰大学(UMD)开发和彻底的原型。之前引用较多的论文,如Culler2声称由于技术限制,不可能支持PRAM。XMT旨在通过提供对PRAM模型的有效支持来直接反驳它们。XMT首先使用几个低开销的硬件原语和系统软件增强串行和并行硬件设计。主要的努力是弥合以下之间的巨大张力:对固定数量的硬件上下文的多线程操作的需求,限制了它们之间的同步,以限制功率和利用局部性的优势;以及PRAM的理想状态(或错觉),包括对共享内存的单位时间锁步访问,包括高度不规则的基于指针的访问,以及(可能大幅)逐级变化的并行量。XMT解决方案包括硬件支持的前缀和和动态负载平衡,高带宽低延迟片上互连网络,集成并行和串行存储器和串行/并行模式转换,以及改进的局域性和引用可预测性概念,912避免了对系统强制缓存一致性、可伸缩架构(面向新MSWS的未来向后兼容性)和优化编译器的逐步开发的需求。XMT结合了各种预取技术和循环展开,依靠硬件和软件方法来隐藏延迟和改善局部性。每个编译器“生成”都需要手动调优PRAM算法,然后在编译器的下一代中实现自动调优。优化一种称为LSRTM的度量,即访问内存的往返序列的长度,一直是设计的主要目标。硬件(使用FPGA实现硅)和软件原型演示了在当代现成的多核和gpu上具有竞争力的加速。针对光伏发电,Keceli等进行了功耗论证。6特别指出。竞争加速的主要目标是不规则问题,其中内存访问依赖于数据,不能在运行时完全预测。(这与内存访问与数据无关的情况相反,如在标准矩阵乘法中,根据PECM模型优化并行算法更有可能产生差异,与PV一致。)XMT几十年的努力在Ghanim等人的努力下达到了顶峰,4它演示了支持PRAM算法(和PRAM幻象,或虚拟模型)的原样,而不需要额外的编程工作。同样值得注意的是,最近局部敏感哈希在gpu上的多核cpu上的一些显著的深度学习任务的性能改进应用1建议使用比XMT所追求的通用多核cpu更多的潜在技术库。

编程的简易性。1.PRAM并行算法的重要性。近40年来,PRAM模型也一直受到众多并行算法模型的挑战。然而,它的竞争对手最终都没有达到其并行算法知识库和技术的规模和广度,在这方面,PRAM仅次于串行RAM模型。2.XMT/PRAM拓宽了并行编程教育的途径。首先,一个直接受益于PRAM支持的示例。在弗吉尼亚州亚历山大市的Thomas Jefferson高中,在过去的12年里,有近1000名学生编写了XMT程序,这使他们能够在“令人尴尬的并行”问题之外追求问题,这与现有系统的编程形成了鲜明对比。8并行编程的成本效益扩大到更多的人,包括从中学到研究生院的学生,以及更具有挑战性的问题也已被证明。一旦行业级的pram支持平台可用,这种参与的扩大将有助于克服都市固体废物危机。

gpu商业成功的教训。在深度学习兴起之前,gpu在全矩阵乘法方面的性能已经领先于许多竞争对手。矩阵乘法在深度学习中的意外应用(通过神经网络反向传播的随机梯度下降原式)改变了GPU的命运,导致GPU供应商的市值超过CPU供应商。如果我们这一代的IT专业人员最终能够交付所需的MSWS,那么这样的并行平台将立即成为对无限范围的应用程序的公开邀请,其中许多应用程序尚未被发明出来。其结果可能远远超过深度学习对gpu的影响,延续了大约2005年MSWS危机开始后的指数级SWS轨迹。


计算模型可能比物理技术模型更不易协商。现在是供应商接受并调整的时候了。


计算模型的例外论。将物理技术建模视为PV所做的不可协商是很直观的,而将计算模型视为完全可协商的人工工件。事实上,在我参与并行计算研究的四十年中,RAM和PRAM模型是“不切实际的”,加上“更准确”的替代模型在论文中蓬勃发展,据我估计,产生了比严格的PRAM模型多得多的出版物。这些替代模型为渴望发表文章的学者提供了发表的机会,特别是因为它们的模型迫使对简单的问题做出复杂的解决方案,支持了值得发表文章所需的“深度”和“原创性”主张。然而,一旦需要解决重要的应用和更复杂的问题,这些模型就会遇到适用性的挑战。然而,40年过去了,PRAM仍然是类似袭击的主要目标。我相信,能在这么多年里经受住这么多的攻击,对独特的健壮性提供了强有力的证明。这可能支持一个令人惊讶的结论。也就是说,一个计算模型可能比一个物理技术模型更不易协商。40年过去了,PRAM和(有几百年历史的)数学归纳法仍然没有受到挑战。架构师和供应商是时候接受这一点了,正如本CPV前面介绍的术语并行编程墙所建议的那样,并进行调整。

都市固体废物值得政府资助。美国政府正在拨款520亿美元支持美国本土的半导体研究和生产。这一资金水平的一小部分应可用于启动都市固体废物。即使瞄准工业级别的硬件和软件,成本也会低得多。这也是一笔更好的交易。由此产生的应用机会的金矿可能会促使供应商和投资者自己投资半导体。总的来说,这对美国经济来说是一个更好的结果,政府的成本更低。

回到顶部

参考文献

1.陈,B.等。幻灯片:为大规模深度学习系统的智能算法优于硬件加速辩护。在机器学习与系统会议论文集(MLSys)(2020)。

2.卡勒等人。面向现实的并行计算模型。在第四届ACM SIGPLAN并行编程原理与实践研讨会论文集。1993年,1 - 12。

3.基辛格,p .面试。网络世界(2008);https://bit.ly/3AOsy8N

4.Ghanim, F., Barua, R.和Vishkin, U.使用ICE进行基于简易pram的高性能并行编程。IEEE并行与分布式系统汇刊29:2, 2018年

5.轩尼诗,J.L.和帕特森,地方检察官计算机体系结构:定量方法。2019年摩根考夫曼。

6.Keceli, F. Moreshet, T. Vishkin, U.单任务驱动多核的功率性能比较。在第十七届会议的会议记录thIEEE并行与分布式系统国际会议(IEEE ICPADS),(2011年12月7日至9日,台湾台南)。

7.李。E.A.线程的问题。IEEE计算机39, 5(2006年5月),33-42。

8.向高中生教授并行算法思维可能吗?一个老师的经验。在第四十一届会议记录ACM计算机科学教育技术研讨会(密尔沃基,威斯康星州,2010年3月10-13日)。

9.并行算法能增强串行实现吗?Commun。ACM 39, 9(1996年9月),88-91。

10.设计一个易于编程的系统的算法方法:它能导致hw增强的程序员工作流附加项吗?在计算机设计国际会议论文集2009年10月4-7日,加州太浩湖。

11.使用简单抽象来重新发明并行计算。Commun 57, 1(2011年1月),75-85。

12.用于通用并行处理的多核硬件坏了吗?Commun 57, 4(2014年4月),35-39。

回到顶部

作者

乌兹冲锋枪Vishkinvishkin@umiacs.umd.edu)是美国马里兰大学高级计算机研究所(UMIACS)和a . James Clark工程学院电气与计算机工程系的教授。


版权归作者所有。
向所有者/作者请求(重新)发布权限

数字图书馆是由计算机协会出版的。版权所有©2022 ACM, Inc.


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
文章内容:
Baidu
map