View a markdown version of this page

Konfigurasi sumber daya lanjutan - AWS HealthOmics

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

Konfigurasi sumber daya lanjutan

Dengan direk omicsResourceFallbackOrder tif Anda dapat mendeklarasikan daftar sumber daya yang diurutkan (misalnya, akselerator dan CPU) profil untuk tugas dalam alur kerja Anda. Anda menentukan arahan ini di tingkat tugas. HealthOmics mencari setiap profil dalam urutan yang Anda tentukan untuk ketersediaan untuk memesan. Jika kapasitas tidak tersedia dalam batas waktu tunggu, HealthOmics pindah ke profil sumber daya berikutnya dalam daftar.

Ini berguna ketika kapasitas akselerator pilihan Anda (misalnya, G6e dengannvidia-l40s) tidak tersedia dan Anda lebih suka kembali ke jenis akselerator yang berbeda atau ke CPU daripada gagal menjalankan.

Cara kerjanya

  1. Anda menentukan daftar profil sumber daya yang diurutkan dalam direk omicsResourceFallbackOrder tif.

  2. Pada waktu berjalan, HealthOmics mencoba untuk mencadangkan kapasitas untuk profil pertama dalam daftar.

  3. Jika kapasitas tidak tersedia dalam periode waktu tunggu, HealthOmics pindah ke profil berikutnya.

  4. Tugas berjalan pada profil mana pun yang berhasil terlebih dahulu.

  5. Jika semua profil dalam daftar gagal, tugas gagal dengan alasanALL_PROFILES_INSTANCE_RESERVATION_FAILED. Tidak ada percobaan ulang mesin yang akan diterapkan ketika semua profil tidak tersedia.

catatan

omicsResourceFallbackOrdermenggantikan omicsResourceWaitTimeoutInMin bidang tugas biasa acceleratorTypeacceleratorCount,cpu,memory, dan. Ini tidak boleh ditetapkan di tingkat atas ketika arahan hadir.

Kasus penggunaan

Skenario Deskripsi
Fallback GPU ke GPU Daftar jenis akselerator (atau GPU) dalam urutan prioritas. Misalnya, coba nvidia-l40s dulu, lalu kembali kenvidia-l4. Tidak ada perubahan perintah yang diperlukan jika beban kerja sama di seluruh jenis akselerator.
Fallback GPU ke CPU Tambahkan profil akhir yang menghilangkan CPU-only fall acceleratorType back. Gunakan variabel AWS_HEALTHOMICS_RESOURCE_TYPE lingkungan untuk mengcabang perintah berdasarkan jenis sumber daya.

Task-level bidang runtime

Saat menggunakanomicsResourceFallbackOrder, bidang runtime tingkat tugas dibagi menjadi dua set:

  • Per-profile fields (acceleratorType,acceleratorCount,, cpumemory,omicsResourceWaitTimeoutInMin) — dapat dikonfigurasi secara independen untuk setiap profil dalam daftar.

  • Bidang bersama (semua bidang runtime lainnya, sepertidocker,maxRetries) — atur sekali di tingkat atas dan terapkan cara yang sama ke setiap profil.

Contoh WDL

Tugas WDL berikut mencari terlebih nvidia-l40s dahulu (menunggu hingga 45 menit untuk kapasitas), kemudian nvidia-l4 (jendela tunggu default), lalu kembali ke CPU-only profil (32 vCPU, 128 GiB) jika tidak ada jenis akselerator yang tersedia.

