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

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

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

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

시작하기 전에

  1. Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
  2. 작업을 만드는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

    역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

    커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

제한사항

압축 배치 정책에 대한 일반적인 제한사항 외에도 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"
  }
}

다음을 바꿉니다.

다음 단계