Existem dois erros no seu código, por isso você não consegue usar vários threads.
Primeiro erro é um erro de digitação em OMP Compiler Directives
. Você escreveu
#pragma omp parallal
O correto deve ser, (a palavra é paralela e não paralela)
#pragma omp parallel
Segundo erro é um return 0
inválido dentro do bloco estruturado do OpenMP. O código correto deve ser semelhante,
#include "omp.h"
#include <stdio.h>
int main()
{
omp_set_num_threads(4);
#pragma omp parallel
{
int id = omp_get_thread_num();
printf("Hello (%d)", id );
printf("World (%d)\n", id );
}
return 0;
}
Compilação:
$ gcc prog.c -fopenmp
$ ./a.out
Hello (0)World (0)
Hello (2)World (2)
Hello (1)World (1)
Hello (3)World (3)