Hola tengo el siguiente código, que puedo compilar con gcc (> 4,2) con la bandera -fopenmp:comportamiento extraño OpenMP
int main(void)
{
#pragma omp parallel for
int i;
for(i=0;i<4;i++) while(1);
return 0;
}
Puedo obtener un SIGSEGV en OSX Lion (versión 1.7.3, llvm-gcc 4.2.1) y CentOS 6.2. ¿Qué estoy haciendo mal aquí? Gracias
Obtengo lo mismo, Win7/cygwin, gcc 4.5.0. Lo ejecuté a través de gdb: crea los hilos y luego recibo 'Program received signal SIGSEGV, Segmentation fault. 0x63602726 en omp_get_max_active_levels() '. Funciona bien sin el 'while (1)'. ¿Cómo trata OpenMP ese bucle infinito? –
Estás usando una variable no declarada. Pero eso debería generar un error de compilación, no un segfault. Pero con 'i' declarado también recibo un segfault, gcc-4.5.1, openSuSE 11.4. –
Olvidé agregar ... int i .. Escribí el código a toda prisa: D. – sfa