Programação Paralela em Arquiteturas Multi-Core/Programação em OpenMP: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Tawhaki (discussão | contribs)
Tawhaki (discussão | contribs)
Linha 179:
Nesse exemplo, o valor da variável "s" vai ser calculado em paralelo para diversos valores de "i", mas a redução desses valores calculados ao valor final (representado pela variável "result") se dará em ordem. Essa construção é extremamente interessante em situações do tipo map-reduce aonde a operação de mapeamento é relativamente cara e pode ser beneficiada por paralelismo, enquanto a operação de redução é relativamente barata mas necessita dos dados em ordem.
 
Por fim, é importante citar a diretiva "flush" que identifica um ponto de sincronização, aonde a implementação deve garantir que todas as threads tenham uma "visão" consistente da memória. Pode-se especificar explicitamente os pontos de flush, mas há também situações nas quais essa diretiva existe implicitamente:
* "omp barrier"
* entrada e saída de "omp critical"
* saída de "omp parallel"
* saída de "omp for"
* saída de "omp sections"
* saída de "omp single"
 
==== Funções da biblioteca ====