Reducir la latencia usando políticas de colocación compacta

En este documento, se explica cómo reducir la latencia de red entre las VMs de un trabajo especifica una política de posición compacta.

Tener hosts de VM que estén físicamente más cerca entre sí dentro de zone puede reducir la latencia de red entre las VMs. Este beneficio de rendimiento puede ser muy útil para trabajos con tareas con acoplamiento alto, como que se comunican con bibliotecas de la MPI. Cuando creas un trabajo, tienes la opción de solicitar que se ubiquen sus VMs más cerca entre sí especificando una política de posición compacta. De lo contrario, la ubicación predeterminada de las VM suele distribuirlas separados hosts para ayudar a minimizar el impacto de los cortes de energía.

Para obtener más información sobre las políticas de posición compacta, consulta Acerca de las políticas de posición en la documentación de Compute Engine.

Antes de comenzar

Restricciones

Además del artículo restricciones generales para las políticas de posiciones compactas, Batch también tiene las siguientes restricciones:

  • Cuando especificas que un trabajo usa una política de posición compacta Batch crea y borra automáticamente un política de posición compacta para las VMs del trabajo. No puedes especificar política de posición compacta existente para un trabajo.
  • No puedes especificar una cantidad de VMs para la política de posición compacta. La política de posición de compactación de un trabajo se aplica sin importar la cantidad VMs en las que se ejecuta el trabajo.

Crea y ejecuta un trabajo que use una política de posición

Puedes especificar que un trabajo use una política de posición compacta Campo collocation a COLLOCATED con gcloud CLI o la API de Batch.

gcloud

  1. Crear un archivo JSON que especifique los detalles y los conjuntos de configuración del trabajo el campo collocation a COLLOCATED.

    Por ejemplo, para crear un trabajo de secuencia de comandos básico que especifique un de posición compacta, crea un archivo JSON con el siguiente contenido:

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "echo Hello world from task ${BATCH_TASK_INDEX}"
                }
              }
            ]
          },
          "taskCount": 3
        }
      ],
      "allocationPolicy": {
        "placement": {
          "collocation": "COLLOCATED"
        }
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    
  2. Para crear y ejecutar el trabajo, usa el Comando gcloud batch jobs submit:

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

    Reemplaza lo siguiente:

    • JOB_NAME: Es el nombre del trabajo.

    • LOCATION: Es la ubicación. del trabajo.

    • JSON_CONFIGURATION_FILE: Es la ruta de acceso para un JSON. con los detalles de configuración del trabajo.

API

Realiza una solicitud POST al Método jobs.create que establece el campo collocation en COLLOCATED.

Por ejemplo, para crear un trabajo de secuencia de comandos básico que especifique un política de posición compacta, realiza la siguiente solicitud:

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"
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto de tu proyecto.

  • LOCATION: Es la ubicación. del trabajo.

  • JOB_NAME: Es el nombre del trabajo.

¿Qué sigue?