TW202331523A - 適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體 - Google Patents
適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體 Download PDFInfo
- Publication number
- TW202331523A TW202331523A TW111102661A TW111102661A TW202331523A TW 202331523 A TW202331523 A TW 202331523A TW 111102661 A TW111102661 A TW 111102661A TW 111102661 A TW111102661 A TW 111102661A TW 202331523 A TW202331523 A TW 202331523A
- Authority
- TW
- Taiwan
- Prior art keywords
- distributed
- shared memory
- deep learning
- cache space
- data
- Prior art date
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 55
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004590 computer program Methods 0.000 title claims abstract description 10
- 230000015654 memory Effects 0.000 claims abstract description 121
- 238000004364 calculation method Methods 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 19
- 238000007726 management method Methods 0.000 claims description 13
- 238000013468 resource allocation Methods 0.000 claims description 12
- 238000012549 training Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 claims description 8
- 230000036316 preload Effects 0.000 claims description 3
- 239000008186 active pharmaceutical agent Substances 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本發明係關於一種適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體。包括:動態組建分散共用記憶體快取空間之步驟:在一深度學習訓練框架上加入一分散共用記憶體佈建與資料檔案存取管理模組,藉以將叢集電腦之複數計算節點的記憶體組建出一分散共用記憶體快取空間。分散式深度學習計算之步驟:上述計算節點依續覆載(Override)該深度學習訓練框架所需的相關Dataset API以共同執行該分散式深度學習計算,當需要讀取一資料檔案時,若該資料檔案已存在於該分散共用記憶體快取空間,則直接進行存取,若該資料檔案沒有存在於該分散共用記憶體快取空間,則依原指定目錄位置取得該資料檔案並存放到該分散共用記憶體快取空間。
Description
本發明係有關於一種適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體,特別是指利用電腦對記憶體的存取操作要比對硬碟的存取操作快得多的特性(DRAM ≒ 100ns;HDD ≒ 10ms),整合叢集電腦之複數計算節點的記憶體,組建出分散共用記憶體快取空間,來執行分散式深度學習計算,以提高運算效能的發明。
隨著醫療影像辨識、自然語言處理、車用自駕系統以及VR/AR技術的發展,甚至是未來元宇宙(Metaverse)等智慧生活的應用,深度學習與高效能運算(HPC)是不可或缺的技術。
而深度學習運算等高效能運算由傳統使用CPU運算、GPU運算、叢集運算而逐漸提高其運算效能。其中,叢集運算的技術是將各自獨立的多台電腦透過高速網路連結而視為一電腦系統,並將同一個計算任務進行分割而分派至各台電腦分別執行運算,藉此整合各台電腦的運算資源而能夠提升運算效能。叢集電腦中的每台電腦稱作節點(node),其中,使用者由登入節點登入系統來操作叢集電腦運作,透過登入節點提交工作描述檔,以索取計算資源,再由計算節點來執行深度學習等高效能運算。而在叢集運算中,會在硬碟空間設定共用快取區(cache)作為儲存節點來儲存計算所需的資料檔案,計算節點會讀取此共用快取區(cache)的資料檔案進行運算,並將運算完成之資料檔案存放在此共用快取區,因而運算過程所需的資料檔案不需要每次皆自原指定目錄位置進行存取,藉此降低存取資料檔案的時間。
使用叢集運算而利用共用快取區以利於高速運算的相關技術例如有:
美國專利第US20060195508號「Distributed computing」,該案指出於高效能運算(HPC)時,將為任務使用的數據提供數據存儲區域(cache),且此數據存儲區域(cache)的數據共享。
中國專利第CN111031126號「集群緩存共享方法、系統、設備及存儲介質」,該案於共用快取(Buffer)中基於節點間的心跳機制(heartbeat),讓節點間的資料保持同步,維護節點列表,並透過節點列表使資料可存在某一個節點上,其它節點只維護快取的映射,避免資料重複下載、不一致性的問題。
中國專利第CN107992270號「一種多控存儲系統全局共享緩存的方法及裝置」,該案將本地快取的資料分配給所有節點之全局共用快取,提升快取空間利用率,且優化全局共用快取更新流程,減少全局共用快取加鎖次數,提高IO請求響應速度。
中國專利第CN111131402號「一種配置共享緩存服務器組的方法、裝置、設備及介質」,該案利用2階段快取系統加速熱門網頁的讀取速度,也就是說,前一位用戶讀取此網頁後,此網頁資料也存放在快取資料系統中,讓往後多位用戶加速地讀取此網頁。
中國專利第CN109309711號「一種虛擬緩存共享方法和系統」,該案利用OpenFlow建立虛擬緩存共享資料檔案系統。
L. Wang. et al., “DIESEL: A Dataset-Based Distributed Storage and CachingSystem for Large-Scale Deep Learning Training”, ICPP ‘20, pp.1-11,2020。該篇論文指出,為避免檔案I/O太慢,以防止運算中斷,將小容量檔案壓縮成資料塊(data truck),以metadata搜尋資料塊,加速讀取資料速度。 Metadata snapshot存放在各節點,避免節點損壞而無法讀取資料。
Mellanox公司提出NVMe SNAP技術「MellanoxNVMe SNAPTM, https://www.mellanox.com/files/doc-2020/sb-mellanox-nvme-snap.pdf」,透過智慧網卡(SmartNIC)與儲存設備虛擬化,將遠端儲存裝置視為本地端實體NVMeSSD,建立 networked storage,符合雲端與叢集運算儲存的需求。
J. Yang, J. Izraelevitz, and S. Swanson, “Orion: A Distributed File System for Non-Volatile Main Memories and RDMA-Capable Networks”,17th USENIX Conference on File and Storage Technologies, February 25–28, 2019。該篇論文指出,採用RDMA技術、非揮發性記憶體 (Non-Volatile Memory) 硬體建立網路檔案系統(Network File System)作為快取。
J. Zhang, G. Wu, X. Hu, and X. Wu, “A Distributed Cache for Hadoop Distributed File System in Real-time Cloud Services”,2012 ACM/IEEE 13th International Conference on Grid Computing。該篇論文指出,分析服務用戶的需求、網路、硬體、軟體等資源,然後建立快取系統HDCache。
綜觀上述前案等共用快取技術,多是以管理者的角度建立共用快取,因而不具有隨需即組、自動配置資源以及使用者零介入的特徵。且上述前案的共用快取(cache和buffer)係建立在硬碟空間,因而實際執行運算發現,CPU或GPU由硬碟空間所建立的共用快取區反覆存取資料檔案時,仍然存在I/O效能的瓶頸問題,因而限制了叢集運算的效能。
為了能夠進一步提高叢集運算的效能,本發明提出一種適用於分散式深度學習計算的隨需即組共用資料快取方法,包括:
動態組建分散共用記憶體快取空間之步驟:
在一深度學習訓練框架中加入一分散共用記憶體佈建與資料檔案存取管理模組,藉以將叢集電腦之複數計算節點的部分記憶體共用,而組建出一分散共用記憶體快取空間。
分散式深度學習計算之步驟:
上述叢集電腦執行一分散式深度學習計算,上述計算節點預先覆載(Override)該深度學習訓練框架所需的相關Dataset API,上述Dataset API例如包括TensorFlow (tf.data)、PyTorch (torch.utils.data),並加入該分散共用記憶體佈建與資料檔案存取管理模組的資料檔案存取規則,且所有計算節點接續執行,當需要讀取一資料檔案時,若該資料檔案已存在於該分散共用記憶體快取空間,則直接進行存取,若該資料檔案沒有存在於該分散共用記憶體快取空間,則依據原指定目錄位置取得該資料檔案,並將該資料檔案存放到該分散共用記憶體快取空間,例如,先將該資料檔案存放到該分散共用記憶體快取空間後再進行存取。
進一步,於動態組建分散共用記憶體快取空間之步驟前,執行資源配置之步驟:撰寫一工作描述檔(Job Script)而設定程式運行所需要的該計算節點數量、CPU/GPU數量及該分散共用記憶體快取空間的大小,交付一工作排程佇列系統(Queuing System)進行資源分派,並將資源分派後的資源資訊儲存進執行工作描述檔時的環境變數,該環境變數包括計算節點清單($PBS_NODEFILE)、分散共用記憶體快取空間的大小($PBS_GLBMEM),該工作排程佇列系統依所分配好的計算節點的清單,分別在每一計算節點上啟動執行該工作描述檔內所設定的程式。於動態組建分散共用記憶體快取空間之步驟中,透過分別讀取該環境變數中的計算節點清單($PBS_NODEFILE)及分散共用記憶體快取空間的大小($PBS_GLBMEM)來設定組建該分散共用記憶體快取空間,組建好的該分散共用記憶體快取空間將掛載於每一計算節點的掛載點(mount point):/disfs。
進一步,動態組建分散共用記憶體快取空間之步驟於執行時,會呼叫初始化函式(Initial函式)進行初始化,透過覆載(Override)上述初始化函式進行組建該分散共用記憶體快取空間,且該分散共用記憶體佈建與資料檔案存取管理模組採用GlusterFS(Gluster File System)來執行,在每一計算節點上的記憶體產生一記憶體磁碟(Ram Disk),再透過GlusterFS將每一計算節點的記憶體磁碟串聯在一起而形成該分散共用記憶體快取空間。該記憶體例如Unix/Linux 系統中的暫存檔案系統(Temporary File System, tmpfs)。
進一步,該分散共用記憶體佈建與資料檔案存取管理模組採用遠端直接記憶體存取(remote direct memory access, RDMA)技術。
進一步,包括資源釋放之步驟:於該分散式深度學習計算結束後,釋放該分散共用記憶體快取空間。具體而言,於該分散式深度學習計算結束後,所有程式會呼叫解構函式(Finalize函式),透過覆載(Override)上述解構函式使每一計算節點卸載所屬的該分散共用記憶體快取空間,並於卸載完成後所有的資料檔案都會消失,使所屬的該分散共用記憶體快取空間被釋放。
本發明再提供一種電腦程式,用於安裝在一電腦,以執行前述適用於分散式深度學習計算的隨需即組共用資料快取方法。
本發明再提供一種電腦可讀取媒體,係儲存有前述電腦程式。
根據上述技術特徵可達成以下功效:
1.大量快速存取:採用記憶體層次的分散共用記憶體快取空間,跟使用一般傳統硬碟(hdd)來作為快取(cache和buffer)相比,存取速度可大幅提高;而跟傳統的叢集運算相比,可存放更多和更大的資料檔案。藉此能夠解決深度學習計算時反覆存取大量小型資料檔案或超大型資料檔案的I/O效能瓶頸問題,而提高深度學習計算的效能。
2.資料檔案隨時存放:讀取過的資料檔案會被暫存在分散共用記憶體快取空間,可供本身後續或其它分散在不同計算節點上的執行程式重複使用快速讀取。
3.空間可擴展:採用叢集電腦的多計算節點的分散式架構,可以動態加入或移出計算節點以擴展或減縮分散共用記憶體快取空間的容量。
4.隨需即組:從使用者的角度切入,分散共用記憶體快取空間可依計算任務需求立即動態組成(On-Demand Global Cached Memory),任務結束立即釋放,不永久佔用系統記憶體空間。
5.自動配置資源:從使用者的角度切入,整合現有的工作排程佇列系統(Queuing System),由工作排程佇列系統根據使用者需求進行配置適當計算節點後,再依配置結果進行組建分散共用記憶體快取空間。
6.使用者零介入:從使用者的角度切入,於現有分散式深度學習訓練框架中加入分散共用記憶體佈建與資料檔案存取管理模組,藉以自動組建分散共用記憶體快取空間,並自分散共用記憶體快取空間存取資料檔案,使用者無需修改現有程式碼、無需操作額外程序。
綜合上述技術特徵,本發明適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體的主要功效將可於下述實施例清楚呈現。
參閱第一圖所示,本實施例之方法包括:(1)執行資源配置之步驟;(2)動態組建分散共用記憶體快取空間之步驟;(3)分散式深度學習計算之步驟;及(4)資源釋放之步驟。
參閱第二圖所示,所述執行資源配置之步驟係:使用者可根據現有的電腦資源,撰寫一工作描述檔(Job Script)而設定使用叢集電腦進行一分散式深度學習之程式於運行所需要的計算節點數量、CPU/GPU數量及分散共用記憶體快取空間的大小,之後交付一工作排程佇列系統(Queuing System)進行資源分派,並將資源分派後的資源資訊儲存進執行工作描述檔時的環境變數,該環境變數包括節點電腦清單($PBS_NODEFILE)、分散共用記憶體快取空間的大小($PBS_GLBMEM),該工作排程佇列系統依所分配好的計算節點清單,分別在每一計算節點1上啟動執行該工作描述檔內所設定的程式。
上述工作描述檔例如--
#!/bin/bash
#SBATCH -J job_name # 工作名稱
#SBATCH --nodes 8 # 計算節點數量
#SBATCH --gres=gpu:16 # 總GPU數量
#SBATCH --memory=256G # 分散共用記憶體快取空間(總記憶體容量)
python DL_training.py # 執行深度學習訓練程式
參閱第三圖及第四圖所示,所述動態組建分散共用記憶體快取空間之步驟係:在既有的深度學習訓練框架中加入一分散共用記憶體佈建與資料檔案存取管理模組,透過分別讀取該環境變數中的電腦節點清單($PBS_NODEFILE)及分散共用記憶體快取空間的大小($PBS_GLBMEM)來設定組建一分散共用記憶體快取空間2,組建好的該分散共用記憶體快取空間2將掛載於每一計算節點1的掛載點(mount point):/disfs。具體而言,程式執行時會呼叫初始化函式(Initial函式)進行初始化,透過覆載(Override)上述初始化函式進行組建該分散共用記憶體快取空間2,且本實施例該分散共用記憶體佈建與資料檔案存取管理模組採用GlusterFS(Gluster File System)來執行,在每一計算節點1上的記憶體產生一記憶體磁碟(Ram Disk),再透過GlusterFS將每一計算節點1的記憶體磁碟串聯在一起而形成該分散共用記憶體快取空間2,本實施例採用Unix/Linux 系統,該記憶體係Unix/Linux 系統中的暫存檔案系統(Temporary File System, tmpfs)。
GlusterFS指令如下:
# gluster volume create vol_distributed transport tcp node1:/ramdisk node2:/ramdisk force
# gluster volume start vol_distributed
# apt -y install glusterfs-client
# mount -t glusterfs node1:/vol_distributed /disfs
參閱第三圖至第五圖所示,所述分散式深度學習計算之步驟係:由上述叢集電腦執行上述分散式深度學習之計算,具體而言,上述計算節點1預先覆載(Override)該深度學習訓練框架所需的相關Dataset API,該Dataset API例如包括TensorFlow (tf.data)、PyTorch (torch.utils.data),並加入該分散共用記憶體佈建與資料檔案存取管理模組的資料檔案存取規則,該存取規則採用遠端直接記憶體存取(remote direct memory access, RDMA)技術,透過RDMA技術使各計算節點1於存取所需的一資料檔案時不需經由一般的網路傳輸,而能直接至該分散共用記憶體快取空間2存取。所有計算節點1接續執行,當需要讀取上述資料檔案時,若該資料檔案已存在於該分散共用記憶體快取空間2,則直接進行存取,若該資料檔案沒有存在於該分散共用記憶體快取空間2,則依原指定目錄位置至硬碟的資料集3取得該資料檔案並存放到該分散共用記憶體快取空間2,例如,可先將該資料檔案存放到該分散共用記憶體快取空間2後再進行存取。藉由採用此記憶體層次的分散共用記憶體快取空間2,跟使用一般傳統硬碟來作為快取(cache和buffer)相比,存取速度可大幅提高;而跟傳統的叢集運算相比,可存放更多和更大的資料檔案。藉此能夠解決深度學習計算時反覆存取大量小型資料檔案或超大型資料檔案的I/O效能瓶頸問題,而提高深度學習計算的效能。
所述資源釋放之步驟係:於該分散式深度學習計算結束後,釋放該分散共用記憶體快取空間2。具體而言,於該分散式深度學習計算結束後,所有程式會呼叫解構函式(Finalize函式),透過覆載(Override)上述解構函式使每一計算節點1卸載所屬的該分散共用記憶體快取空間2,並於卸載完成後所有的資料檔案都會消失,使所屬的該分散共用記憶體快取空間2被釋放。藉此該分散共用記憶體快取空間2可依計算任務需求立即動態組成(On-Demand Global Cached Memory),任務結束立即釋放,不永久佔用系統記憶體空間。
參閱第六圖所示,本實施例再將上述計算節點1由TWCC(Taiwan Cloud Computing)之虛擬運算服務進行運算,建立8台虛擬主機,各包含16v-CPU、256GB記憶體、100G HDD硬碟,將第一影像資料集之訓練資料集分別放置在本發明實施例之計算節點1內的分散共用記憶體快取空間2和計算節點1內的硬碟中進行運算效能驗證。由圖式顯示,本發明實施例之整體運算時間減少,特別是自該分散共用記憶體快取空間2存取資料檔案的時間相較自傳統硬碟存取資料檔案的時間減少13%以上。
上述適用於分散式深度學習計算的隨需即組共用資料快取方法係由安裝在上述叢集電腦上的電腦程式來執行,且上述電腦程式可儲存在一電腦可讀取媒體中。
綜合上述實施例之說明,當可充分瞭解本發明之操作、使用及本發明產生之功效,惟以上所述實施例僅係為本發明之較佳實施例,當不能以此限定本發明實施之範圍,即依本發明申請專利範圍及發明說明內容所作簡單的等效變化與修飾,皆屬本發明涵蓋之範圍內。
1:計算節點
2:分散共用記憶體快取空間
3:資料集
[第一圖]係本發明實施例之主要流程示意圖。
[第二圖]係本發明實施例中,工作排程佇列系統(Queuing System)進行資源分派,以配置計算節點清單($PBS_NODEFILE)及分散共用記憶體快取空間的大小($PBS_GLBMEM)的示意圖。
[第三圖]係本發明實施例於執行分散式深度學習計算之硬體架構圖。
[第四圖]係本發明實施例中,分散共用記憶體佈建與資料檔案存取管理模組根據工作排程佇列系統(Queuing System)的資源分派結果組建分散共用記憶體快取空間的示意圖。
[第五圖]係本發明實施例於執行分散式深度學習計算時,存取所需要的資料檔案的流程圖。
[第六圖]係本發明之運算效能驗證,將第一影像資料集之訓練資料集分別放置在本發明實施例之計算節點內的分散共用記憶體快取空間和計算節點內的傳統硬碟中,觀察資料檔案存取時間。
Claims (12)
- 一種適用於分散式深度學習計算的隨需即組共用資料快取方法,包括有: 動態組建分散共用記憶體快取空間之步驟:在一深度學習訓練框架中加入一分散共用記憶體佈建與資料檔案存取管理模組,藉以將叢集電腦之複數計算節點的部分記憶體共用,而組建出一分散共用記憶體快取空間; 分散式深度學習計算之步驟:上述叢集電腦執行一分散式深度學習計算,上述計算節點預先覆載(Override)該深度學習訓練框架所需的相關Dataset API,並加入該分散共用記憶體佈建與資料檔案存取管理模組的資料檔案存取規則,且所有計算節點接續執行,當需要讀取一資料檔案時,若該資料檔案已存在於該分散共用記憶體快取空間,則直接進行存取,若該資料檔案沒有存在於該分散共用記憶體快取空間,則依原指定目錄位置取得該資料檔案並存放到該分散共用記憶體快取空間。
- 如請求項1所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,進一步,於動態組建分散共用記憶體快取空間之步驟前,執行資源配置之步驟:撰寫一工作描述檔(Job Script)而設定程式運行所需要的該計算節點數量、CPU/GPU數量及該分散共用記憶體快取空間的大小,交付一工作排程佇列系統(Queuing System)進行資源分派,並將資源分派後的資源資訊儲存進執行該工作描述檔時的環境變數,該環境變數包括計算節點清單($PBS_NODEFILE)、分散共用記憶體快取空間的大小($PBS_GLBMEM),該工作排程佇列系統依所分配好的計算節點的清單,分別在每一計算節點上啟動執行該工作描述檔內所設定的程式。
- 如請求項2所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,其中,透過分別讀取該環境變數中的計算節點清單($PBS_NODEFILE)及分散共用記憶體快取空間的大小($PBS_GLBMEM)來設定組建該分散共用記憶體快取空間,組建好的該分散共用記憶體快取空間將掛載於每一計算節點的掛載點(mount point):/disfs。
- 如請求項1所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,其中,動態組建分散共用記憶體快取空間之步驟於執行時,會呼叫初始化函式(Initial函式)進行初始化,透過覆載(Override)上述初始化函式進行組建該分散共用記憶體快取空間,且該分散共用記憶體佈建與資料檔案存取管理模組採用GlusterFS(Gluster File System)來執行,在每一計算節點上的記憶體產生一記憶體磁碟(Ram Disk),再透過GlusterFS將每一計算節點的記憶體磁碟串聯在一起而形成該分散共用記憶體快取空間。
- 如請求項4所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,其中,該記憶體係Unix/Linux 系統中的暫存檔案系統(Temporary File System, tmpfs)。
- 如請求項1所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,其中,該分散共用記憶體佈建與資料檔案存取管理模組採用遠端直接記憶體存取(remote direct memory access, RDMA)技術。
- 如請求項1所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,其中,該深度學習訓練框架所需的相關Dataset API,包括TensorFlow (tf.data)、PyTorch (torch.utils.data)。
- 如請求項1所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,其中,於分散式深度學習計算之步驟中,當需要讀取該資料檔案時,若該資料檔案沒有存在於該分散共用記憶體快取空間,先將該資料檔案存放到該分散共用記憶體快取空間後再進行存取。
- 如請求項1所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,進一步包括資源釋放之步驟:於該分散式深度學習計算結束後,釋放該分散共用記憶體快取空間。
- 如請求項9所述之適用於分散式深度學習計算的隨需即組共用資料快取方法,其中於該分散式深度學習計算結束後,所有程式會呼叫解構函式(Finalize函式),透過覆載(Override)上述解構函式使每一計算節點卸載所屬的該分散共用記憶體快取空間,並於卸載完成後所有的資料檔案都會消失,使所屬的該分散共用記憶體快取空間被釋放。
- 一種電腦程式,用於安裝在一電腦,以執行如請求項1至請求項10任一項所述之適用於分散式深度學習計算的隨需即組共用資料快取方法。
- 一種電腦可讀取媒體,係儲存有如請求項11所述之電腦程式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111102661A TWI824392B (zh) | 2022-01-21 | 2022-01-21 | 適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體 |
US17/857,481 US12026096B2 (en) | 2022-01-21 | 2022-07-05 | On-demand shared data caching method, computer program, and computer readable medium applicable for distributed deep learning computing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111102661A TWI824392B (zh) | 2022-01-21 | 2022-01-21 | 適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202331523A true TW202331523A (zh) | 2023-08-01 |
TWI824392B TWI824392B (zh) | 2023-12-01 |
Family
ID=87313999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111102661A TWI824392B (zh) | 2022-01-21 | 2022-01-21 | 適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12026096B2 (zh) |
TW (1) | TWI824392B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117014460B (zh) * | 2023-09-28 | 2023-12-29 | 深圳市壹通道科技有限公司 | 一种基于5g通信的分布式信息管理系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10705525B2 (en) * | 2017-04-07 | 2020-07-07 | Nvidia Corporation | Performing autonomous path navigation using deep neural networks |
AU2020241262A1 (en) * | 2019-03-15 | 2021-11-04 | Intel Corporation | Sparse optimizations for a matrix accelerator architecture |
TW202143136A (zh) * | 2019-08-09 | 2021-11-16 | 英商路昂有限公司 | 使用者媒體平台伺服器系統 |
US11663746B2 (en) * | 2019-11-15 | 2023-05-30 | Intel Corporation | Systolic arithmetic on sparse data |
US11200169B2 (en) * | 2020-01-30 | 2021-12-14 | EMC IP Holding Company LLC | Cache management for sequential IO operations |
US11740816B1 (en) * | 2022-03-18 | 2023-08-29 | Dell Products L.P. | Initial cache segmentation recommendation engine using customer-specific historical workload analysis |
-
2022
- 2022-01-21 TW TW111102661A patent/TWI824392B/zh active
- 2022-07-05 US US17/857,481 patent/US12026096B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI824392B (zh) | 2023-12-01 |
US12026096B2 (en) | 2024-07-02 |
US20230236980A1 (en) | 2023-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307935B2 (en) | Management of volume snapshots in a data storage system | |
Nanavati et al. | Decibel: Isolation and sharing in disaggregated {Rack-Scale} storage | |
US11740818B2 (en) | Dynamic data compression | |
US11562091B2 (en) | Low latency access to physical storage locations by implementing multiple levels of metadata | |
US7529867B2 (en) | Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks | |
US9922060B2 (en) | Disk optimized paging for column oriented databases | |
US20170374151A1 (en) | Systems and methods for efficient distribution of stored data objects | |
US20080104589A1 (en) | Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks | |
US8904113B2 (en) | Virtual machine exclusive caching | |
US11544812B2 (en) | Resiliency schemes for distributed storage systems | |
US10031886B2 (en) | Remote direct memory access-based method of transferring arrays of objects including garbage data | |
CN111708719B (zh) | 计算机存储加速方法、电子设备及存储介质 | |
US20140089562A1 (en) | Efficient i/o processing in storage system | |
US20080104590A1 (en) | Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks | |
Son et al. | An empirical evaluation and analysis of the performance of NVM express solid state drive | |
US12001338B2 (en) | Method and system for implementing metadata compression in a virtualization environment | |
TWI824392B (zh) | 適用於分散式深度學習計算的隨需即組共用資料快取方法、電腦程式、電腦可讀取媒體 | |
US20230132493A1 (en) | Importing workload data into a sharded virtual disk | |
US10936544B2 (en) | Enabling consistency in push order for network caching | |
US12124734B2 (en) | Method and system to process data delete in virtualized computing | |
US11960510B2 (en) | Data movement from data storage clusters | |
US20240086103A1 (en) | Method and system to process data delete in virtualized computing environment | |
EP4152163A1 (en) | Method for processing metadata in storage device and related device | |
Li et al. | High-Performance Storage for DSM System Using Global Cache | |
Mironchik | OStorage SCSI OSD Target Project. Offloading file system processing with SCSI OSD devices. |