Esiste, in effetti, un primo passo standard a questo compito.
Misura per primo.
Elenco degli strumenti di analisi delle prestazioni su Wikipedia
Questo ti darà una panoramica di quali sono i calcoli più intensi, il maggior numero di I / O di memoria e / o calcoli intensivi della latenza, se questi calcoli sono pesanti o pesanti in virgola mobile. Inoltre, prova a scoprire se il codice utilizza SIMD.
Quando si dà la priorità a cosa parallelizzare, ci saranno conflitti tra due preferenze:
- Ottimizza prima le cose più pesanti, a causa del principio di Pareto (o regola 80-20)
- Per prima cosa, ottimizza le cose da ottimizzare, perché è facile ed è fattibile senza costare troppo tempo / sforzo.
È difficile dire come scegliere la via di mezzo tra queste preferenze.
Controlla se ti è permesso usare OpenMP. È probabilmente il modo più semplice per abilitare la parallelizzazione del multithread.
Verifica ed elimina le condizioni di gara che causano errori o arresti anomali del codice.