Le projet Bigmemory

Traitement de données évolutif en R

Michael Kane

Assistant Professor, Yale University

bigmemory

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

Traitement de données évolutif en R

big.matrix

  • Créer
  • Extraire
  • Sous-ensemble
  • Résumer
Traitement de données évolutif en R

Que signifie « out-of-core » ?

  • Les objets R sont gardés en RAM

  • Quand la RAM est épuisée

    • Des éléments sont déplacés sur le disque
    • Les programmes continuent (lentement) ou plantent

Mieux vaut charger en RAM seulement les données nécessaires au traitement.

Traitement de données évolutif en R

Quand utiliser une big.matrix ?

  • 20 % de la taille de la RAM
  • Matrices denses
Traitement de données évolutif 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 le disque

  • Les données restent sur le disque et sont déplacées en RAM implicitement

Traitement de données évolutif en R

Aperçu de bigmemory

Un objet big.matrix :

  • N'a besoin d'être importé qu'une seule fois
  • Fichier « backing »
  • Fichier « descriptor »
Traitement de données évolutif 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 évolutif en R

Fichiers backing et descriptor

  • fichier backing : représentation binaire de la matrice sur le disque
  • fichier descriptor : contient les métadonnées (nb de lignes, colonnes, noms, etc.)
Traitement de données évolutif en R

Exemple avec bigmemory

# Voir le contenu
 x[,]
  0    0    0
x
Un objet de classe "big.matrix"
Emplacement « address » :
<pointer: 0x108e2a9a0>
Traitement de données évolutif en R

Similarités avec les matrices

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

Passons à la pratique !

Traitement de données évolutif en R

Preparing Video For Download...