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'' ===