공간 도메인 구성 - AWS SimSpace Weaver

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

공간 도메인 구성

공간 도메인의 경우 partitioning_strategy를 지정해야 합니다. 이 속성의 값은 스키마의 다른 부분에서 정의한 분할 전략에 지정한 이름입니다.

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
참고

SimSpace Weaver 앱 SDK 버전 1.12.x 프로젝트는 앱.zip 파일과 스키마에 대해 별도의 버킷을 사용합니다.

  • weaver-lowercase-project-name-account-number-app-zips-region

  • weaver-lowercase-project-name-account-number-schemas-region

토폴로지 (이번 릴리스에서 지원되는 유일한 Grid 토폴로지) 를 사용한 파티셔닝 전략은 이 도메인의 공간 앱 파티션을 그리드로 SimSpace Weaver 정렬하도록 지시합니다. grid_partition 속성은 파티션 그리드의 행과 열 수를 지정합니다.

SimSpace Weaver 파티션 그리드의 각 셀에 대해 공간 앱 인스턴스 1개를 시작합니다. 예를 들어 공간 영역에 grid_partition 값이 x: 2 이고 y: 2 공간 영역에 2 * 2 = 4 파티션이 있는 경우 SimSpace Weaver 공간 도메인에 구성된 앱 인스턴스 4개를 시작하고 각 앱 인스턴스에 파티션 1개를 할당합니다.

공간 도메인의 리소스 요구 사항

각 작업자에 최대 17개의 컴퓨팅 리소스 단위를 할당할 수 있습니다. 공간 도메인 app_config 섹션에서 각 공간 앱이 사용하는 컴퓨팅 리소스 단위 수를 지정합니다.

예 공간 앱의 컴퓨팅 리소스 단위를 보여주는 스키마 스니펫
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

도메인에 필요한 컴퓨팅 리소스 단위의 수를 계산하려면 그리드의 셀 수(grid_partition, x *y)에 공간 앱에 할당된 컴퓨팅 리소스 단위의 수를 곱합니다.

이전 예제에서 도메인 MySpatialDomain는 다음을 지정했습니다.

  • x: 2

  • y: 2

  • compute: 1

MySpatialDomain 그리드는 2* 2 = 4셀입니다. 공간 도메인에는 4* 1 = 4 컴퓨팅 리소스 단위가 필요합니다.

스키마에 지정된 모든 도메인의 총 컴퓨팅 리소스 단위 수는 작업자의 desired 수에 각 작업자의 최대 컴퓨팅 리소스 단위 수(17)를 곱한 값보다 작거나 같아야 합니다.

공간 도메인 정보

둘 이상의 공간 도메인을 사용하도록 시뮬레이션을 구성할 수 있습니다. 예를 들어, 하나의 공간 도메인을 사용하여 시뮬레이션의 주요 작업자(예: 사람, 자동차)를 제어하고 다른 공간 도메인을 사용하여 환경을 제어할 수 있습니다.

또한 여러 공간 도메인을 사용하여 시뮬레이션의 각 부분에 서로 다른 리소스를 할당할 수 있습니다. 예를 들어 시뮬레이션에 다른 유형보다 10배 더 많은 엔터티 인스턴스가 있는 엔터티 유형이 있는 경우 각 엔터티 유형을 처리하는 다른 도메인을 만들고 엔터티가 더 많은 도메인에 더 많은 리소스를 할당할 수 있습니다.

중요

SimSpace Weaver 1.14.0 이전 버전에서는 다중 공간 도메인을 지원하지 않습니다.

중요

AWS SimSpace Weaver Local는 현재 다중 공간 도메인을 지원하지 않습니다. SimSpace Weaver Local에 대한 자세한 정보는 지역 개발 SimSpace Weaver 섹션을 참조하십시오.

중요

SimSpace Weaver 각 시뮬레이션에 대해 최대 5개의 도메인을 지원합니다. 여기에는 모든 공간, 사용자 지정 및 서비스 도메인이 포함됩니다.

여러 공간 도메인 구성

두 개 이상의 공간 도메인을 구성하려면 다른 공간 도메인 정의를 스키마에 별도의 명명된 섹션으로 추가합니다. 각 도메인은 launch_apps_by_partitioning_strategy 키를 지정해야 합니다. 다음의 스키마 예제를 참조하세요.

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

공간 도메인을 함께 배치

일부 시나리오에서는 작업자의 공간 도메인용 파티션을 다른 도메인의 파티션 옆에 배치할 수 있습니다. 그러면 파티션이 서로에 대한 크로스 도메인 구독을 생성하는 경우 성능 특성이 향상될 수 있습니다.

스키마에 최상위 키를 placement_constraints 추가하여 함께 SimSpace Weaver 배치해야 하는 도메인을 지정합니다. 필수 on_workers 키는 스키마의 명명된 workers 구성을 참조해야 합니다.

예 함께 배치된 공간 도메인을 보여주는 스키마 스니펫
workers: MyComputeWorkers: type: "sim.c5.24xlarge" desired: 2 placement_constraints: - placed_together: ["MySpatialDomain", "MySecondSpatialDomain"] on_workers: ["MyComputeWorkers"]
중요
  • 배치 그룹을 사용하는 경우 다음을 수행합니다.

    • x * y가 작업자 수의 배수인지 확인합니다.

    • 배치 그룹 값이 함께 배치하는 도메인의 그리드 크기를 나타내는 공약수인지 확인합니다.

  • 배치 그룹을 사용하지 않는 경우 다음을 수행합니다.

    • 공간 도메인 그리드의 한 축에 작업자 수와 동일한 공약수가 있는지 확인합니다.

배치 그룹에 대한 자세한 내용은 파티셔닝 전략 섹션을 참조하세요.

공간 도메인에 대한 FAQ

Q1. 기존 시뮬레이션에 다른 공간 도메인을 추가하려면 어떻게 해야 하나요?

  • 실행 중인 시뮬레이션의 경우 - 실행 중인 시뮬레이션의 구성을 변경할 수 없습니다. 스키마에서 도메인 구성을 변경하고, 스키마와 앱 zip을 업로드하고, 새 시뮬레이션을 시작합니다.

  • 새 시뮬레이션의 경우 - 스키마에서 도메인 구성을 추가하고, 스키마와 앱 zip을 업로드하고, 새 시뮬레이션을 시작합니다.

공간 도메인 문제 해결

시뮬레이션을 시작하려고 했지만 도메인 구성이 유효하지 않은 경우 다음의 오류가 발생할 수 있습니다.

"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].\"}]"
예상 원인
  • 스키마는 작업자가 사용할 수 있는 것보다 더 많은 컴퓨팅 리소스 단위를 앱에 할당합니다.

  • SimSpace Weaver 워커에 도메인을 함께 배치할 방법을 결정할 수 없습니다. 이는 공간 도메인을 여러 개 지정했지만 도메인 그리드 사이에 공약수나 배수가 없는 경우(예: 2x4 그리드와 3x5 그리드 사이)에 발생합니다.