Ora e orologio OpenMP() danno due risultati diversi

Ora e orologio OpenMP() danno due risultati diversi

Il clock la funzione misura il tempo della CPU, il tempo che dedichi attivamente alla CPU, la funzione OMP misura il tempo trascorso durante l'esecuzione, due cose completamente diverse.

Il tuo processo sembra essere bloccato in attesa da qualche parte.


Quello che osservi è un risultato perfettamente valido per qualsiasi applicazione parallela:il tempo CPU combinato di tutti i thread restituiti da clock() di solito è superiore all'orologio da parete misurato da omp_get_wtime() tranne se la tua applicazione dorme o attende per lo più.


Il clock() la funzione restituisce CPU tempo, non muro volta. Invece, usa gettimeofday() .