Проект 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)

# 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")
Масштабируемая обработка данных в R

Файлы backing и descriptor

  • backing file: бинарное представление матрицы на диске
  • descriptor file: содержит метаданные — число строк, столбцов, имена и т. д.
Масштабируемая обработка данных в R

Пример использования bigmemory

# See what's in it
 x[,]
  0    0    0
x
An object of class "big.matrix"
Slot "address":
<pointer: 0x108e2a9a0>
Масштабируемая обработка данных в R

Сходство с матрицами

# Change the value in the first row and column
x[1, 1] <- 3
# Verify the change has been made
x[,]
   3    0    0
Масштабируемая обработка данных в R

Давайте потренируемся!

Масштабируемая обработка данных в R

Preparing Video For Download...