Ciao Ho il seguente codice, che compilo con gcc (> 4.2) con la bandierina -fopenmp:strano comportamento OpenMP
int main(void)
{
#pragma omp parallel for
int i;
for(i=0;i<4;i++) while(1);
return 0;
}
ho ottenere un SIGSEGV su OSX Lion (versione 1.7.3, LLVM-GCC 4.2.1) e CentOS 6.2. Cosa sto facendo di sbagliato qui? Grazie
Ho lo stesso, Win7/cygwin, gcc 4.5.0. L'ho eseguito anche se gdb: crea i thread e poi ricevo 'Program ricevuto segnale SIGSEGV, errore di segmentazione. 0x63602726 in omp_get_max_active_levels() '. Funziona bene senza il 'while (1)'. In che modo OpenMP tratta questo ciclo infinito? –
Stai utilizzando una variabile non dichiarata. Ma questo dovrebbe generare un errore di compilazione, non un segfault. Ma con 'i' dichiarato che ho anche un segfault, gcc-4.5.1, openSuSE 11.4. –
Ho dimenticato di aggiungere .. int i .. Ho scritto il codice in fretta: D. – sfa