Usando o openMP para processamento multicore vs multithreading
A pergunta pode parecer básica, mas não consegui encontrar nenhuma resposta concreta para isso. Agora, digamos que temos um processador multicore como o corei5 680 (2 núcleos físicos e com HT habilitado para 4 núcleos utilizáveis no sistema operacional). Minha pergunta é onde o openMP se encaixa exatamente na imagem? 1 - Quando dizemos que o multithreading usando o openMP, ele usa automaticamente todos os núcleos disponíveis (neste caso, 4 núcleos virtuais) e executa o thread, dependendo dos ciclos de CPU disponíveis? 2 - O openmp fornece o controle sobre como usar os núcleos físicos / virtuais? ou é abstraído e fornece ao ambiente de leitura mútua como digamos um java?
Desculpe-me se isso soa básico, mas tentei encontrar a resposta on-line, mas não encontrei nada satisfatório.
obrigado