R++ est un logiciel d’analyse statistique haute performance. Simple, rapide, efficace. Pour mettre les statistiques à la portée de tous.

 

Big data

Définition : Big Data

Les Big Data sont des données tellement volumineuses que les logiciels classiques deviennent incapables de les traiter. Exemple caractéristique, lorsqu’on travaille sur une matrice plus grande que la taille de la mémoire, il devient impossible de la charger. Dès lors, le calcul matriciel devient problématique.

Une solution consiste a effectuer les calculs par morceaux. Au lieu de travailler sur la matrice dans son intégralité, on la découpe en sous matrice. Chaque sous matrice est chargé en mémoire. Les calculs sont effectués. Le résultat est stocké. Puis une deuxième sous matrice est chargé en mémoire, et ainsi de suite. Naturellement, la procédure est moins efficace que le traitement d’une la matrice en un seul tenant. Mais elle a pour mérite de rendre possible une opération qui aurait été impossible autrement.

 Logiciels et matériel

Les langages et architectures testés sont: R, Matlab, ScaLAPACK

  • CPU : Intel Xeon E5630@2.53Ghz / Intel Core i5-2520M @2.50Ghz×2
  • Supercalculateur Neptune : machine BULL B510 avec 128 noeuds de calcul bi-socket.

Chaque noeud de calcul possède les caractéristiques suivantes:

  • Deux processeurs Intel Sandy Bridge (E P E5-2670) [8 coeurs 2.6 Ghz (8 flops par cycle par coeur soit 330GFlops/s de performance crête par noeud)]
  • 32Go de mémoire par noeud, (m.moire DDR3 cadencée . 1600 Mhz)
  • Caches L1 (instruction et donn.es) 32Ko, cache L2 256Ko par coeur
  • Cache L3 de 20 Mo partagé par les 8 coeurs de chaque processeur

Régression linéaire

Dans le cadre de son stage de Master 2, Zakarié Jorti a travaillé sur la régression linéaire de matrices trop volumineuses pour être chargées en mémoire. Cerise sur le gâteau, au lieu de travailler avec des sous-matrices de taille proche de la mémoire, il a découpé la matrice en bloc bien plus petit. Cela lui a permis de paralléliser le calcul et le temps de chargement des blocs :

  1. Un premier bloc est chargé en mémoire.
  2. Puis simultanément, le premier bloc est traité par le processeur pendant que le deuxième bloc est chargé en mémoire.
  3. Puis le deuxième est traité pendant que le troisième est chargé…

Cette méthode, appelé « out-of-core » optimise les temps de chargement.

Résultats & Analyse

Zakariaé travaille sur un ordinateur portable d’un côté, sur Neptune (un des super calculateurs du CERFACS) de l’autre. Il travaille sur des matrices de taille de plus en plus grande afin d’explorer les limites des machines. Résultat : il réussit sur un ordinateur portable en out-of-core à traiter le même volume de donnée que celui adressable par le super calculateur Neptune.

Pièces complémentaires

Téléchargez le mémoire de Zakarié Jorti, détaillant l’intégralité des méthodes et résultats présentés ci-dessus.