目錄
外部存儲器算法
編輯在計算中,外部存儲器算法或核心外算法是指旨在處理那些大到無法一次性裝入計算機主存儲器的數據的算法。這種算法必須進行優化,以有效地獲取和訪問存儲在慢速散裝存儲器(輔助存儲器)中的數據,如硬盤或磁帶機,或者當存儲器在計算機網絡上時。外部存儲器算法是在外部存儲器模型中分析的。
外部存儲器算法的模型
編輯外部存儲器算法是在一個理想化的計算模型中分析的,這個模型稱為外部存儲器模型(或I/O模型,或磁盤訪問模型)。外部存儲器模型是一個類似于RAM機器模型的抽象機器,但是除了主存儲器之外還有一個高速緩存。該模型抓住了這樣一個事實:在高速緩存中的讀寫操作比在主內存中快得多,而且讀取長的連續塊比使用磁盤讀寫頭隨機讀取快。外部存儲器模型中算法的運行時間是由所需的對存儲器的讀寫次數決定的。該模型是由AlokAggarwal和JeffreyVitter在1988年提出的。外部存儲器模型與緩存無關模型有關,但外部存儲器模型中的算法可能同時知道塊大小和緩存大小。由于這個原因,該模型有時被稱為高速緩存感知模型。該模型包括一個具有內部存儲器或大小為M的高速緩存的處理器,與一個無界的外部存儲器相連。一個輸入/輸出或內存轉移操作包括將一個由B個連續元素組成的塊從外部內存轉移到內部內存,一個算法的運行時間由這些輸入/輸出操作的數量決定。
外部存儲器算法的算法
編輯外部存儲器模型中的算法利用了這樣一個事實:從外部存儲器中檢索一個對象會檢索出整個大小為B{displaystyleB}。.這個屬性有時被稱為定位性。時間(用大O符號表示)。從信息理論上講,這是這些操作可能的最小運行時間,所以使用B樹是漸進式的最優。外部排序是在外部內存環境下的排序。外部排序可以通過分布式排序來完成,它類似于quicksort,或者通過一個MB{displaystyle{tfrac{M}{B}}}的方式進行。-方式的合并排序。這兩種變體的漸進最優運行時間為來分類N個對象。這個約束也適用于外部存儲器模型中的快速傅里葉變換。替換問題是重新排列N{DisplaystyleN}的元素重新排列成一個特定的排列。元素重新排列成一個特定的互換。這既可以通過排序來完成,這需要上述排序的運行時間,也可以按順序插入每個元素,而忽略了位置性的好處。因此,排列組合可以在以下時間內完成
外部存儲器算法的應用
編輯外部存儲器模型捕捉到了存儲器的層次結構,這在分析數據結構的其他常用模型中是沒有的,比如隨機存取機,對于證明數據結構的下限很有用。該模型對于分析那些工作在內部存儲器中無法容納的大數據集的算法也很有用。一個典型的例子是地理信息系統,特別是數字高程模型,其中完整的數據集很容易超過幾千兆字節甚至是幾百萬兆字節的數據。這種方法超出了通用CPU的范圍,還包括GPU計算以及經典的數字信號處理。在圖形處理單元(GPGPU)的通用計算中,強大的圖形卡(GPU)的內存很少(與更熟悉的系統內存相比,它最常被簡單地稱為RAM),利用CPU到GPU的內存傳輸相對緩慢(與計算帶寬相比)。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/163459/