Dettagli dei corsi
Questo corso di due giorni tratta una serie di tecniche che consentono di rendere il codice MATLAB® più veloce. Vedrai come identificare e rimuovere i colli di bottiglia computazionali usando tecniche come preallocazione e vettorizzazione. Inoltre, potrai compilare il codice MATLAB in un file MEX usando MATLAB Coder™. Oltretutto, vedrai come sfruttare core multipli sul tuo computer parallelizzando i cicli FOR con il Parallel Computing Toolbox™ e come riscalare su computer multipli usando il MATLAB Parallel Server™. L'interazione tra questi concetti verrà esplorata durante tutto il corso. Se stai lavorando con simulazioni che durano molto tempo, trarrai benefici dalle dimostrazioni pratiche e dagli esercizi trattati nel corso.
Elenco degli argomenti:
- Ottimizzazione dell’esecuzione all'interno del linguaggioMATLAB
- Generazione di file MEX
- Parallelizzazione del calcolo
- Esecuzione offload
- Utilizzo di cluster
- Calcolo su GPU
Giorno 1
Ottimizzazione delle Prestazioni
Obiettivo: Analizzare le prestazioni del codice e utilizzare tecniche per l'accelerazione all'interno di MATLAB.
- Identificazione dei colli di bottiglia
- Preallocazione degli array
- Vettorizzazione delle operazioni in vari modi
- Riscrittura degli algoritmi
Generazione di File MEX
Obiettivo: Generare file di codice compilato a partire da codice MATLAB per ottenere prestazioni migliori.
- Panoramica su MATLAB Coder e flusso di lavoro
- Generazione e verifica di file MEX
- Richiamare funzioni non supportate
- Impostazione dei settaggi per la generazione di file MEX
Parallelizzazione del Calcolo
Obiettivo: Parallelizzare l'esecuzione del codice per sfruttare core multipli.
- Apertura di altri processi MATLAB
- Esecuzione di cicli FOR paralleli
- Misurazione dell'accelerazione
- Elaborazione di più file in parallelo
Giorno 2
Cicli FOR in Parallelo
Obiettivo: Esplorare cicli FOR paralleli in modo più dettagliato ed applicare tecniche per convertire cicli FOR in cicli PARFOR.
- Requisiti dei cicli FOR in parallelo
- Parallelizzazione dei cicli FOR
- Recupero dei risultati intermedi
Esecuzione Offload
Obiettivo: Eseguire il calcolo offload su un altro processo MATLAB al fine di usare MATLAB per altre operazioni nel frattempo. Questo è anche un passaggio di preparazione per utilizzare.
- Elaborazione in batch
- Creazione di processi in batch
- Recupero dei risultati
- Utilizzo del Job Monitor
Utilizzo di Cluster
Obiettivo: Accelerare il calcolo e realizzare simulazioni più estese utilizzando più computer.
- Cluster locali e remoti
- Licenze dinamiche
- Individuazione e connessione di cluster
- Considerazioni sull'accesso ai file
Calcolo su GPU
Obiettivo: Eseguire codice MATLAB sulla scheda grafica del computer (GPU) in uso come ulteriore opzione per velocizzare i calcoli.
- Panoramica dell'architettura GPU ed elaborazione
- Applicazioni adatte per l'elaborazione su GPU
- Invocare funzioni MATLAB su GPU
- Generazione di file MEX CUDA® tramite GPU Coder™
- Utilizzo di codice CUDA pre-esistente
Livello: Intermedio
Prerequisiti:
Durata: 2 giorni
Lingue: English, 한국어