我開發(fā)了一個(gè)模型,它使用幾個(gè)大型 3 維數(shù)據(jù)集(按 (1e7, 10, 1e5) 的順序),并對(duì)這些數(shù)據(jù)集的切片進(jìn)行數(shù)百萬次讀取(和數(shù)千次寫入)調(diào)用。到目前為止,我發(fā)現(xiàn)用于進(jìn)行這些調(diào)用的最佳工具是 numpy.memmap,它允許在 RAM 中保存最少的數(shù)據(jù),并允許干凈的索引和直接在硬盤驅(qū)動(dòng)器上非常快速地調(diào)用數(shù)據(jù)。numpy.memmmap 的缺點(diǎn)似乎是性能相當(dāng)不均勻 - 讀取數(shù)組切片的時(shí)間在調(diào)用之間可能會(huì)相差 2 個(gè)數(shù)量級(jí)。此外,我使用 Dask 并行化腳本中的許多模型函數(shù)。Dask DataFrames 對(duì)大型數(shù)據(jù)集進(jìn)行數(shù)百萬次調(diào)用的性能如何?將 memmap 替換為 DataFrame 會(huì)顯著增加處理時(shí)間嗎?
Dask DataFrames 與 numpy.memmap 性能對(duì)比
阿波羅的戰(zhàn)車
2023-11-09 10:37:34