Projekt Bigmemory

Škálovatelné zpracování dat v R

Michael Kane

Assistant Professor, Yale University

bigmemory

bigmemory slouží k ukládání, manipulaci a zpracování velkých matic, které mohou přesahovat velikost operační paměti

Škálovatelné zpracování dat v R

big.matrix

  • Vytvoření
  • Načtení
  • Výběr podmnožiny
  • Shrnutí
Škálovatelné zpracování dat v R

Co znamená „out-of-core"?

  • Objekty R jsou uchovávány v RAM

  • Při vyčerpání RAM

    • Data se přesunou na disk
    • Programy běží pomalu nebo havarují

Je výhodnější načítat data do RAM pouze tehdy, kdy jsou potřeba ke zpracování.

Škálovatelné zpracování dat v R

Kdy použít big.matrix?

  • 20 % velikosti RAM
  • Husté matice
Škálovatelné zpracování dat v R

Přehled balíčku bigmemory

  • bigmemory implementuje datový typ big.matrix pro vytváření, ukládání, přístup a manipulaci s maticemi uloženými na disku

  • Data jsou uchovávána na disku a implicitně přesouván do RAM

Škálovatelné zpracování dat v R

Přehled balíčku bigmemory

Objekt big.matrix:

  • Stačí importovat jednou
  • Soubor „backing"
  • Soubor „descriptor"
Škálovatelné zpracování dat v R

Příklad použití bigmemory

library(bigmemory)

# Create a new big.matrix object x <- big.matrix(nrow = 1, ncol = 3, type = "double", init = 0, backingfile = "hello_big_matrix.bin", descriptorfile = "hello_big_matrix.desc")
Škálovatelné zpracování dat v R

Soubory backing a descriptor

  • backing soubor: binární reprezentace matice na disku
  • descriptor soubor: obsahuje metadata, např. počet řádků, sloupců, názvy atd.
Škálovatelné zpracování dat v R

Příklad použití bigmemory

# See what's in it
 x[,]
  0    0    0
x
An object of class "big.matrix"
Slot "address":
<pointer: 0x108e2a9a0>
Škálovatelné zpracování dat v R

Podobnosti s maticemi

# Change the value in the first row and column
x[1, 1] <- 3
# Verify the change has been made
x[,]
   3    0    0
Škálovatelné zpracování dat v R

Pojďme procvičovat!

Škálovatelné zpracování dat v R

Preparing Video For Download...