Ho codice C++ con i prugmi OpenMP all'interno. Voglio testare questo codice sia per la modalità multithread (con OpenMP) sia per la modalità single thread (senza OpenMP).Come disabilitare le direttive OpenMP in modo piacevole?
Per ora, per passare da una modalità all'altra ho bisogno di commentare #pragma omp
(o almeno parallel
).
Qual è il modo più pulito o predefinito per abilitare/disabilitare OpenMP?
scrittura di codice con "#pragma omp ..." e poi _non_ consentendo -fopenmp cause che collegano erros come "undefined reference to GOMP_parallel_start" –
Ho trovato 'omp_set_num_threads (1)' la più utile (purtroppo, non è molto elegante nella mia opinione) –
Per il nostro progetto abbiamo WITH_OPENMP - un'opzione di tempo di compilazione booleana che gestisce il passaggio -fopenmp e qualsiasi definisce se sono necessari. Id suggerire questo a chiunque stia usando openmp in un progetto, la possibilità di testare senza openmp può essere utile a volte per escluderlo come causa di eventuali bug. – ideasman42