Array-Aufträge - AWS Batch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Array-Aufträge

Ein Array-Auftrag ist ein Auftrag, der gemeinsame Parameter wie Auftragsdefinition, vCPUs und Speicher nutzt. Es wird als eine Sammlung verwandter, aber getrennter Basisjobs ausgeführt, die auf mehrere Hosts verteilt und möglicherweise gleichzeitig ausgeführt werden. Array-Jobs sind die effizienteste Methode, um extrem parallel Jobs wie Monte-Carlo-Simulationen, parametrische Sweeps oder große Rendering-Jobs auszuführen.

AWS Batch-Array-Aufträge werden wie normale Aufträge gesendet. Sie geben jedoch eine Array-Größe (zwischen 2 und 10.000) an. Diese legt fest, wie viele untergeordnete Aufträge im Array ausgeführt werden sollen. Wenn Sie einen Auftrag mit einer Array-Größe von 1000 senden, wird ein einzelner Auftrag ausgeführt und erzeugt 1000 untergeordnete Aufträge. Der Array-Auftrag ist eine Referenz oder ein Zeiger, um alle untergeordneten Aufträge zu verwalten. Auf diese Weise können Sie große Workloads mit einer einzigen Abfrage einreichen. Das imattemptDurationSeconds Parameter angegebene Timeout gilt für jeden untergeordneten Job. Für den Auftrag des übergeordneten Arrays gibt es kein Timeout.

Wenn Sie einen Array-Auftrag senden, erhält der übergeordnete Array-Auftrag eine normale AWS Batch-Auftrags-ID. Jeder Kinderjob hat dieselbe Basis-ID. Der Array-Index für den untergeordneten Job wird jedoch an das Ende der übergeordneten ID angehängt, z. B.example_job_ID:0 für den ersten untergeordneten Job des Arrays.

Zur Laufzeit wird die Umgebungsvariable AWS_BATCH_JOB_ARRAY_INDEX auf die Nummer des entsprechenden Auftrags-Array-Index des Containers festgelegt. Der erste Array-Jobindex ist nummeriert0, und nachfolgende Versuche erfolgen in aufsteigender Reihenfolge (z. B. 1, 2 und 3). Sie können diesen Indexwert dazu verwenden, zu steuern, wie Ihre untergeordneten Array-Auftragselemente differenziert werden. Weitere Informationen finden Sie unter Tutorial: Den Array-Jobindex zur Steuerung der Jobdifferenzierung verwenden.

Für Array-Auftrags-Abhängigkeiten können Sie einen Typ für eine Abhängigkeit angeben (z. B. SEQUENTIAL oder N_TO_N). Sie können eine SEQUENTIAL-Typabhängigkeit angeben, ohne eine Auftrags-ID anzugeben, sodass jeder untergeordnete Array-Auftrag sequentiell abgeschlossen wird (beginnend mit Index 0). Wenn Sie z. B. einen Array-Auftrag mit einer Array-Größe von 100 senden und eine Abhängigkeit vom Typ SEQUENTIAL angeben, werden 100 untergeordnete Aufträge sequentiell erzeugt, wobei der erste untergeordnete Auftrag erfolgreich sein muss, bevor der nächste untergeordnete Auftrag startet. Die folgende Abbildung zeigt Auftrag A, einen Array-Auftrag mit einer Array-Größe von 10. Jeder Auftrag im untergeordneten Index von Auftrag A ist vom vorherigen untergeordneten Auftrag abhängig. Auftrag A:1 kann erst gestartet werden, wenn Auftrag A:0 beendet ist.

Sie können auch eineN_TO_N Typabhängigkeit mit einer Job-ID für Array-Jobs angeben. So muss jeder untergeordnete Index dieses Auftrags warten, bis der entsprechende untergeordnete Index jeder Abhängigkeit abgeschlossen ist. Die folgende Abbildung zeigt Job A und Job B, zwei Array-Jobs mit einer Array-Größe von jeweils 10.000. Jeder Auftrag im untergeordneten Index von Auftrag B ist abhängig von dem entsprechenden Index in Auftrag A. Auftrag B:1 kann erst gestartet werden, wenn Auftrag A:1 beendet ist.

Wenn Sie einen übergeordneten Array-Auftrag abbrechen oder beenden, werden alle untergeordneten Aufträge abgebrochen oder damit beendet. Sie können einzelne untergeordnete Aufträge abbrechen oder beenden (wodurch sie in den Status FAILED versetzt werden), ohne die anderen untergeordneten Aufträge zu beeinflussen. Wenn jedoch ein untergeordneter Array-Job fehlschlägt (allein oder durch Abbrechen oder manuelles Beenden), schlägt auch der übergeordnete Job fehl.