Panoramica della creazione e dell'esecuzione dei job

Questo documento illustra il processo di esecuzione e le opzioni di creazione dei job. I job batch consentono di eseguire carichi di lavoro di elaborazione batch in Google Cloud. Per conoscere i componenti di un job prerequisiti per l'uso di Batch, vedi Inizia a utilizzare Batch.

Come funzionano la creazione e l'esecuzione dei job

Per utilizzare Batch, devi creare un job che specifica il carico di lavoro e i relativi requisiti, quindi la esegue automaticamente.

I dettagli del funzionamento della creazione e dell'esecuzione del job sono descritti nelle seguenti sezioni:

  • Ciclo di vita del job: comprendi gli stati dell'avanzamento di un job dalla creazione all'eliminazione.
  • Coda e pianificazione dei job: comprendi il fattori che influenzano il tempo necessario per l'avvio dell'esecuzione di un job.
  • Esecuzione del job: consente di capire come vengono eseguite le attività di un job sul suo durante l'esecuzione.

Ciclo di vita del job

Questa sezione descrive il ciclo di vita di un job e le sue attività dalla creazione all'eliminazione.

Per ogni carico di lavoro da eseguire su Batch, segui seguente processo di base:

  1. Crea un job: definisci il carico di lavoro da eseguire specificando un gli elementi eseguibili del job, le attività e qualsiasi altro requisito. I dettagli per per la creazione di un job vengono introdotte Opzioni di creazione job di questo documento.
  2. Monitora il job e risolvine i problemi: quando hai finito di creare un job, lo stato il job viene automaticamente messo in coda, pianificato ed eseguito sul Google Cloud. Puoi visualizzare i dettagli di un job creato o di qualsiasi sua attività per per vedere lo stato attuale. Quando un job è in esecuzione o è stato completato, puoi anche il monitoraggio e l'analisi del job tramite i log. Se un job non va a buon fine, puoi risolvere il problema utilizzando eventuali messaggi di errore, eventi di stato o log per diagnosticare il problema. prima di ricreare il job.
  3. Elimina o esporta il job: i log di un job vengono automaticamente. vengono conservati ed eliminati in base al criterio di conservazione di Cloud Logging. Le altre informazioni di un job rimangono disponibili in batch finché non viene eliminato da te o da Google Cloud. Google Cloud elimina automaticamente un job 60 giorni dopo il suo completamento. Prima di allora, puoi facoltativamente eliminare il job personalmente oppure, se necessario le informazioni, puoi esportare il job prima che venga eliminato.

Dopo aver creato un job, il job avanza nei seguenti stati:

  1. In coda (QUEUED): la richiesta di lavoro è stata accettata ed è in attesa in coda. Il job rimane in coda fino a quando le risorse richieste sono disponibili e sono stati valutati i lavori che precedono.
  2. Pianificato (SCHEDULED): il job è stato selezionato dalla coda. per l'esecuzione e l'allocazione delle risorse.
  3. In esecuzione (RUNNING): le risorse per il job sono state create e le sue attività possono iniziare a essere eseguite correttamente.

    Quando un job è in esecuzione, ciascuna delle sue attività progredisce i seguenti stati:

    1. In attesa (PENDING): l'attività è in attesa di esecuzione di una VM.
    2. Assegnata (ASSIGNED): all'attività è stata assegnata una VM da eseguire.
    3. In esecuzione (RUNNING): l'attività è in esecuzione su una VM.
    4. Un'attività viene completata in uno dei seguenti stati:
      • Riuscito (SUCCEEDED): l'attività è riuscita perché ognuna delle sue runnable ha avuto esito positivo (restituito un codice di uscita pari a zero) o contrassegnati come non critici utilizzando ignora campo stato uscita (ignoreExitStatus).
      • Non riuscita (FAILED): l'attività non è riuscita perché almeno una degli elementi eseguibili critici non è riuscito (ha restituito un codice di uscita diverso da zero).
  4. Un job viene completato in uno dei seguenti stati:

    • Riuscito (SUCCEEDED): tutte le attività per il job sono state riuscito.
    • Non riuscita (FAILED): almeno un'attività del job non è riuscita.

Per ulteriori informazioni, vedi stati del job e stati dell'attività nella documentazione di riferimento.

Inserimento in coda e pianificazione dei job

In genere, è più probabile che i job vengano eseguiti e vengano completati prima se vengono e richiedono solo poche risorse comuni. Per i job di esempio nella documentazione batch, che in genere sono molto piccole e utilizzano risorse minime, la loro esecuzione potrebbe essere completata con per alcuni minuti.

