计算卸载
计算卸载(Computation offloading)指的是将资源密集型的计算任务转移到其他处理器(如硬件加速器)或外部平台(如计算机集群、网格计算或雲端運算)上处理。将任务卸载到协处理器可以加速诸如图像渲染和数学计算等应用。通过网络将计算任务卸载到外部平台,可以弥补设备在计算能力、存储空间和能源方面的局限。
历史
[编辑]最早的存储程序计算机概念诞生于ENIAC(第一台通用数字计算机)的设计中。由于ENIAC只能处理单一任务,促使了EDVAC的开发,它成为首台能够执行多种指令的计算机。随着计算技术的发展,计算机性能不断提高,催生了多种配置与体系结构。
计算卸载最初的实例是利用简单的子处理器通过一个称为通道I/O(Channel I/O)的系统来处理输入/输出操作。这一概念提升了整体系统性能,因为主机仅需设置操作参数,而由通道处理器完成I/O格式化和处理。20世纪70年代,协处理器被用于加速浮点数运算,超过了早期8位和16位处理器基于软件的处理能力。因此,数学协处理器在科学和工程计算中变得普及。同时,图形协处理器也出现了,随着图像处理需求的增长,专用图形芯片被用来减轻CPU的负担。尽管协处理器曾广泛应用,但随着微处理器技术的发展,许多协处理器功能被集成,使用逐渐减少。不过,专用图形处理器(GPU)因其在图像处理、机器学习、并行计算、计算机视觉和物理仿真等任务中的高效性,至今仍被广泛使用。
约翰·麦卡锡首次提出了时间共享的概念,旨在解决主机计算因价格高昂而难以普及的问题。时间共享使得小公司也能使用计算资源。到了1990年代,电信公司开始提供虛擬私人網路(VPN)服务,以实现服务器流量的负载均衡和带宽的高效利用。此时,云的符号成为服务提供者与用户之间交互的象征。虚拟计算机的普及进一步促进了计算卸载。[1]
1997年,distributed.net项目启动,倡导通过联网PC自愿参与的方式解决计算密集型任务,这一概念后来被称为网格计算,并与云计算系统相关联。
在1960年代,IBM首次提出将大型主机连接以实现并行性的概念,即集群计算。IBM使用集群技术提高了硬件、操作系统和软件性能,同时支持现有应用的运行。随着高性能微处理器和高速网络的出现,集群计算在1980年代开始迅速发展。集群能够有效地分配并卸载计算任务到各节点,从而提升性能并实现可缩放性。[2]
概念
[编辑]计算任务通常由中央处理器(CPU)执行,通过基本的算术、控制逻辑和输入/输出操作来完成指令。计算任务的效率取决于CPU每秒可执行的指令数(每秒指令),而这在不同类型的处理器之间有所差异。[3]部分应用过程可以通过卸载任务到輔助處理器来加速,而其他过程可能需要依赖外部处理平台。
硬件加速
[编辑]相比软件,硬件在某些任务中能提供更高的性能。专用硬件能够比通过CPU软件处理更快地完成特定功能。硬件的定制化优势使其能够针对特定任务进行优化。例如,圖形處理器(GPU)拥有大量低性能核心,能比拥有少量高性能核心的CPU更高效地进行图形计算。[4]尽管如此,硬件加速器在通用性方面不如CPU灵活。
云计算
[编辑]雲端運算既指通过互联网传输的应用,也指在数据中心中提供服务的硬件和软件,这些服务包括数据存储和计算资源。[5]云计算依赖高速互联网和基础设施投资。[6]通过网络访问,计算机可以将部分计算任务迁移到云端,具体流程包括将数据发送到具有强大计算能力的数据中心进行处理。
集群计算
[编辑]计算机集群是一种并行处理系统,将互联的独立计算机组合成一个整体计算资源。[7]集群采用并行计算模型,需要高速互联技术,以支持节点间的高带宽和低延迟通信。[8]在共享内存模型中,多个处理器共享一个全局地址空间,因此一个处理器对内存的更改会反映到所有其他处理器上。[7]
网格计算
[编辑]网格计算是指一组联网计算机共同工作,作为一个虚拟超级计算机来处理大量数据分析等计算密集型任务。通过云计算,可以在特定时期创建和使用计算网格。将计算任务分散到多台机器上能显著减少处理时间,提高效率,避免资源浪费。与并行计算不同,网格计算的任务通常没有时间上的依赖关系,而是利用计算机空闲时间进行。[9]
优势
[编辑]将计算任务卸载到外部处理器有多种优势:
- 外部处理单元通常能提供比本地计算机更强的计算性能、存储能力和灵活性。
- 通过卸载工作负载,可以忽略设备的计算限制,并改善能源消耗、成本和便携性。[10]
- 企业无需投入大量资源建设信息技术和基础设施。
- 集群计算比单台计算机更具成本效益,且在扩展处理单元方面更加灵活。
限制
[编辑]计算卸载也存在一些局限性:
- 云计算服务存在停机问题,服务提供商负载过重时可能导致中断。
- 外部计算依赖网络连接,若网络出现故障,会导致停机。
- 网络计算引入了延迟,对于需要低延迟的应用(如自动驾驶和视频分析)来说,影响较大。
- 云服务提供商的安全性并不总是可靠,若发生安全漏洞,重要信息可能泄露。
- 现代计算机已将图形、声音和网络功能集成到主板,使部分硬件加速器变得不再必要。
- 使用云服务意味着失去对硬件的直接控制,需要信任云提供商能妥善维护基础设施和保护数据安全。
- 应用程序可能无法直接在目标处理器或操作系统上运行,需要重新开发,增加了开发和测试成本。
应用
[编辑]云服务
[编辑]云服务主要包括三种模型:软件即服务(SaaS)、平台即服务(PaaS)和基礎設施即服務(IaaS)。SaaS指通过网页浏览器访问的外部托管应用;PaaS是一个开发环境,用户可以在其中构建、测试和部署软件,而无需关注底层基础设施;IaaS提供对基础设施资源、网络技术和安全合规性的访问,供企业搭建软件。云计算为用户提供了本地计算机无法以合理成本获得的大规模计算能力和存储空间。[11]
移动云计算
[编辑]移动设备(如智能手机和可穿戴设备)在计算能力、存储空间和能耗方面受限。尽管核心部件(如CPU、GPU、存储器和无线访问技术)持续发展,但设备仍需保持便携性和能效。移动云计算结合了云计算与移动计算,移动设备可通过计算卸载,将部分计算任务迁移到云端,从而加速应用执行并节省能源。这一过程涉及应用划分、卸载决策和分布式任务执行。[12][13]
电子游戏
[编辑]电子游戏是一种电子游戏,涉及输入、与用户界面的交互,并生成输出,通常是在视频显示设备上提供视觉反馈。这些输入/输出操作依赖于计算机及其组成部分,包括中央处理器(CPU)、图形处理器(GPU)、随机存取存储器(RAM)和存储设备。游戏文件以辅助存储器的形式存储,在执行时加载到主存储器中。CPU负责处理来自用户的输入并将信息传递给GPU。GPU无法访问计算机的主存储器,因此图形资源必须加载到GPU的显存(VRAM)中。CPU负责向GPU下达指令,而GPU使用这些信息在输出设备上渲染图像。尽管CPU可以通过软件渲染在没有GPU的情况下运行游戏,但将渲染任务卸载到具有专用硬件的GPU上可以提升性能。[14]
相关
[编辑]参考
[编辑]- ^ Foote, Keith D. A Brief History of Cloud Computing. DATAVERSITY. 2017-06-22 [2019-10-17]. (原始内容存档于2022-08-22).
- ^ Yeo, Chin; Buyya, Rajkumar; Pourreza, Hossien; Eskicioglu, Rasit; Peter, Graham; Sommers, Frank. Cluster Computing: High-Performance, High-Availability, and High-Throughput Processing on a Network of Computers. Boston, MA: Springer. 2006-01-10. ISBN 978-0-387-40532-2.
- ^ CPU Frequency. www.cpu-world.com. [2019-10-16]. (原始内容存档于2010-02-09).
- ^ Cardoso, Joao; Gabriel, Jose; Pedro, Diniz. Embedded Computing for High Performance. Morgan Kaufmann. June 15, 2017. ISBN 9780128041994.
- ^ Armbrust, Michael; Fox, Armondo; Griffith, Rean; Joseph, Anthony; Katz, Randy; Konwinski, Andrew; Lee, Gunho; Patterson, David; Rabkin, Ariel. Above the Clouds: A Berkeley View of Cloud Computing. February 10, 2009.
- ^ How Does Cloud Computing Work? | Cloud Academy Blog. Cloud Academy. 2019-03-25 [2019-10-22]. (原始内容存档于2022-10-02).
- ^ 7.0 7.1 Introduction to Cluster Computing — Distributed Computing Fundamentals. selkie.macalester.edu. [2019-10-22]. (原始内容存档于2024-04-13).
- ^ Yeo, Chin; Buyya, Rajkumar; Pourreza, Hossien; Eskicioglu, Rasit; Peter, Graham; Sommers, Frank. Cluster Computing: High-Performance, High-Availability, and High-Throughput Processing on a Network of Computers. Boston, MA: Springer. 2006-01-10. ISBN 978-0-387-40532-2.Yeo, Chin; Buyya, Rajkumar; Pourreza, Hossien; Eskicioglu, Rasit; Peter, Graham; Sommers, Frank (2006-01-10). Cluster Computing: High-Performance, High-Availability, and High-Throughput Processing on a Network of Computers. Boston, MA: Springer. ISBN 978-0-387-40532-2.
- ^ What is Grid Computing - Definition | Microsoft Azure. azure.microsoft.com. [2019-10-22]. (原始内容存档于2021-12-02).
- ^ Akherfi, Khadija; Gerndt, Micheal; Harroud, Hamid. Mobile cloud computing for computation offloading: Issues and challenges. Applied Computing and Informatics. 2018-01-01, 14 (1): 1–16. ISSN 2210-8327. doi:10.1016/j.aci.2016.11.002
.
- ^ How Does Cloud Computing Work? | Cloud Academy Blog. Cloud Academy. 2019-03-25 [2019-10-22]. (原始内容存档于2022-10-02)."How Does Cloud Computing Work? | Cloud Academy Blog". Cloud Academy. 2019-03-25. Retrieved 2019-10-22.
- ^ Lin, L.; Liao, X.; Jin, H.; Li, P. Computation Offloading Toward Edge Computing. Proceedings of the IEEE. August 2019, 107 (8): 1584–1607. S2CID 199017142. doi:10.1109/JPROC.2019.2922285.
- ^ Ma, X.; Zhao, Y.; Zhang, L.; Wang, H.; Peng, L. When mobile terminals meet the cloud: computation offloading as the bridge. IEEE Network. September 2013, 27 (5): 28–33. S2CID 16674645. doi:10.1109/MNET.2013.6616112.
- ^ How Graphics Cards Work - ExtremeTech. www.extremetech.com. [2019-11-11]. (原始内容存档于2021-08-16).