Programação Paralela em Arquiteturas Multi-Core/Ambientes de programação e bibliotecas: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
Linha 102:
Um simple_partitioner implementa um politica padrão. Esse padrão para o parallel_for, parallel_reduce. Um simples particionador tem as seguintes vantagens:
# É 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 especifica.
O retorno de um simple_partitioner é que isso requer estimatizar o proprio grainsize e um ótimo grainsize pode ser particular para uma máquina.
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.
O código abaixo mostra como usar um auto_partitioner no lugar de um grainsize. Note que o parametro grainsize é omitido quando construir um blocked_range e que um auto_partitioner objeto é passado como um terceiro argumento para o parallel_for.
=== Desenvolvendo aplicações utilizando ''parallel_reduce'' ===
|