간단한 배치 정책을 사용하여 지연 시간 감소

이 문서에서는 압축 배치 정책을 지정하여 작업의 VM 간에 네트워크 지연 시간을 줄이는 방법을 설명합니다.

영역 내에서 물리적으로 서로 가까운 VM 호스트를 사용하면 VM 간의 네트워크 지연 시간을 줄일 수 있습니다. 이러한 성능 이점은 MPI 라이브러리를 사용하여 통신하는 태스크와 같이 긴밀하게 결합된 태스크가 있는 작업에 특히 유용합니다. 작업을 만들 때 압축 배치 정책을 지정하여 작업의 VM이 서로 더 가깝게 배치되도록 할 수 있습니다. 그렇지 않으면 기본 VM 배치는 일반적으로 전원 장애의 영향을 최소화하기 위해 별도의 호스트에 VM을 분산합니다.

압축 배치 정책에 대해 자세히 알아보려면 Compute Engine 문서에서 배치 정책 정보를 참조하세요.

시작하기 전에

제한사항

간단한 배치 정책의 일반적인 제한사항 외에도 Batch에는 다음과 같은 제한사항이 있습니다.

  • 압축 배치 정책을 사용하도록 작업을 지정하면 Batch가 작업의 VM에 대한 압축 배치 정책을 자동으로 만들고 삭제합니다. 작업에 대한 기존 압축 배치 정책은 지정할 수 없습니다.
  • 압축 배치 정책에 VM 수를 지정할 수 없습니다. 작업의 압축 배치 정책은 작업이 실행되는 VM 수에 관계없이 적용됩니다.

배치 정책을 사용하는 작업 만들기 및 실행

gcloud CLI 또는 Batch API를 사용하여 collocation 필드COLLOCATED로 설정하여 압축 배치 정책을 사용하도록 작업에 지정할 수 있습니다.

gcloud

  1. 작업의 구성 세부정보를 지정하고 collocation 필드를 COLLOCATED로 설정하는 JSON 파일을 만드세요.

    예를 들어 압축 배치 정책을 지정하는 기본 스크립트 작업을 만들려면 다음 콘텐츠로 JSON 파일을 만듭니다.

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "echo Hello world from task ${BATCH_TASK_INDEX}"
                }
              }
            ]
          },
          "taskCount": 3
        }
      ],
      "allocationPolicy": {
        "placement": {
          "collocation": "COLLOCATED"
        }
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    
  2. 작업을 만들고 실행하려면 gcloud batch jobs submit 명령어를 사용합니다.

    gcloud batch jobs submit JOB_NAME \
      --location LOCATION \
      --config JSON_CONFIGURATION_FILE
    

    다음을 바꿉니다.

    • JOB_NAME: 작업의 이름

    • LOCATION: 작업의 위치

    • JSON_CONFIGURATION_FILE: 작업의 구성 세부정보가 포함된 JSON 파일의 경로

API

collocation 필드를 COLLOCATED로 설정하는 jobs.create 메서드에 대해 POST 요청을 실행합니다.

예를 들어 압축 배치 정책을 지정하는 기본 스크립트 작업을 만들려면 다음 요청을 수행합니다.

POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME

{
  "taskGroups": [
    {
      "taskSpec": {
        "runnables": [
          {
            "script": {
              "text": "echo Hello world from task ${BATCH_TASK_INDEX}"
            }
          }
        ]
      },
      "taskCount": 3
    }
  ],
  "allocationPolicy": {
    "placement": {
      "collocation": "COLLOCATED"
    }
  },
  "logsPolicy": {
    "destination": "CLOUD_LOGGING"
  }
}

다음을 바꿉니다.

다음 단계