Cos'è una procedura standard mentre parallelizzi un codice seriale [chiuso]

-3

Ho un codice seriale C ++ che simula un algoritmo fisico. Il codice C ++ è ottimizzato in serie. Qual è la procedura e la documentazione standard che vengono seguite durante la parallelizzazione del codice o per l'accelerazione GPU? Sto accelerando il codice su Nvdia Tesla K40 & Cluster di Intel Knights Landing.

    
posta Shashank Gandham 10.11.2017 - 05:58
fonte

2 risposte

3

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.

risposta data 10.11.2017 - 08:15
fonte
2

Non so di "standard", di per sé, ma se stai costruendo una casella basata su nvidia-gpu, guarda le librerie cuda, link In particolare, si cita" algoritmo di fisica ", che spesso implica molti calcoli a matrice, per cui link potrebbe essere molto utile.

Piuttosto che prendere la base di codice esistente e parallelizzarla pezzo dopo pezzo, potrebbe essere necessario rianalizzare ad alto livello gli algoritmi in termini di librerie accelerate con gpu disponibili e quindi scomporre il problema in tale modo di sfruttare al meglio questi componenti della libreria.

    
risposta data 10.11.2017 - 10:12
fonte

Leggi altre domande sui tag