Big Data et MATLAB

  • Contact commercial
  • Trials

Comment exploiter de grands ensembles de données rapides

Le concept de Big Data fait référence à l'augmentation considérable du volume des données et de la vitesse à laquelle elles sont générées et prêtes à être analysées.

La numérisation croissante des informations est l'une des causes principales de ce phénomène. Le nombre et les types de dispositifs d'acquisition et autres mécanismes de génération de données ne cessent de s'accroître.

Les sources de Big Data sont variées : données transmises en continu par les capteurs d'instruments, imagerie satellitaire et médicale, vidéos des caméras de sécurité, données issues des marchés financiers et des opérations de vente au détail. Les jeux de Big Data provenant de ces sources peuvent contenir des gigaoctets ou des téraoctets de données et peuvent augmenter de plusieurs mégaoctets ou gigaoctets par jour.

Bien que le Big Data permette aux analystes et spécialistes des données d'obtenir davantage d'informations et donc de prendre des décisions plus éclairées, il présente également certains inconvénients. Les jeux de Big Data peuvent dépasser la capacité de mémoire disponible, demander un temps de traitement très long ou être diffusés trop rapidement pour pouvoir être stockés. Les algorithmes standards ne sont généralement pas conçus pour les traiter dans un intervalle de temps ou avec une capacité de mémoire acceptable. Il n'existe pas d'approche unique pour gérer les jeux de Big Data. Pour relever ces défis, MATLAB propose donc plusieurs outils.

Traitement du Big Data dans MATLAB

  1. Environnement informatique 64 bits. La version 64 bits de MATLAB augmente considérablement le volume de données pouvant être stockées en mémoire, généralement jusqu'à 2 000 fois plus qu'un programme 32 bits. Tandis qu'un programme 32 bits ne permet d'utiliser que 2 Go de mémoire, MATLAB 64 bits permet d'utiliser la totalité de la mémoire physique autorisée par le système d'exploitation. Soit 500 Go sous Windows 8 pour les versions sur ordinateur de bureau et 4 To pour Windows Server.
  2. Variables mappées en mémoire. La fonction memmapfile de MATLAB permet de mapper un fichier, ou une partie de fichier, à une variable MATLAB en mémoire. Ceci facilite l'accès aux jeux de Big Data sur disque trop volumineux pour être stockés dans la mémoire vive ou trop longs à charger.
  3. Variables sur disque. La fonction matfile permet d'accéder aux variables MATLAB directement à partir des fichiers MAT résidant sur le disque, grâce à des commandes d'indexation MATLAB, sans avoir à charger l'ensemble des variables en mémoire. Ceci permet de bloquer le traitement des jeux de Big Data dont la taille excède la capacité de la mémoire.
  4. Fonctions mathématiques multicœurs intrinsèques. De nombreuses fonctions mathématiques intégrées dans MATLAB, comme fft, inv et eig sont « multithread». Leur exécution en parallèle permet à ces fonctions de tirer pleinement parti d'un ordinateur multicœur, fournissant des calculs haute performance pour les jeux de Big Data.
  5. Calculs GPU. Si vous utilisez des GPU, les fonctions mathématiques optimisées pour GPU comprises dans la Parallel Computing Toolbox fournissent encore plus de performance pour les jeux de Big Data.
  6. Calculs parallèles. La Parallel Computing Toolbox propose une boucle for parallèle qui exécute le code et les algorithmes MATLAB en parallèle sur les ordinateurs multicœurs et multiprocesseurs. Si vous utilisez MATLAB Distributed Computing Server, vous pouvez procéder à une exécution en parallèle sur des clusters de machines pouvant contenir des milliers d'ordinateurs.
  7. Le Cloud. Vous pouvez exécuter des calculs MATLAB en parallèle à l'aide de MATLAB Distributed Computing Server sur « Amazon Elastic Computing Cloud (EC2) » pour un traitement parallèle à la demande sur des centaines, voire des milliers d'ordinateurs. Le Cloud permet de traiter des jeux de Big Data sans avoir à acheter ou à gérer un cluster ou un centre de données.
  8. Tableaux distribués. L'utilisation conjointe de la Parallel Computing Toolbox et de MATLAB Distributed Computing Server permet d'utiliser des matrices et des tableaux multidimensionnels distribués sur la mémoire d'un cluster d'ordinateurs. Cette approche permet de stocker et d'effectuer des calculs sur des jeux de Big Data trop volumineux pour être stockés dans la mémoire d'un seul ordinateur.
  9. Algorithmes de flux de données. Grâce aux objets système, vous pouvez effectuer des traitements en continu sur les flux de données entrants trop volumineux ou trop rapides pour être stockés dans la mémoire. Vous pouvez en outre générer du code C/C++ intégré à partir des algorithmes MATLAB à l'aide de MATLAB Coder et exécuter ce code sur des systèmes en temps réel haute performance.
  10. Traitement de blocs d'images. La fonction blockproc de l’Image Processing Toolbox permet de travailler avec des images très volumineuses en les traitant efficacement bloc par bloc. Les calculs sont effectués en parallèle sur plusieurs cœurs et GPU en cas d'utilisation avec la Parallel Computing Toolbox.
  11. Apprentissage automatique. L'apprentissage automatique, aussi appelé machine learning, est particulièrement utile pour obtenir des informations et développer des modèles prédictifs à partir des jeux de Big Data. Une grande variété d'algorithmes d'apprentissage automatique, dont les arbres de décision boostés et agrégés, les algorithmes de k-means et de groupement hiérarchique, la recherche du plus proche voisin K, les mélanges gaussiens, l'algorithme espérance-maximisation (EM), les modèles à chaîne de Markov cachés et les réseaux de neurones sont disponibles dans la Statistics Toolbox et la Neural Network Toolbox.

Exemples et démonstrations

Exemples d'application

Références

Voir aussi : Fichiers HDF5, Importation de données volumineuses (dans Database Toolbox)