Programação Paralela em Arquiteturas Multi-Core/Ambientes de programação e bibliotecas: diferenças entre revisões
[edição verificada] | [revisão pendente] |
Conteúdo apagado Conteúdo adicionado
→Exemplos de uso: -typos |
|||
Linha 104:
# É conceitualmente simples.
# Tem garantia que os pedaços (chunks) não são maiores que grainsize iterações, dos quais deixam você assumir um tamanho para o intervalo máximo para o operator(). Isso garante que algumas vezes operator() será habilitado para usar um arranjo de tamanho fixo temporario no lugar de um arranjo temporario dinamico.
# Escolhe o melhor para uma máquina
O retorno de um simple_partitioner é que isso requer estimatizar o
O auto_partitioner prover uma alternativa que heuristicamente escolhe o tamanho do pedaço(chunk) quando você não o definir. A heuristica se limita a overheads enquanto ainda prover uma ampla oportunidade de balanceamento de carga.
Linha 118:
}
Como com muitas [http://pt.wikipedia.org/wiki/Heuristica heuristicas], tem se situações onde auto_partitioner pode não encontrar o valor ótimo e o simple_partitioner deveria produzir o melhor desempenho.
=== Desenvolvendo aplicações utilizando ''parallel_reduce'' ===
Linha 156:
'''Grafo da
Um aro da figura indica a ordem no tempo. Note que o construtor splitting pode executar concorrentemente enquanto o objeto x
float ParallelSumFoo( const float a[], size_t n ) {
|