計算卸載
計算卸載(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).