Le projet Bigmemory

Traitement de données à grande échelle en R

Michael Kane

Assistant Professor, Yale University

bigmemory

bigmemory sert à stocker, manipuler et traiter de grandes matrices, potentiellement plus grandes que la RAM de l'ordinateur

Traitement de données à grande échelle en R

big.matrix

  • Créer
  • Récupérer
  • Extraire un sous-ensemble
  • Résumer
Traitement de données à grande échelle en R

Que signifie « out-of-core » ?

  • Les objets R sont conservés en RAM

  • Quand la RAM est saturée

    • Les données passent sur le disque
    • Les programmes continuent (lentement) ou plantent

Il vaut mieux ne charger en RAM que les données nécessaires au traitement.

Traitement de données à grande échelle en R

Quand utiliser une big.matrix ?

  • 20 % de la taille de la RAM
  • Matrices denses
Traitement de données à grande échelle en R

Aperçu de bigmemory

  • bigmemory implémente le type big.matrix pour créer, stocker, accéder et manipuler des matrices enregistrées sur disque

  • Les données restent sur disque et sont déplacées en RAM de façon implicite

Traitement de données à grande échelle en R

Aperçu de bigmemory

Un objet big.matrix :

  • Ne s'importe qu'une seule fois
  • Fichier « backing »
  • Fichier « descriptor »
Traitement de données à grande échelle en R

Exemple avec bigmemory

library(bigmemory)

# Créer un nouvel objet big.matrix x <- big.matrix(nrow = 1, ncol = 3, type = "double", init = 0, backingfile = "hello_big_matrix.bin", descriptorfile = "hello_big_matrix.desc")
Traitement de données à grande échelle en R

Fichiers backing et descriptor

  • backing file : représentation binaire de la matrice sur disque
  • descriptor file : contient les métadonnées (lignes, colonnes, noms, etc.)
Traitement de données à grande échelle en R

Exemple avec bigmemory

# Voir le contenu
 x[,]
  0    0    0
x
An object of class "big.matrix"
Slot "address":
<pointer: 0x108e2a9a0>
Traitement de données à grande échelle en R

Similarités avec les matrices

# Modifier la valeur à la première ligne et colonne
x[1, 1] <- 3
# Vérifier la modification
x[,]
   3    0    0
Traitement de données à grande échelle en R

Passons à la pratique !

Traitement de données à grande échelle en R

Preparing Video For Download...