Nello specifico, il tempo impiegato da un job per completare l'accodamento e la pianificazione varia a seconda del lavoro e in orari diversi in base ai seguenti fattori:

  • Disponibilità delle risorse di lavoro: la disponibilità delle risorse richieste del job, all'interno luoghi.

    Innanzitutto, un job non può essere eseguito se specifichi risorse che non vengono offerti in quella località. Quando ciò si verifica, il lavoro non va a buon fine un errore di disponibilità della zona.

    In secondo luogo, è più probabile che un job venga ritardato o non vada a buon fine se uno dei suoi le risorse richieste hanno una capacità ridotta rispetto alla domanda attuale a causa errori di disponibilità delle risorse. Di conseguenza, il job potrebbe essere eseguito prima se ne hai bisogno di meno, più comuni e non limitano l'esecuzione del job qualsiasi zona di una regione.

    Per ulteriori informazioni sulle risorse per un job, vedi Esecuzione del job in questo documento. Per ulteriori informazioni sulle sedi in cui specificare un job batch e le sue risorse, vedi Località.

  • Priorità job: la priorità di un job rispetto alle priorità del altri job nel tuo progetto.

    Facoltativamente, puoi specificare la priorità di un job includendo il parametro Flag --priority per gcloud CLI o il campo JSON priority. Puoi definire la priorità di un job come un numero compreso tra 0 (priorità più bassa) e 99 (priorità massima). L'impostazione di un valore più alto la priorità può aiutare un job a essere eseguito prima dei job con priorità più bassa nel tuo progetto.

    Se non configuri la priorità di un job, per impostazione predefinita viene utilizzato il parametro priorità più bassa, 0. Se due job in coda hanno la stessa priorità, il job creato per primo ha la priorità più alta.

  • Quote e limiti: le soglie previste dal tuo progetto per risorse e richieste Google Cloud.

    Un job non può essere eseguito se supera un limite o la quota del progetto per uno qualsiasi degli le risorse o le richieste richieste. In questi casi, Batch potrebbe ritardare un job e riprovare in un secondo momento oppure il job non riesce e viene visualizzato un errore correlato.

    Puoi contribuire a evitare ritardi ed errori per il tuo job creando job che Rispettare tutti i limiti pertinenti e assicurarsi che il progetto disponga di un numero sufficiente di quota pertinente. Per ulteriori informazioni, vedi Quote e limiti per i batch.

Esecuzione del job

Il tempo necessario per l'esecuzione di un job può variare in base alla pianificazione dell'attività e le risorse del job.

Pianificazione attività

Quando viene eseguito un job, le sue attività vengono pianificate in base campo dei criteri di pianificazione (schedulingPolicy), che ti consente di specificare una delle seguenti opzioni:

  • Il prima possibile (AS_SOON_AS_POSSIBLE) (impostazione predefinita): vengono eseguite non appena le risorse sono disponibili e possono essere eseguite in parallelo. Il numero di attività eseguite contemporaneamente dipende dalle attività parallele per VM consentito dalle risorse del job e da altre opzioni di configurazione, come spiegato in Risorse del job di questo documento.
  • In ordine (IN_ORDER): le attività vengono eseguite una alla volta aumentando nell'ordine degli indici.

Risorse del lavoro

Ogni job batch viene eseguito su un gruppo di istanze gestite a livello di regione, un gruppo di una o più corrispondenze le istanze di macchine virtuali (VM) Compute Engine, ciascuna situata in uno dei nelle zone incluse. Ogni VM ha un hardware dedicato Core della CPU (nello specifico, CPU virtuali (vCPU)) e memoria, che influiscono sulle prestazioni un job e un disco di avvio, che archivia un dell'immagine di sistema del sistema operativo e istruzioni per eseguire il job.

Durante il tempo di esecuzione di un job, Batch crea le risorse che soddisfano le tue specifiche. Quando crei un job, ne configuri le risorse specificando quanto segue:

  • Devi specificare le risorse di computing: vCPU, memoria (se richiesto) spazio di archiviazione su disco di avvio aggiuntivo, necessario per l'esecuzione di ogni attività a meno che i valori predefiniti non siano sufficienti. Per ulteriori informazioni, consulta campo risorse di calcolo per attività (computeResource) e sottocampi.

  • Facoltativamente, puoi anche specificare i tipi di VM da utilizzare e aggiungere per ogni VM, come GPU e volumi di archiviazione. In caso contrario specificare queste opzioni, l'opzione Batch seleziona i tipi compatibili VM e non aggiunge altre risorse. Per ulteriori informazioni, consulta Campo Risorse istanza VM (instances[]) e sottocampi.

