Проєкт Bigmemory

Масштабована обробка даних в R

Michael Kane

Assistant Professor, Yale University

bigmemory

bigmemory використовують для зберігання, обробки та опрацювання великих матриць, що можуть перевищувати обсяг оперативної пам'яті комп'ютера

Масштабована обробка даних в R

big.matrix

  • Створення
  • Отримання
  • Підмножина
  • Підсумок
Масштабована обробка даних в R

Що означає «out-of-core»?

  • Об'єкти R зберігаються в ОЗП

  • Коли ОЗП бракує

    • Дані переносяться на диск
    • Програми працюють повільно або падають

Краще завантажувати дані в ОЗП лише тоді, коли вони потрібні для обробки.

Масштабована обробка даних в R

Коли використовувати big.matrix?

  • 20% від обсягу ОЗП
  • Щільні матриці
Масштабована обробка даних в R

Огляд bigmemory

  • bigmemory реалізує тип даних big.matrix для створення, зберігання, доступу та обробки матриць на диску

  • Дані зберігаються на диску та неявно переносяться в ОЗП

Масштабована обробка даних в R

Огляд bigmemory

Об'єкт big.matrix:

  • Імпортується лише один раз
  • «backing»-файл
  • «descriptor»-файл
Масштабована обробка даних в R

Приклад із bigmemory

library(bigmemory)

# Створіть новий об'єкт big.matrix x <- big.matrix(nrow = 1, ncol = 3, type = "double", init = 0, backingfile = "hello_big_matrix.bin", descriptorfile = "hello_big_matrix.desc")
Масштабована обробка даних в R

backing- і descriptor-файли

  • backing-файл: бінарне представлення матриці на диску
  • descriptor-файл: містить метадані, зокрема кількість рядків, стовпців, назви тощо
Масштабована обробка даних в R

Приклад із bigmemory

# Перегляньте вміст
 x[,]
  0    0    0
x
An object of class "big.matrix"
Slot "address":
<pointer: 0x108e2a9a0>
Масштабована обробка даних в R

Подібність до матриць

# Змініть значення в першому рядку та стовпці
x[1, 1] <- 3
# Переконайтесь, що зміни застосовано
x[,]
   3    0    0
Масштабована обробка даних в R

Давайте потренуємось!

Масштабована обробка даних в R

Preparing Video For Download...