Formations MATLAB et Simulink

Accélération et parallélisation de code MATLAB

Détails de la formation

Cette formation de deux jours présente un ensemble de techniques permettant d'accélérer l'exécution du code MATLAB®. Vous allez identifier et éliminer les portions inefficaces de code à l'aide de la préallocation et de la vectorisation. De plus, vous aurez opportunité de compiler le code MATLAB dans des fichiers MEX avec MATLAB Coder. Au-delà des ces techniques, vous apprendrez à utiliser Parallel Computing Toolbox™ pour paralléliser les boucles et MATLAB Parrallel Server™ pour distribuer l'exécution d'un code sur plusieurs machines. L’interaction entre ces concepts sera explorée tout au long du cours. Si vous travaillez avec des simulations de longue durée, vous tirerez profit des démonstrations et exercices pratiques inclus dans la formation.

Les sujets abordés sont les suivants :

  • Amélioration des performances en utilisant le langage MATLAB
  • Génération de fichiers MEX
  • Parallélisation des calculs
  • Déportation de l'exécution
  • Utilisation de clusters
  • Calculs sur GPU

Jour 1


Amélioration des performances

Objectif: Analyser les performances d'un code séquentiel et découvrir les stratégies pour la réduction du temps d'exécution dans MATLAB.

  • Identification des goulots d'étranglement
  • Pré-allocation des tableaux
  • Vectorisation des opérations
  • Réécriture des algorithmes

Génération de fichiers MEX

Objectif: Générer des fichiers de code MATLAB compilé pour en améliorer les performances en exécution.

  • Vue d'ensemble de l'utilisation de MATLAB Coder
  • Génération et vérification de fichiers MEX
  • Appel de fonctions non supportées
  • Réglage des paramètres pour la génération de fichiers MEX

Parallélisation des opérations de calcul

Objectif: Convertir le code existant pour l'exécution en parallèle sur plusieurs processeurs.

  • Ouverture de nouvelles instances MATLAB
  • Parallélisation des boucles for
  • Mesure de la performance
  • Traitement de fichiers de données multiples en parallèle

Jour 2


Boucles for parallèles

Objectif: Explorer en détail les boucles for parallèles et appliquer les techniques de conversion de boucles for en boucles parfor.

  • Exigences des boucles for parallèles
  • Parallélisation des boucles for
  • Obtention de résultats intermédiaires

Déportation de l'exécution

Objectif: Décharger l'exécution sur un autre processus MATLAB afin d'utiliser MATLAB pour d'autres tâches. Cette étape est aussi un préliminaire pour l'utilisation de clusters.

  • Processus en mode batch
  • Création de jobs batch
  • Obtention des résultats
  • Utilisation du Job Monitor

Utilisation de clusters

Objectif: Accélérer les calculs et effectuer des simulations intensives à l'aide de plusieurs ordinateurs.

  • Clusters locaux et distants
  • Licences dynamiques
  • Recherche d'un cluster et connexion
  • Considérations sur l'accès aux fichiers

Calcul sur GPU

Objectif: Exécuter des codes MATLAB sur la carte graphique de votre ordinateur (GPU) comme une autre option pour réduire le temps d'exécution de vos codes.

  • Aperçu de l'architecture GPU et des techniques de traitement
  • Applications adaptées pour le traitement GPU
  • Appel de fonctions MATLAB sur le GPU
  • Génération de fichiers CUDA® MEX avec GPU Coder™
  • Utilisation de code CUDA préexistant

Niveau: Intermédiaire

Pré-requis:

Durée: 2 jours

Langues: English, Français, 日本語, 한국어