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

 

La Genèse

Les big data: mais qu’est-ce que c’est?

2013. Les Big Data commencent à prendre leur envol. Pour ne pas mourir idiot, je (Christophe Genolini, fondateur de R++, statisticien et informaticien, fan de R) décide de m’intéresser au sujet. Je demande à Google. Il me dit assez vite que les Big Data sont des données trop volumineuses pour un traitement classique. Par contre, la définition de « trop » varie selon les domaines. En 2013, les informaticiens sont déjà capables de traiter environ 50 Terra. Dans le même temps, les logiciels d’analyse statistique plafonnent à 1 Giga… Pourquoi ? Pourquoi une telle différence ? Pourquoi nous autres, pauvres statisticiens, sommes-nous limités à des « big data d’opérette » pendant que nos cousins informaticiens travaillaient sur des volumes 50 000 fois plus important ? A l’époque, je n’imagine pas un instant ou va me conduire cette innocente petite question…

Le problème

Lors d’un premier brainstorming, les utilisateurs présentent leurs doléances. Ils doivent répondre à la question : « Qu’est qui est vraiment difficile avec votre logiciel actuel ? Qu’est-ce qui vous prend une journée complète alors qu’initialement, vous pensiez mettre une heure ? Qu’est ce qui est pénible, ennuyeux, délicat, long, risqué, source d’erreur ? ». Ci-contre, le résultat (simplifié) d’une mini séance organisée autour des logiciels d’analyse statistique :

Logiciels généralistes / logiciels métiers

2013 toujours. Puisque les logiciels généralistes (Oracle, Python, SQL, conçus et utilisés par des informaticiens) sont capables des traiter des big data vraiment big, la tentation d’abandonner les logiciels métiers (conçus et utilisés par des statisticiens) est forte. Mais malheureusement, les logiciels généralistes ne sont pas adaptés :

  • Ils ne proposent à l’utilisateur qu’une fraction des méthodes utilisées par les statisticiens. Pas de régression logistique, pas de modèle de mélange, pas de classification hiérarchique ascendante, pas d’ACP ni d’ACM, je ne parle même pas des nested analysis…
  • Ils sont généralement austères et nécessitent de sérieuses compétences en programmation.
  • Ils font des choix que les statisticiens n’approuvent pas toujours, comme la possibilité de facilement ignorer les valeurs manquantes [billet de blog]

Donc ils ne sont pas adaptés à l’analyse statistique.

D’un autre côté, les logiciels métiers sont complets, mais ils ne sont pas performants. Ils n’exploitent pas ou peu la carte graphique, les réseaux, la lecture de disque out-of-core ou encore les IHM modernes. Pire, tous les appels fonction de R se font en dupliquant les arguments. Quand on veut modifier une petite valeur dans une base de donnée, on utilise « [ » qui est une fonction. R duplique la base de données, modifie la valeur dans la nouvelle base et écrase l’ancienne base. C’est une des raisons qui explique le décalage 50 Terra / 1 Giga.

D’où le projet de création d’un logiciel d’analyse statistique pensé par des statisticiens (et donc vraiment adapté au métier) utilisant les dernières innovations informatiques (et donc très performant) : le projet R++, the Next Step…

Premier POC: plus vite. Beaucoup plus vite

En 2014, Chai Anchen, stagiaire de M2, s’attelle à programmer une méthode d’analyse statistique sur carte graphique. En théorie, l’utilisation de la carte graphique permet des accélérations vraiment importantes par rapport à la programmation classique. L’objectif est de vérifier si la pratique confirme la théorie.

Nous choisissons une méthode d’analyse moderne appelée « imputations multiples ». Chai la programme en R avec la librairie « mice », en C sur processeur classique et en Cuda sur carte graphique. Il exécute ses programmes sur des matrices de différentes tailles. Les résultats sont édifiants : sur les matrices de grandes tailles, Cuda permet d’aller jusqu’à 800 fois plus vite que R : le programme s’exécute en 2 minutes, au lieu de 26h pour mice. La preuve est faite, la « lenteur » des logiciels d’analyse statistique n’est pas une fatalité !

Deuxième POC:  plus grand que grand

En 2015, Zakariaé Jorti, stagiaire M2, travaille sur la régression linéaire de matrices trop volumineuses pour être chargées en mémoire. L’idée est de découper la matrice en blocs bien plus petits que la mémoire de l’ordinateur. Un premier bloc est chargé en mémoire. Puis simultanément, le premier bloc est traité par le processeur pendant que le deuxième bloc est chargé en mémoire. 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.

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ées que celui adressable par le super calculateur Neptune…

Troisème POC: simple comme bonjour

En 2015, le projet commence à prendre forme. Mais pour ne rien laisser au hasard, je contacte mon ancien voisin de bureau au LRI, Michel Beaudouin Lafon, spécialiste mondial de l‘Interface Homme Machine. A l’époque, l’IHM, je ne sais pas trop ce que c’est. Je me souviens juste d’une extraordinaire démonstration de Michel lors des 20 ans du LRI. Je le contacte et je lui demande s’il peut me conseiller un livre sur le sujet. Il me propose quelque chose d’infiniment plus précieux : il m’initie au prototypage vidéo. Je découvre cette science, et j’en tombe amoureux (de la science, pas de Michel !) Avec son équipe, puis en solo, j’enchaîne les rencontres avec les utilisateurs. Les problèmes fusent : export des graphes, fusion de bases, lecture de données, encodage, canal alpha et DPI, repérage des valeurs aberrantes… Les solutions suivent, souvent graphiques, parfois astucieuses, toujours adaptées aux besoins.

2016, je prends en stage Clément Dupont, étudiant en M2 IHM, à l’ENAC. En 6 mois, il programme une première interface spéciale « gestion des données ». Là encore, les résultats sont spectaculaires : on fait en 5 minutes un traitement qui prendrait une bonne heure avec R.

La naissance

Bref : plus vite ; plus grand ; plus simple, dans tous les domaines, les experts en informatique sont capables de faire mieux que ce qui existe en statistique. Il est temps d’encapsuler tout ça dans un logiciel. Mais comme le projet est gigantesque, j’hésite encore à me lancer. Je contacte Bruno Falissard, directeur de mon ancienne équipe de recherche, et un peu mon maitre à penser. Il n’a pas trop de temps, mais est de passage à Toulouse. Je le retrouve à 7h du mat à l’aéroport de Blagnac entre deux avions. Je lui présente les grandes lignes du projet. Je me souviens de sa réponse quasiment mot pour mot : « C’est un projet complètement fou. Ça sera l’œuvre d’une vie. Mais la communauté en a vraiment besoin. Alors vas-y, fonce ! »

Je décide donc de me lancer. Seul, je n’ai aucune chance. Je réponds à un appel à projet, un financement public appelé ANR. Il m’est refusé. Deux années de suite. Je cherche des solutions alternatives. L’idée du privé me traverse l’esprit. Je contacte « juste pour info » l’incubateur Midi-Pyrénées. Ils me donnent rendez-vous. Ils ne me posent aucune question technique, leur seule préoccupation est « Comment allez-vous faire de l’argent ? ». Je ne m’étais jamais posé la question. Mais je m’y mets. Je construis un business plan. Je candidate. Je me fais bouler à l’oral. Je corrige mon dossier. Je recandidate. Je suis accepté. Trois mois plus tard, je dépose les statuts de la société Zébrys. Objectif : la création puis la commercialisation d’un logiciel d’analyse statistique hautes performances. Le projet R++ est né !