Tugas array - AWS Batch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tugas array

Pekerjaan array adalah pekerjaan yang berbagi parameter umum, seperti definisi pekerjaanvCPUs, dan memori. Ini berjalan sebagai kumpulan pekerjaan dasar terkait namun terpisah yang mungkin didistribusikan di beberapa host dan mungkin berjalan secara bersamaan. Tugas array adalah cara yang paling efisien untuk menjalankan tugas yang sangat paralel, seperti simulasi Monte Carlo, sapuan parametrik, atau tugas render yang besar.

AWS Batch pekerjaan array dikirimkan seperti pekerjaan biasa. Namun, Anda menentukan ukuran array (antara 2 dan 10.000) untuk menentukan berapa banyak tugas turunan yang harus berjalan dalam array. Jika Anda mengirim tugas dengan ukuran array sebesar 1.000, satu tugas akan berjalan dan menghasilkan 1.000 tugas turunan. Tugas array adalah referensi atau penunjuk untuk mengelola semua tugas turunan. Dengan cara ini, Anda dapat mengirimkan beban kerja besar dengan satu kueri. Batas waktu yang ditentukan dalam attemptDurationSeconds parameter berlaku untuk setiap pekerjaan anak. Pekerjaan array induk tidak memiliki batas waktu.

Saat Anda mengirimkan pekerjaan array, pekerjaan array induk mendapatkan ID AWS Batch pekerjaan normal. Setiap pekerjaan anak memiliki ID dasar yang sama. Namun, indeks array untuk pekerjaan anak ditambahkan ke akhir ID induk, seperti example_job_ID:0 untuk pekerjaan anak pertama dari array.

Pekerjaan array induk dapat memasukkanSUBMITTED,, PENDINGFAILED, atau SUCCEEDED status. Pekerjaan induk array diperbarui PENDING ketika setiap pekerjaan anak diperbarui keRUNNABLE. Untuk informasi selengkapnya tentang dependensi pekerjaan, lihat. Dependensi Job

Pada saat waktu aktif, variabel lingkungan AWS_BATCH_JOB_ARRAY_INDEX ditetapkan ke nomor indeks tugas array yang sesuai dengan kontainer. Indeks pekerjaan array pertama diberi nomor0, dan upaya selanjutnya dalam urutan menaik (misalnya, 1, 2, dan 3). Anda dapat menggunakan nilai indeks ini untuk mengontrol cara turunan tugas array Anda dibedakan. Untuk informasi selengkapnya, lihat Tutorial: Gunakan indeks pekerjaan array untuk mengontrol diferensiasi pekerjaan.

Untuk dependensi tugas array, Anda dapat menentukan tipe untuk dependensi, misalnya SEQUENTIAL atau N_TO_N. Anda dapat menentukan tipe dependensi SEQUENTIAL (tanpa menentukan ID tugas) sehingga setiap tugas array turunan selesai secara berurutan, mulai dari indeks 0. Misalnya, jika Anda mengirimkan tugas array dengan ukuran array 100, dan menentukan dependensi dengan tipe SEQUENTIAL, 100 tugas turunan akan dihasilkan secara berurutan, dan tugas turunan pertama harus berhasil sebelum tugas turunan berikutnya dimulai. Gambar di bawah ini menunjukkan Tugas A, sebuah tugas array dengan ukuran array 10. Setiap tugas dalam indeks turunan Tugas A bergantung pada tugas turunan sebelumnya. Tugas A:1 tidak dapat mulai sebelum tugas A:0 selesai.

Flowchart showing Job-A with sequential child jobs A:0 through A:9, connected by arrows.

Anda juga dapat menentukan ketergantungan N_TO_N tipe dengan ID pekerjaan untuk pekerjaan array. Dengan cara itu, setiap turunan indeks dari tugas ini harus menunggu turunan indeks dari setiap dependensi selesai sebelum turunan tersebut dapat dimulai. Gambar berikut menunjukkan Job A dan Job B, dua pekerjaan array dengan ukuran array masing-masing 10.000. Setiap tugas dalam indeks turunan Tugas B bergantung pada indeks yang sesuai di Tugas A. Tugas B:1 tidak dapat mulai sebelum tugas A:1 selesai.

Two array jobs, Job-A and Job-B, with 10,000 indexed tasks each, showing N_TO_N dependency.

Jika Anda membatalkan atau menghentikan pekerjaan array induk, semua pekerjaan anak dibatalkan atau dihentikan dengannya. Anda dapat membatalkan atau menghentikan pekerjaan anak individu (yang memindahkan mereka ke FAILED status) tanpa mempengaruhi pekerjaan anak lainnya. Namun, jika pekerjaan array anak gagal (dengan sendirinya, atau dengan membatalkan atau menghentikan pekerjaan secara manual), pekerjaan induk juga gagal. Dalam skenario ini, pekerjaan orang tua beralih ke FAILED saat semua pekerjaan anak selesai.