Configurar domínios espaciais - AWS SimSpace Weaver

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar domínios espaciais

Para domínios espaciais, você deve especificar uma partitioning_strategy. O valor dessa propriedade é o nome que você deu a uma estratégia de particionamento definida em outra parte do esquema.

MySpatialDomain: launch_apps_by_partitioning_strategy: partitioning_strategy: "MyGridPartitioning" grid_partition: x: 2 y: 2 app_config: package: "s3://weaver-myproject-111122223333-us-west-2/MySpatialApp.zip" launch_command: ["MySpatialApp"] required_resource_units: compute: 1
nota

SimSpace Weaver Os projetos da SDK versão 1.12.x do aplicativo usam buckets separados para os arquivos.zip do aplicativo e o esquema:

  • tecelão-lowercase-project-name-account-number-app-zips-region

  • tecelão-lowercase-project-name-account-number-esquemas-region

Uma estratégia de particionamento com uma Grid topologia (a única topologia suportada nesta versão) SimSpace Weaver direciona a organização das partições espaciais de aplicativos desse domínio em uma grade. A propriedade grid_partition especifica o número de linhas e colunas da grade de partição.

SimSpace Weaver iniciará 1 instância do aplicativo espacial para cada célula na grade de partição. Por exemplo, se um domínio espacial tiver grid_partition valores x: 2 e y: 2 houver 2 * 2 = 4 partições no domínio espacial. SimSpace Weaver iniciará 4 instâncias do aplicativo configurado no domínio espacial e atribuirá 1 partição a cada instância do aplicativo.

Requisitos de recursos para domínios espaciais

É possível atribuir até 17 unidades de recursos de computação a cada operador. Especifique o número de unidades de recursos computacionais que cada aplicativo espacial usa na seção app_config do seu domínio espacial.

exemplo Trecho de esquema mostrando as unidades de recursos computacionais para um aplicativo espacial
MySpatialDomain: launch_apps_by_partitioning_strategy: partitioning_strategy: "MyGridPartitioning" grid_partition: x: 2 y: 2 app_config: package: "s3://weaver-myproject-111122223333-artifacts-us-west-2/MySpatialApp.zip" launch_command: ["MySpatialApp"] required_resource_units: compute: 1

Para calcular o número de unidades de recursos computacionais que um domínio exige, multiplique o número de células em sua grade (em sua grid_partition, x*y) pelo número de unidades de recursos computacionais atribuídas aos aplicativos espaciais.

No exemplo anterior, o domínio MySpatialDomain especifica:

  • x: 2

  • y: 2

  • compute: 1

A grade para MySpatialDomain tem 2 x 2 = 4 células. O domínio espacial requer 4 x 1 = 4 unidades de recursos computacionais.

O número total de unidades de recursos computacionais para todos os domínios especificados em seu esquema deve ser menor ou igual ao número desired de operadores multiplicado pelo número máximo de unidades de recursos computacionais para cada operador (17).

Vários domínios espaciais

É possível configurar sua simulação para usar mais de um domínio espacial. Por exemplo, você pode usar um domínio espacial para controlar os principais atores em uma simulação (como pessoas e carros) e um domínio espacial diferente para controlar o ambiente.

Você também pode usar vários domínios espaciais para atribuir recursos distintos a diferentes partes da simulação. Por exemplo, se a simulação tem um tipo de entidade que tem dez vezes mais instâncias de entidade do que outro tipo, é possível criar domínios diferentes para lidar com cada tipo de entidade e alocar mais recursos para o domínio com mais entidades.

Importante

SimSpace Weaver versões anteriores à 1.14.0 não oferecem suporte a vários domínios espaciais.

Importante

AWS SimSpace Weaver Local atualmente não oferece suporte a vários domínios espaciais. Para obter mais informações sobre SimSpace Weaver Local, consulte Desenvolvimento local em SimSpace Weaver.

Importante

SimSpace Weaver suporta até 5 domínios para cada simulação. Isso inclui todos os domínios espaciais, personalizados e de serviço.

Configurar vários domínios espaciais

