The Bigmemory Project

Skalbar databehandling i R

Michael Kane

Assistant Professor, Yale University

bigmemory

bigmemory används för att lagra, manipulera och bearbeta stora matriser som kan vara större än datorns RAM

Skalbar databehandling i R

big.matrix

  • Skapa
  • Hämta
  • Dela upp
  • Sammanfatta
Skalbar databehandling i R

Vad betyder "out-of-core"?

  • R-objekt lagras i RAM

  • När RAM-minnet tar slut

    • Data flyttas till disk
    • Program fortsätter (långsamt) eller kraschar

Det är bättre att bara läsa in data i RAM när de behövs för bearbetning.

Skalbar databehandling i R

När ska du använda big.matrix?

  • 20 % av RAM-storleken
  • Täta matriser
Skalbar databehandling i R

Översikt av bigmemory

  • bigmemory implementerar datatypen big.matrix, som används för att skapa, lagra, komma åt och manipulera matriser på disk

  • Data lagras på disk och läses implicit in i RAM

Skalbar databehandling i R

Översikt av bigmemory

Ett big.matrix-objekt:

  • Behöver bara importeras en gång
  • "backing"-fil
  • "descriptor"-fil
Skalbar databehandling i R

Ett exempel med 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")
Skalbar databehandling i R

backing- och descriptor-filer

  • backing-fil: binär representation av matrisen på disk
  • descriptor-fil: innehåller metadata, t.ex. antal rader, kolumner, namn m.m.
Skalbar databehandling i R

Ett exempel med bigmemory

# See what's in it
 x[,]
  0    0    0
x
An object of class "big.matrix"
Slot "address":
<pointer: 0x108e2a9a0>
Skalbar databehandling i R

Likheter med matriser

# Change the value in the first row and column
x[1, 1] <- 3
# Verify the change has been made
x[,]
   3    0    0
Skalbar databehandling i R

Nu kör vi en övning!

Skalbar databehandling i R

Preparing Video For Download...