Arcpy Parallel Processing Environment

22

Descobri recentemente a configuração do ambiente Parallel Processing no ArcGIS (isso deve ser novo para a 10.1), no entanto, não há menção sobre quais ferramentas foram projetadas para utilizar essa configuração do ambiente. O ESRI fornece um exemplo de como definir o ambiente de processamento paralelo:

import arcpy

# Use half of the cores on the machine.
arcpy.env.parallelProcessingFactor = "50%" 

Minhas perguntas estão intimamente relacionadas, por isso as incluo no mesmo tópico:

  1. Quais ferramentas de geoprocessamento respeitam o ambiente de processamento paralelo?
  2. Essas configurações são locais ou globais (ou seja, você pode definir o ambiente no início do script do Arcpy e todas as ferramentas respectivas respeitarão a configuração do ambiente posteriormente?
  3. A maioria das ferramentas de geoprocessamento já está definida como: arcpy.env.parallelProcessingFactor = "100%"por padrão?
Aaron
fonte
Bom captador @ Aaron
om_henners

Respostas:

12

Novo no 10.1 SP1, pelo que posso encontrar.

Esta não é uma resposta completa, mas uma pesquisa rápida de "bugs" corrigidos revelou referências a conjuntos de dados em mosaico e ferramentas de análise geoestatística. Este último tem um tópico sobre isso. Nota: embora pareça que este tópico não esteja diretamente relacionado ao fator de processamento paralelo.

Editar para esclarecimento: Muitas ferramentas geoestatísticas agora oferecem suporte ao processamento paralelo, mas não parecem suportar o "fator de processamento paralelo" disponível para outras ferramentas no geoprocessamento.

Uma referência de ferramenta deve listar "fator de processamento paralelo" na seção de ambientes, se a configuração for suportada. O conjunto de ferramentas de cache de bloco também parece suportar o fator.

mkennedy
fonte
2
Posso confirmar geostatistical analyst tools- tentei o assistente hoje e muitos passos foram felizes usando 8 núcleos .. finalmente! =)
radek 12/11/12
5
resources.arcgis.com/en/help/main/10.1/index.html#//... lista as ferramentas que o processamento de suporte paralelo parageostatistical analyst tools
Mapperz
1
Curioso, a implementação é baseada em Python, C ++ ou .NET?
blah238
resources.arcgis.com/en/help/main/10.2/#/… De "What's New" para ArcGIS 10.2 Spatial Analyst: "O suporte multicore foi adicionado às seguintes ferramentas: Reclassificar, Sobreposição ponderada, Soma ponderada, Estatísticas zonais, Estatísticas zonais como tabela ".
DPierce
3

Eu mesmo estava procurando por isso e encontrei algumas das respostas:

1) Quais ferramentas de geoprocessamento respeitam o ambiente de processamento paralelo?

Não consegui encontrar uma lista abrangente deles além daqueles vinculados na outra resposta, mas se você olhar para a referência da ferramenta de geoprocessamento, poderá identificá-la na lista de Ambientes suportados na parte inferior. Se ele listar "Fator de processamento paralelo" nos ambientes, ele será compatível. Caso contrário, isso não acontece. Não é uma lista abrangente, mas permite procurar suporte para uma ferramenta específica, pelo menos.

2) São essas configurações locais ou globais (ou seja, você pode definir o ambiente no início do script do Arcpy e todas as ferramentas respectivas respeitarão a configuração do ambiente posteriormente?

Meu entendimento é que ele age como outros ambientes e pode ser ambos. Se você configurá-lo na própria ferramenta de geoprocessamento ao executá-lo, é local, mas se você o definir em ambientes ArcMap ou ambientes arcpy, será global para essa sessão. Eu posso estar errado nisso, mas não li nada indicando que ele se comporte de maneira diferente.

3) A maioria das ferramentas de geoprocessamento já está definida como: arcpy.env.parallelProcessingFactor = "100%" por padrão?

Não. Não necessariamente, pelo menos. Não é especificado. De acordo com esta página de ajuda do ArcGIS 10.2, o padrão é permitir que cada ferramenta determine sua quantidade. Dada a outra documentação nessa página que indica as configurações ideais para cada ferramenta, com base em disco ou CPU, eu imagino que pode variar entre o uso de um único núcleo e a criação de muitas vezes mais threads que as CPUs. Eles não dizem isso, mas essa é a minha interpretação do padrão que eles especificam.

nicksan
fonte