Il numero di VM e il numero di attività che possono essere eseguite contemporaneamente su ogni VM variano a seconda dei job in base alla pianificazione delle attività a determinati requisiti hardware. Se specifichi l'esecuzione di attività di un job IN_ORDER, il job ha una VM ed esegue una sola attività alla volta. Altrimenti, se le attività di un job eseguono AS_SOON_AS_POSSIBLE, puoi stimare il numero di VM e il numero di attività simultanee utilizzando la seguente formula:

\[{vmsPerJob}=\frac{taskCount}{parallelTasksPerVm}\]

Questa formula ha i seguenti valori:

  • \({vmsPerJob}\): il numero massimo di VM per un job. La quantità effettiva di VM creato per un job potrebbe essere inferiore, ad esempio, Batch prevede che sia più veloce eseguire un job con meno risorse che attendere altre risorse. Questo valore è limitato anche dal valore limiti di VM simultanee per job.
  • \({taskCount}\): il numero totale di attività per il job definito utilizzando il campo del conteggio delle attività (taskCount).
  • \({parallelTasksPerVM}\): il numero massimo di attività che possono essere eseguite su una VM contemporaneamente.

    Questo valore viene determinato da tutti i fattori seguenti: di classificazione:

Opzioni di creazione job

La sezione Creare ed eseguire un job di base illustra la e come definire un elemento eseguibile utilizzando uno script dell'immagine container e come configurare variabili di ambiente predefinite e personalizzate.

Dopo aver compreso i concetti fondamentali per la creazione di posti di lavoro, valuta la possibilità di creare un job che utilizza una o più delle seguenti opzioni di configurazione aggiuntive:

  • Controlla l'accesso per un job:

  • Configura opzioni aggiuntive per un job:

    • Configurare la comunicazione delle attività utilizzando una libreria MPI spiega come configurare un job con attività interdipendenti che comunicano tramite VM diverse utilizzando un'interfaccia di trasmissione dei messaggi (MPI). Un caso d'uso comune per MPI è strettamente accoppiato, carichi di lavoro di computing ad alte prestazioni (HPC).

    • Personalizza le risorse su cui viene eseguito un job:

      • Definisci le risorse del job utilizzando un modello di istanza VM spiega come specificare un modello di VM di Compute Engine per definire le risorse del job quando ne crei uno.

      • Utilizzo delle GPU per un job spiega come definire un job che utilizza una o più GPU (Graphics Processing Unit). Uso comune per i job che utilizzano GPU includono un'elaborazione intensiva dei dati carichi di lavoro di machine learning (ML).

      • Spiegazione dell'articolo Utilizzare i volumi di archiviazione per un job come definire un job che può accedere a uno o più volumi di archiviazione esterna. Le opzioni di archiviazione includono dischi permanenti o esistenti, nuovi SSD locali bucket Cloud Storage esistenti e un file system di rete esistente (NFS) come una condivisione file di Filestore.

      • Panoramica dell'ambiente del sistema operativo VM offre una panoramica su quando e come puoi personalizzare Ambiente del sistema operativo (OS) VM per un job, compreso l'ambiente l'immagine del sistema operativo VM e i dischi di avvio.

    • Ottimizzare i vari aspetti di un lavoro:

      • Migliorare monitoraggio e analisi:

      • Automatizzare i nuovi tentativi in un'attività spiega come riprovare automaticamente le attività di un job dopo tutto oppure errori specificati. I nuovi tentativi automatici possono aiutare a ridurre l'attrito nella risoluzione dei problemi e il tempo di esecuzione complessivo richiesta per i job che presentano errori temporanei. Ad esempio, utilizza i nuovi tentativi automatici per un job eseguito VM spot, che offrono sconti significativi, ma che potrebbero non sono sempre disponibili e possono essere prerilasciati in qualsiasi momento.

      • Colloca le VM per ridurre la latenza spiega come ridurre la latenza di rete tra le VM di un job che richiedono che le VM siano posizionate fisicamente una vicino all'altra. Questo vantaggio in termini di prestazioni può essere particolarmente utile per i job che hanno frequenti comunicazioni di rete tra le VM, ad esempio attività comunicano tramite librerie MPI.

      • Garantire la disponibilità delle risorse utilizzando le prenotazioni VM spiega come configurare un job possono essere eseguite su VM prenotate. Utilizzo delle prenotazioni Le VM possono aiutarti a ridurre al minimo il tempo di pianificazione di un job, evitare errori di disponibilità delle risorse ottimizzare i costi.

      • Usa flusso di immagini spiega come migliorare i tempi di avvio del job tramite il flusso di dati del container di Artifact Registry.

  • Utilizza servizi aggiuntivi per creare ed eseguire job:

Passaggi successivi