Para configurar mais de um domínio espacial, adicione as outras definições de domínio espacial como seções nomeadas distintas em seu esquema. Cada domínio deve especificar a chave launch_apps_by_partitioning_strategy. Veja o esquema de exemplo a seguir.

sdk_version: "1.14" workers: MyComputeWorkers: type: "sim.c5.24xlarge" desired: 1 clock: tick_rate: "30" partitioning_strategies: MyGridPartitioning: topology: Grid aabb_bounds: x: [0, 1000] y: [0, 1000] domains: MySpatialDomain: launch_apps_by_partitioning_strategy: partitioning_strategy: "MyGridPartitioning" grid_partition: x: 2 y: 2 app_config: package: "s3://weaver-myproject-111122223333-artifacts-us-west-2/MySpatialApp.zip" launch_command: ["MySpatialApp"] required_resource_units: compute: 1 MySecondSpatialDomain: launch_apps_by_partitioning_strategy: partitioning_strategy: "MyGridPartitioning" grid_partition: x: 2 y: 2 app_config: package: "s3://weaver-myproject-111122223333-artifacts-us-west-2/MySpatialApp2.zip" launch_command: ["MySpatialApp2"] required_resource_units: compute: 1

Posicionar domínios espaciais juntos

Em alguns cenários, você pode desejar posicionar partições para um domínio espacial em operadores ao lado de partições de outro domínio. Isso pode melhorar as características de desempenho se essas partições criarem assinaturas entre domínios.

Adicione a chave de nível superior placement_constraints ao seu esquema para especificar quais domínios SimSpace Weaver devem ser colocados juntos. A chave on_workers necessária deve se referir a uma configuração de workers nomeada no esquema.

exemplo Trecho de esquema mostrando domínios espaciais posicionados juntos
workers: MyComputeWorkers: type: "sim.c5.24xlarge" desired: 2 placement_constraints: - placed_together: ["MySpatialDomain", "MySecondSpatialDomain"] on_workers: ["MyComputeWorkers"]
Importante
  • Se você usa grupos de posicionamento:

    • Certifique-se de que X x Y seja um múltiplo do número de operadores.

    • Certifique-se de que os valores do grupo de posicionamento sejam divisores comuns para as dimensões da grade dos domínios que você posicionar juntos.

  • Se você não usa grupos de posicionamento:

    • Certifique-se de que um eixo de suas grades de domínio espacial tenha um divisor comum igual ao número de operadores.

Para mais informações sobre grupos de posicionamento, consulte Estratégias de particionamento.

Perguntas frequentes sobre domínios espaciais

P1. Como adicionar outro domínio espacial a uma simulação existente?

  • Para uma simulação em execução: não é possível alterar a configuração de uma simulação em execução. Altere a configuração do domínio no esquema, faça o carregamento do esquema e dos .zips do aplicativo e inicie uma nova simulação.

  • Para uma nova simulação: adicione a configuração do domínio ao esquema, carregue o esquema e os .zips do aplicativo e inicie a nova simulação.

Solucionar problemas de domínios espaciais

O erro a seguir ocorre ao iniciar a simulação com uma configuração de domínio inválida.

"StartError": "[{\"errorType\":\"SchemaFormatInvalid\",\"errorMessage\":
    \"We were unable to determine an arrangement of your domains that would fit 
    within the provided set of workers. This can generally be resolved by 
    increasing the number of workers if able, decreasing your domains\u0027 
    [\u0027\u0027grid_partition\u0027\u0027] values, or adjusting the 
    dimensions of your [\u0027\u0027grid_placement_groups\u0027\u0027].\"}]"
Possíveis causas
  • O esquema aloca mais unidades de recursos computacionais para aplicativos do que as disponíveis para os operadores.

  • SimSpace Weaver não consigo determinar um acordo para colocar domínios juntos em trabalhadores. Isso acontece quando vários domínios espaciais são especificados, mas não há um divisor comum ou um múltiplo entre as grades de domínio, como entre uma grade 2 x 4 e uma grade 3 x 5).