Bigmemory Projesi

R'de Ölçeklenebilir Veri İşleme

Michael Kane

Assistant Professor, Yale University

bigmemory

bigmemory, bilgisayarın RAM'inden büyük olabilen büyük matrisleri depolamak, işlemek ve üzerinde çalışmak için kullanılır

R'de Ölçeklenebilir Veri İşleme

big.matrix

  • Oluştur
  • Getir
  • Alt küme al
  • Özetle
R'de Ölçeklenebilir Veri İşleme

"out-of-core" ne demek?

  • R nesneleri RAM'de tutulur

  • RAM bittiğinde

    • Veriler diske taşınır
    • Programlar yavaşlar ya da çöker

Veriyi yalnızca işlem için gerektiğinde RAM'e taşımak daha iyidir.

R'de Ölçeklenebilir Veri İşleme

Ne zaman big.matrix kullanılır?

  • RAM'in boyutunun %20'si
  • Yoğun (dense) matrisler
R'de Ölçeklenebilir Veri İşleme

bigmemory'ye Genel Bakış

  • bigmemory, diskte saklanan matrisleri oluşturmak, depolamak, erişmek ve işlemek için kullanılan big.matrix veri türünü uygular

  • Veriler diskte tutulur ve RAM'e örtük olarak taşınır

R'de Ölçeklenebilir Veri İşleme

bigmemory'ye Genel Bakış

Bir big.matrix nesnesi:

  • Yalnızca bir kez içe aktarılır
  • "backing" dosyası
  • "descriptor" dosyası
R'de Ölçeklenebilir Veri İşleme

bigmemory ile bir örnek

library(bigmemory)

# Yeni bir big.matrix nesnesi oluştur x <- big.matrix(nrow = 1, ncol = 3, type = "double", init = 0, backingfile = "hello_big_matrix.bin", descriptorfile = "hello_big_matrix.desc")
R'de Ölçeklenebilir Veri İşleme

backing ve descriptor dosyaları

  • backing dosyası: diskte matrisin ikili (binary) temsili
  • descriptor dosyası: satır/sütun sayısı, adlar vb. gibi üst verileri (metadata) tutar
R'de Ölçeklenebilir Veri İşleme

bigmemory ile bir örnek

# İçindekilere bak
 x[,]
  0    0    0
x
"big.matrix" sınıfından bir nesne
Yuvalama "address":
<pointer: 0x108e2a9a0>
R'de Ölçeklenebilir Veri İşleme

Matrislerle benzerlikler

# İlk satır ve sütundaki değeri değiştir
x[1, 1] <- 3
# Değişiklik yapıldığını doğrula
x[,]
   3    0    0
R'de Ölçeklenebilir Veri İşleme

Hadi pratik yapalım!

R'de Ölçeklenebilir Veri İşleme

Preparing Video For Download...