Questo documento spiega come ridurre la latenza di rete tra le VM di un job specificando un criterio di posizionamento compatto.
Avere host VM che sono 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 accoppiamento stretto, come attività che comunicano utilizzando librerie MPI. Quando crei un job, puoi facoltativamente richiedere che le relative VM siano più vicine tra loro specificando un criterio di posizionamento compatto. In caso contrario, il posizionamento predefinito delle VM in genere distribuisce le VM tra host separati per ridurre al minimo l'impatto dei guasti 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
- Se non hai mai utilizzato Batch, consulta la Guida introduttiva all'utilizzo di Batch e abilita questa funzionalità completando i prerequisiti per progetti e utenti.
-
Per ottenere le autorizzazioni necessarie per creare un job, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Editor job batch (
roles/batch.jobsEditor
) sul progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'account di servizio del job, che per impostazione predefinita è l'account di servizio Compute Engine predefinito
Per saperne di più sulla concessione dei ruoli, vedi Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
-
Editor job batch (
Limitazioni
Oltre alle limitazioni generali per i criteri di posizionamento compatto, batch ha anche le seguenti limitazioni:
- Quando specifichi che un job deve utilizzare 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
mediante l'interfaccia a riga di comando gcloud o l'API Batch.
gcloud
Crea un file JSON che specifichi i dettagli di configurazione del job e imposti il campo
collocation
suCOLLOCATED
.Ad esempio, per creare un job di script di base che specifica un criterio di posizionamento compatto, crea un file JSON con i seguenti contenuti:
{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world from task ${BATCH_TASK_INDEX}" } } ] }, "taskCount": 3 } ], "allocationPolicy": { "placement": { "collocation": "COLLOCATED" } }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
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 lavoro.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 specifica un criterio di posizionamento compatto, effettua la seguente richiesta:
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 progetto.LOCATION
: la località del lavoro.JOB_NAME
: il nome del job.
Passaggi successivi
- In caso di problemi durante la creazione o l'esecuzione di un job, consulta Risoluzione dei problemi.
- Visualizza job e attività
- Scopri di più sulle opzioni per la creazione di job.