task align { command <<< # Branch based on which resource type was allocated if [ "$AWS_HEALTHOMICS_RESOURCE_TYPE" = "cpu" ]; then sentieon bwa mem -t 32 ~{reference} ~{fastq} else pbrun fq2bam --ref ~{reference} --in-fq ~{fastq} fi >>> runtime { docker: "my-registry/align-multi-arch:latest" maxRetries: 2 omicsResourceFallbackOrder: [ {"acceleratorType": "nvidia-l40s", "acceleratorCount": 1, "cpu": 8, "memory": "32 GiB", "omicsResourceWaitTimeoutInMin": 45}, {"acceleratorType": "nvidia-l4", "acceleratorCount": 1, "cpu": 8, "memory": "32 GiB"}, {"cpu": 32, "memory": "128 GiB"} ] } }

Dalam contoh ini, AWS_HEALTHOMICS_RESOURCE_TYPE memberitahu perintah jalur sumber daya mana yang dipilih (misalnya, "nvidia-l40s" atau"cpu").

catatan

Gambar Docker harus mendukung jalur kode akselerator dan CPU jika urutan fallback Anda berisi profil CPU. Pastikan wadah Anda menyertakan perkakas yang diperlukan untuk semua profil sumber daya dalam daftar.

Per-profile referensi bidang

Setiap entri dalam omicsResourceFallbackOrder daftar adalah peta yang menggambarkan satu profil sumber daya. Semua bidang bersifat opsional; profil dapat berupa spesifikasi parSIAL. Setiap profil harus menggunakan kunci yang dikutip (string).

Bidang Tipe Default saat dihilangkan Catatan
acceleratorType String Ketika tidak ditentukan, profil dianggap sebagai CPU Harus salah satu dari 7 jenis akselerator yang didukung. Lihat Akselerator tugas dalam definisi al HealthOmics ur kerja. Hilangkan bidang ini untuk menentukan CPU-only profil. Untuk profil CPU, jangan atur ke"".
acceleratorCount Bilangan Bulat Bidang tidak acceleratorType ada saat juga tidak ada Harus ditentukan bersama denganacceleratorType. Profil tidak dapat memiliki satu tanpa yang lain.
cpu Integer atau Float 1 vCPU, atau default tipe instance GPU jika profil GPU menghilangkannya Dibulatkan ke seluruh vCPU terdekat (minimal 1). Dukungan fraksional yang sama dengan arahan tingkat atasruntime.cpu.
memory String (misalnya,"32 GiB") 1 GiB, atau default tipe instance GPU jika profil GPU menghilangkannya Format yang sama dengan direktif tingkat atasruntime.memory.
omicsResourceWaitTimeoutInMin Bilangan Bulat 20 menit untuk bundel akselerator GPU Tunggal dan 30 menit untuk bundel akselerator multi-GPU. Ini juga merupakan nilai minimum yang direkomendasikan. Tidak ada batas atas. Mengontrol berapa lama HealthOmics pencarian untuk satu profil sebelum pindah ke profil berikutnya. Lihat Perilaku waktu habis.
catatan

Bidang yang dihilangkan mengambil nilai default, bukan nilai yang diwarisi dari profil sebelumnya dalam daftar. Bidang yang ditinggalkan dari profil mengambil default terdokumentasi (seperti yang diberikan dalam tabel di atas), bukan nilai yang disalin dari profil sebelumnya dalam daftar.

Perilaku waktu habis

omicsResourceWaitTimeoutInMinmengontrol berapa lama HealthOmics menunggu kapasitas akselerator pada profil tertentu sebelum maju ke yang berikutnya.

  • Per-profileBukan global. Setiap profil akselerator dapat menentukan batas waktunya sendiri. Konfigurasikan penantian yang lebih lama untuk akselerator kelas atas yang disukai dan tunggu yang lebih pendek untuk jenis fallback.

  • Minimum 20 menit yang disarankan. Nilai di bawah 20 menit (30 untuk bundel multi-GPU) diterima tetapi menghasilkan peringatan validasi.

  • Waktu tunggu maju, bukan gagal. Ketika batas waktu berlalu, HealthOmics pindah ke profil berikutnya - tugas tidak gagal. Kegagalan hanya terjadi setelah semua profil habis.

  • Tidak berlaku untuk CPU-only profil. Profil CPU tidak memiliki batasan kapasitas. Hilangkan omicsResourceWaitTimeoutInMin pada profil CPU akhir.

  • Percobaan ulang menerima jendela batas waktu baru. Setiap percobaan ulang OOM atau kesalahan layanan memulai omicsResourceWaitTimeoutInMin jendela lengkapnya sendiri pada profil yang sama, daripada mewarisi waktu yang sudah dihabiskan oleh upaya sebelumnya.

Variabel lingkungan

HealthOmics menetapkan variabel lingkungan berikut dalam wadah tugas sehingga perintah Anda dapat bercabang berdasarkan profil sumber daya yang dialokasikan:

Variabel Nilai Contoh nilai
AWS_HEALTHOMICS_RESOURCE_TYPE Profil aktif, atau "cpu" untuk CPU-only profil. acceleratorType "nvidia-l40s", "nvidia-l4", "cpu"

Kriteria validasi

HealthOmics memvalidasi yang berikut pada waktu pembuatan alur kerja dan memeriksa ulang pada runtime tugas. Semua aturan menolak alur kerja atau tugas kecuali dinyatakan sebaliknya.

  1. Tidak dapat mencampur dengan arahan sumber daya individual. Jika omicsResourceFallbackOrder ditentukan, tingkat atasacceleratorType,,acceleratorCount, cpumemory, dan tidak omicsResourceWaitTimeoutInMin boleh ditentukan dalam tugas yang sama.

  2. Harus ada daftar. omicsResourceFallbackOrderharus ditulis sebagai array profil.

  3. Tidak bisa kosong. Daftar harus berisi setidaknya satu profil.

  4. Diperlukan kunci yang dikutip. Setiap nama bidang harus berupa string yang dikutip, misalnya{"acceleratorType": "nvidia-l4", "acceleratorCount": 1}. Tombol bareword gagal divalidasi.

  5. Non-empty profil. Profil kosong ({}) tidak diperbolehkan.

  6. acceleratorTypedan acceleratorCount pergi bersama. Profil yang menetapkan satu harus mengatur yang lain. Profil CPU harus menghilangkan keduanya.

  7. Hanya jenis akselerator yang didukung. acceleratorTypeharus tipe akselerator yang didukung atau dihilangkan (profil CPU). String "" kosong tidak diterima.

  8. Batas waktu tunggu minimum. omicsResourceWaitTimeoutInMinnilai yang disarankan adalah ≥ 20 menit (≥ 30 untuk bundel multi-GPU).

  9. Profil duplikat (hanya peringatan). Profil duplikat diperbolehkan tetapi menghasilkan peringatan. Pertimbangkan untuk meningkatkan omicsResourceWaitTimeoutInMin profil sebelumnya sebagai gantinya.

  10. Bidang yang tidak dikenali ditolak. Hanya lima bidang per profil yang tercantum di atas yang diizinkan.

  11. Jenis yang benar. Misalnya, cpu harus angka, bukan string.

  12. Paling banyak satu profil CPU. Hanya satu profil yang dihilangkan acceleratorType diizinkan.

  13. Maksimal 10 profil per tugas.

Interaksi dengan percobaan ulang

Untuk kesalahan Out-of-Memory (OOM) dan layanan (tidak termasuk 5xxALL_PROFILES_INSTANCE_RESERVATION_FAILED), coba HealthOmics lagi tugas sebagai berikut:

  • Percobaan ulang terjadi dalam profil aktif saat ini yang sebelumnya berhasil dipesan.

  • Percobaan ulang tidak pernah maju ke profil berikutnya dalam urutan fallback.

  • Percobaan ulang yang melelahkan maxRetries gagal tugas.

Untuk informasi selengkapnya tentang percobaan ulang tugas di HealthOmics, lihatTugas Mencoba Ulang.

catatan

Jika semua profil habis pada upaya mesin pertama tanpa reservasi instance, mesin gagal dalam tugas dan kemudian dijalankan dengan statusALL_PROFILES_INSTANCE_RESERVATION_FAILED. Bahkan jika Anda telah mengonfigurasi percobaan ulang, HealthOmics tidak mencoba lagi untuk kode kesalahan ini. Sebaiknya sesuaikan dengan omicsResourceWaitTimeoutInMin tepat.

Praktik terbaik

  • Hindari jenis bundel multi-GPU dalam urutan fallback. Jenis akselerator yang menjangkau beberapa keluarga instance (misalnya,nvidia-t4-a10g-l4) tidak disarankan di dalamnyaomicsResourceFallbackOrder. Gunakan tipe keluarga tunggal sebagai gantinya. Untuk detail tentang jenis akselerator yang tersedia, lihatAkselerator tugas dalam definisi al HealthOmics ur kerja.

  • Tetapkan batas waktu tunggu yang sesuai. Untuk profil akselerator prioritas tinggi, tingkatkan omicsResourceWaitTimeoutInMin untuk memberikan HealthOmics lebih banyak waktu untuk menemukan kapasitas.

  • Tempatkan profil CPU terakhir. Jika Anda menyertakan CPU-only fallback, itu harus menjadi entri terakhir sehingga akselerator lebih disukai jika tersedia.

  • Gunakan gambar kontainer multi-arsitektur. Saat menggunakan fallback GPU ke CPU, pastikan image Docker Anda mendukung keduanya GPU-accelerated dan jalur CPU-only kode.

Batasan

  • omicsResourceFallbackOrdertidak didukung dalam scatter blok. Ini hanya tersedia di tingkat tugas.

  • Hanya WDL yang didukung pada tanggal peluncuran GA. Dukungan Nextflow dan CWL direncanakan.

  • Instance-type nama (misalnya,omics.g6e.4xlarge) tidak diterima sebagai nilai sumber daya. Anda harus menggunakan sintaks bidang per profil yang dijelaskan di halaman ini.