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.
Les langages et architectures testés sont: R, Matlab, ScaLAPACK
Chaque noeud de calcul possède les caractéristiques suivantes:
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 :
Cette méthode, appelée « out-of-core » optimise les temps de chargement.
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.
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.