MATLAB

Prestazioni MATLAB

Ottimizzazione delle prestazioni del codice MATLAB

MATLAB è sempre più veloce

Il motore di esecuzione di MATLAB®, introdotto in R2015a, utilizza la compilazione JIT per accelerare tutto il codice MATLAB. La compilazione JIT genera codice macchina nativo ottimizzato per il tuo codice MATLAB e per l'hardware specifico. L'architettura del motore di esecuzione consente sempre più ottimizzazioni ad ogni release, incluse sia chiamate più veloci alle funzioni integrate che operazioni di indicizzazione più veloci. Inoltre, molte funzioni MATLAB di base sono implicitamente multithread per prestazioni migliori.

Le prestazioni di MATLAB sono misurate con un set di benchmark che includono sia operazioni unitarie che applicazioni complete, rappresentanti i workflow reali degli utenti. Questi benchmark vengono eseguiti più volte durante un ciclo di release di MATLAB su diversi hardware e sistemi operativi per convalidare nuove ottimizzazioni, rilevare e risolvere regressioni delle prestazioni e identificare problemi specifici del sistema operativo.

Scopri i miglioramenti specifici a livello delle prestazioni nelle note della release di MATLAB. Da MATLAB R2019b, le note della release delle prestazioni includono i miglioramenti misurati nel tempo di esecuzione rispetto alle precedenti versioni di MATLAB.


Accelerazione media nei workflow dei clienti

Accelerazione media nella suite di test delle prestazioni MATLAB.

MATLAB Profiler

Uso di MATLAB Profiler per identificare i colli di bottiglia nel tuo codice.

Miglioramento delle prestazioni del codice MATLAB

Il primo passo per migliorare le prestazioni del codice è identificare i colli di bottiglia. Ad esempio, è possibile:

  • Misurare il tempo di esecuzione del codice con funzioni come tic, toc e timeit
  • Utilizzare MATLAB Profiler per vedere quali parti del programma hanno tempi di esecuzione più lunghi
  • Utilizzare MATLAB Code Analyzer per ulteriori suggerimenti per migliorare le prestazioni

Una volta identificati i colli di bottiglia nel codice, le tecniche di programmazione più note possono spesso rendere il codice più veloce. Due delle tecniche più comunemente usate sono la vettorializzazione e la preallocazione dell’array. La preallocazione può migliorare le prestazioni evitando l'allocazione dinamica della memoria. La vettorializzazione consente di evitare i loop agendo su tutti gli elementi di un vettore in un solo comando. Insieme, queste tecniche sono in grado di accelerare il codice di diversi ordini di grandezza.

Se necessario, è possibile aumentare le prestazioni scrivendo parti computazionalmente impegnative dell’applicazione in un linguaggio compilato. In MATLAB, le funzioni MEX consentono di chiamare codice C, C++ o Fortran ad alte prestazioni proprio come funzioni integrate in MATLAB. MATLAB Coder™ consente di convertire automaticamente il proprio codice MATLAB in file MEX, eseguibili molto più velocemente.


Utilizzo del calcolo parallelo per sfruttare al meglio l’hardware

È possibile risolvere problemi ad alta intensità di dati e di calcolo utilizzando il calcolo parallelo per accedere esplicitamente a tutte le risorse hardware. È possibile sfruttare le funzionalità per scalare a più processi, più thread e GPU, il tutto con la familiarità e la facilità d'uso di MATLAB. È possibile sviluppare ed eseguire su una singola macchina ed è possibile scalare la propria esecuzione su un cluster di calcolo o su un Cloud senza bisogno di alcuna ricodifica.


Calcolo parallelo con MATLAB

Calcolo parallelo per usare esplicitamente tutte le tue risorse hardware.