Formazione MATLAB e Simulink

Accelerazione e parallelizzazione del codice MATLAB

Guarda il programma e iscriviti

Dettagli dei corsi

Questo corso della durata di due giorni fornisce una varietà di tecniche per velocizzare l'esecuzione del proprio codice MATLAB®. Verranno identificati e rimossi colli di bottiglia computazionali utilizzando tecniche quali la preallocazione e la vettorizzazione. Si compilerà inoltre il codice di MATLAB in file MEX tramite MATLAB Coder™. Si sfrutteranno inoltre i core multipli del proprio computer parallelizzando i for loop con Parallel Computing Toolbox™, potendo scalare tra cluster o cloud che vanno da un numero moderato di core all’High Performance Computing (HPC), utilizzando MATLAB Parallel Server™. L'interazione tra questi concetti sarà illustrata durante tutto il corso. Se si lavora con simulazioni a lunga esecuzione, risulteranno utili le dimostrazioni e gli esercizi pratici del corso.
 
Elenco degli argomenti:
  • Miglioramento delle performance di MATLAB di base
  • Generazione di file MEX
  • Parallelizzazione di calcoli
  • Esecuzione di offload
  • Utilizzo dei cluster
  • Elaborazione GPU

Giorno 1/2


Miglioramento delle prestazioni

Obiettivo: Analizzare le prestazioni del codice e utilizzare le tecniche di accelerazione da MATLAB.

  • Identificazione dei colli di bottiglia
  • Preallocazione di array
  • Vettorizzazione delle operazioni con diversi metodi
  • Riscrittura di algoritmi

Generazione di file MEX

Obiettivo: Generare file di codice compilati dal codice MATLAB per migliorare le prestazioni.

  • Panoramica su workflow su MATLAB Coder
  • Generazione e verifica di file MEX
  • Richiamo di funzioni non supportate
  • Adattamento delle impostazioni per la generazione di file MEX

Parallelizzazione di calcoli

Obiettivo: Parallelizzare l'esecuzione del codice per sfruttare i core multipli.

  • Apertura di ulteriori processi di MATLAB
  • Esecuzione di for loop paralleli
  • Misurazione della velocizzazione
  • Elaborazione di più file in parallelo

Giorno 2/2


For loop paralleli

Obiettivo: Analizzare i for loop in maggior dettaglio e applicare tecniche di conversione da for loop a parfor loop.

  • Requisiti dei for loop paralleli
  • Parallelizzazione di for loop
  • Richiamo di risultati intermedi

Esecuzione di offload

Obiettivo: Eseguire l'offload dei calcoli a un altro processo di MATLAB per poter utilizzare nel frattempo MATLAB per altre attività. Si tratta anche di una fase di preparazione all'utilizzo dei cluster.

  • Elaborazione in batch
  • Creazione di lavori in batch
  • Richiamo dei risultati
  • Utilizzo di Job Monitor

Utilizzo dei cluster

Obiettivo: Accelerare i calcoli e ottenere simulazioni più estese con l'utilizzo di più computer.

  • Cluster locali e remoti
  • Licenze dinamiche
  • Individuazione e connessione di cluster
  • Considerazioni sull'accesso ai file

Calcolo GPU

Obiettivo: Eseguire il codice MATLAB sulla scheda grafica (GPU) del computer in uso come ulteriore opzione per velocizzare i calcoli.

  • Panoramica sull'architettura e sull'elaborazione GPU
  • Applicazioni adatte all'elaborazione GPU
  • Richiamo di funzioni di MATLAB sulla GPU
  • Generazione di file MEX CUDA® con GPU Coder™
  • Utilizzo di codice CUDA già esistente

Livello: Intermedio

Prerequisiti:

Durata: 2 giorni

Lingue: English, 한국어

Guarda il programma e iscriviti