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

 

Analyse Big Data

Définition : Big Data

Qu’est-ce que l’analyse Big Data? Les Big Data sont des données tellement volumineuses que les logiciels classiques deviennent incapables de les traiter. Exemple caractéristique, il est impossible de charger une matrice dont la taille est plus grande que celle de la mémoire. Dès lors, le calcul matriciel devient problématique.

Une solution consiste à effectuer les calculs par morceaux. Au lieu de travailler l’analyse Big Data sur la matrice dans son intégralité, on la découpe en sous-matrices. Chaque sous matrice est chargée en mémoire. Les calculs sont effectués. Le résultat est stocké. Puis une deuxième sous-matrice est chargée en mémoire, et ainsi de suite. Naturellement, la procédure est moins efficace que le traitement de toute 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 Neptunemachine 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 blocs bien plus petits. 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. Simultanément, le processeur traite le premier bloc pendant que le deuxième bloc est chargé en mémoire.
  3. Puis le deuxième bloc est traité pendant que le troisième est chargé…

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

Résultats & Analyse

Zakarié performe des analyses Big Data d’un côté sur un ordinateur portable, de l’autre côté sur Neptune (un des super calculateurs du CERFACS). Il travaille sur des matrices de tailles de plus en plus grandes 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ées que le super calculateur Neptune.

Temps de calcul de la facto/résolution pour une régression linéaire en incore et out-of-core sur une matrice de 100000 lignes

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.