Configuration de domaines spatiaux - AWS SimSpace Weaver

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de domaines spatiaux

Pour les domaines spatiaux, vous devez spécifier unpartitioning_strategy. La valeur de cette propriété est le nom que vous avez donné à une stratégie de partitionnement que vous avez définie dans une autre partie du schéma.

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
Note

SimSpace Weaver Les projets du SDK d'application version 1.12.x utilisent des compartiments distincts pour les fichiers .zip de l'application et le schéma :

  • weaver - nom du projet en minuscules - numéro de compte - app-zips - région

  • weaver - nom du projet en minuscules - numéro de compte - schémas - région

Une stratégie de partitionnement avec une Grid topologie (la seule topologie prise en charge dans cette version) indique d' SimSpace Weaver organiser les partitions d'applications spatiales de ce domaine dans une grille. La grid_partition propriété indique le nombre de lignes et de colonnes de la grille de partition.

SimSpace Weaver démarrera 1 instance de l'application spatiale pour chaque cellule de la grille de partition. Par exemple, si un domaine spatial comporte x: 2 y: 2 des grid_partition valeurs et qu'il comporte 2 * 2 = 4 partitions. SimSpace Weaver démarrera 4 instances de l'application configurées dans le domaine spatial et attribuera une partition à chaque instance d'application.

Besoins en ressources pour les domaines spatiaux

Vous pouvez attribuer jusqu'à 17 unités de ressources de calcul à chaque travailleur. Vous spécifiez le nombre d'unités de ressources de calcul utilisées par chaque application spatiale dans la app_config section de votre domaine spatial.

Exemple extrait de schéma montrant les unités de ressources de calcul pour une application spatiale
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

Pour calculer le nombre d'unités de ressources de calcul requises par un domaine, multipliez le nombre de cellules de votre grille (dans votregrid_partition, x *y) par le nombre d'unités de ressources de calcul attribuées aux applications spatiales.

Dans l'exemple précédent, le domaine MySpatialDomain spécifie :

  • x: 2

  • y: 2

  • compute: 1

La grille pour MySpatialDomain comporte 2 * 2 = 4 cellules. Le domaine spatial nécessite 4 * 1 = 4 unités de ressources de calcul.

Le nombre total d'unités de ressources de calcul pour tous les domaines spécifiés dans votre schéma doit être inférieur ou égal au desired nombre de travailleurs multiplié par le nombre maximum d'unités de ressources de calcul pour chaque travailleur (17).

Domaines spatiaux multiples

Vous pouvez configurer votre simulation pour utiliser plusieurs domaines spatiaux. Par exemple, vous pouvez utiliser un domaine spatial pour contrôler les principaux acteurs d'une simulation (tels que les personnes et les voitures) et un autre domaine spatial pour contrôler l'environnement.

Vous pouvez également utiliser plusieurs domaines spatiaux pour affecter différentes ressources aux différentes parties de votre simulation. Par exemple, si votre simulation comporte un type d'entité qui possède 10 fois plus d'instances d'entités qu'un autre type, vous pouvez créer différents domaines pour gérer chaque type d'entité et allouer plus de ressources au domaine comportant plus d'entités.

Important

SimSpace Weaver les versions antérieures à la version 1.14.0 ne prennent pas en charge plusieurs domaines spatiaux.

Important

AWS SimSpace Weaver Localne prend actuellement pas en charge plusieurs domaines spatiaux. Pour plus d’informations sur SimSpace Weaver Local, consultez Développement local en SimSpace Weaver.

Important

SimSpace Weaver prend en charge jusqu'à 5 domaines pour chaque simulation. Cela inclut tous les domaines spatiaux, personnalisés et de service.

Configuration de plusieurs domaines spatiaux

Pour configurer plusieurs domaines spatiaux, ajoutez les autres définitions de domaines spatiaux sous forme de sections nommées distinctes dans votre schéma. Chaque domaine doit spécifier la launch_apps_by_partitioning_strategy clé. Consultez l'exemple de schéma suivant.

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

Regroupement de domaines spatiaux

Dans certains scénarios, vous souhaiterez peut-être placer les partitions d'un domaine spatial sur des serveurs à côté des partitions d'un autre domaine. Cela peut améliorer les performances si ces partitions créent des abonnements interdomaines les unes aux autres.

Ajoutez la clé de niveau supérieur placement_constraints à votre schéma pour spécifier les domaines à SimSpace Weaver placer ensemble. La on_workers clé requise doit faire référence à une workers configuration nommée dans le schéma.

Exemple extrait de schéma montrant les domaines spatiaux placés ensemble
workers: MyComputeWorkers: type: "sim.c5.24xlarge" desired: 2 placement_constraints: - placed_together: ["MySpatialDomain", "MySecondSpatialDomain"] on_workers: ["MyComputeWorkers"]
Important
  • Si vous utilisez des groupes de placement :

    • Assurez-vous que x * y est un multiple du nombre de travailleurs.

    • Assurez-vous que les valeurs des groupes de placement sont des diviseurs communs pour les dimensions de la grille des domaines que vous placez ensemble.

  • Si vous n'utilisez pas de groupes de placement :

    • Assurez-vous qu'un axe de vos grilles de domaine spatial possède un diviseur commun égal au nombre de travailleurs.

Pour plus d'informations sur les groupes de placement, consultezStratégies de partitionnement.

Questions fréquemment posées sur les domaines spatiaux

Q1. Comment puis-je ajouter un autre domaine spatial à une simulation existante ?

  • Pour une simulation en cours : vous ne pouvez pas modifier la configuration d'une simulation en cours d'exécution. Modifiez la configuration du domaine dans le schéma, téléchargez le schéma et les fichiers compressés de l'application, puis lancez une nouvelle simulation.

  • Pour une nouvelle simulation : ajoutez la configuration du domaine au schéma, téléchargez le schéma et les fichiers compressés de l'application, puis lancez la nouvelle simulation.

Résolution des problèmes liés aux domaines spatiaux

L'erreur suivante peut s'afficher lorsque vous essayez de démarrer votre simulation mais que la configuration de votre domaine n'est pas valide.

"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].\"}]"
Causes potentielles
  • Le schéma alloue plus d'unités de ressources de calcul aux applications que celles disponibles pour les travailleurs.

  • SimSpace Weaver Impossible de déterminer un arrangement pour placer les domaines ensemble entre les mains des travailleurs. Cela se produit lorsque vous spécifiez plusieurs domaines spatiaux mais qu'il n'existe pas de diviseur commun (ou multiple entre les grilles de domaines, par exemple entre une grille 2x4 et une grille 3x5).