Riduci la latenza utilizzando criteri di posizionamento compatto

Questo documento spiega come ridurre la latenza di rete tra le VM di un job specificando un criterio di posizionamento compatto.

Avere host VM fisicamente più vicini tra loro all'interno di una zona può ridurre la latenza di rete tra le VM. Questi vantaggi in termini di prestazioni possono essere particolarmente utili per i job con attività ad alto accoppiamento, ad esempio attività che comunicano tramite librerie MPI. Quando crei un job, puoi richiedere che le VM di un job siano posizionate più vicine tra loro specificando un criterio di posizionamento compatto. Altrimenti, il posizionamento predefinito delle VM in genere distribuisce le VM tra host separati per ridurre al minimo l'impatto delle interruzioni di alimentazione.

Per saperne di più sui criteri di posizionamento compatto, consulta Informazioni sui criteri di posizionamento nella documentazione di Compute Engine.

Prima di iniziare

Limitazioni

Oltre alle limitazioni generali per i criteri di posizionamento compatto, Batch presenta anche le seguenti restrizioni:

  • Quando specifichi che un job utilizza un criterio di posizionamento compatto, Batch crea ed elimina automaticamente un criterio di posizionamento compatto per le VM del job. Non puoi specificare un criterio di posizionamento compatto esistente per un job.
  • Non puoi specificare un numero di VM per il criterio di posizionamento compatto. Il criterio di posizionamento compatto per un job si applica indipendentemente dal numero di VM su cui viene eseguito il job.

Crea ed esegui un job che utilizza un criterio di posizionamento

Puoi specificare che un job utilizzi un criterio di posizionamento compatto impostando il campo collocation su COLLOCATED utilizzando gcloud CLI o l'API Batch.

gcloud

  1. Crea un file JSON che specifichi i dettagli di configurazione del job e imposti il campo collocation su COLLOCATED.

    Ad esempio, per creare un job di script di base che specifica un criterio di posizionamento compatto, crea un file JSON con il seguente contenuto:

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "echo Hello world from task ${BATCH_TASK_INDEX}"
                }
              }
            ]
          },
          "taskCount": 3
        }
      ],
      "allocationPolicy": {
        "placement": {
          "collocation": "COLLOCATED"
        }
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    
  2. Per creare ed eseguire il job, utilizza il comando gcloud batch jobs submit:

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

    Sostituisci quanto segue:

    • JOB_NAME: il nome del job.

    • LOCATION: la località del job.

    • JSON_CONFIGURATION_FILE: il percorso di un file JSON con i dettagli di configurazione del job.

API

Effettua una richiesta POST al metodo jobs.create che imposta il campo collocation su COLLOCATED.

Ad esempio, per creare un job di script di base che specifichi un criterio di posizionamento compatto, effettua la richiesta seguente:

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto del tuo progetto.

  • LOCATION: la località del job.

  • JOB_NAME: il nome del job.

Passaggi successivi