Jalankan pengoptimalan untuk HealthOmics alur kerja pribadi - AWS HealthOmics

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

Jalankan pengoptimalan untuk HealthOmics alur kerja pribadi

Anda dapat mengoptimalkan proses untuk total biaya, total waktu berjalan, atau kombinasi keduanya. HealthOmics menyediakan data dan alat untuk membantu Anda menjalankan keputusan pengoptimalan. Run optimization tidak berlaku untuk alur kerja Ready2Run, karena Anda tidak memiliki kontrol apa pun atas cara layanan mengelola penyediaan sumber daya untuk alur kerja ini.

Langkah pertama adalah memahami penggunaan sumber daya tugas saat ini dan biaya untuk tugas-tugas yang sedang dijalankan, dan kemudian menerapkan metode untuk mengoptimalkan biaya operasional dan kinerja.

Jalankan Analyzer

HealthOmics menyediakan alat open source bernama Run Analyzer. Alat ini mengekstrak informasi penggunaan sumber daya tingkat tugas untuk dijalankan dan menyarankan peluang pengoptimalan untuk kinerja biaya dan lari.

catatan

Run analyzer memperkirakan biaya tugas dan potensi penghematan biaya berdasarkan AWS daftar harga pada saat Anda menjalankan alat. Nilai rekomendasi pengoptimalan dan terapkan rekomendasi yang masuk akal untuk kasus penggunaan Anda. Uji pengoptimalan yang Anda adopsi untuk memastikan bahwa mereka bekerja untuk lari Anda.

Jalankan Analyzer melakukan tugas-tugas berikut:

  • Mengevaluasi memori dan menghitung kemacetan.

  • Mengidentifikasi tugas yang disediakan secara berlebihan untuk memori atau CPU, dan merekomendasikan ukuran instans baru yang dapat mengurangi biaya.

  • Menghitung perkiraan biaya untuk tugas individu dan menghitung potensi penghematan biaya jika Anda menerapkan rekomendasi.

  • Memberi Anda tampilan timeline tugas sehingga Anda dapat memverifikasi dependensi tugas dan urutan pemrosesan. Garis waktu juga membantu Anda mengidentifikasi tugas yang berjalan lama.

  • Memberikan rekomendasi tentang ukuran sistem file untuk penyimpanan run.

  • Menunjukkan waktu penyediaan tugas sehingga Anda dapat mengidentifikasi area di mana beban kontainer besar mungkin memperlambat waktu penyediaan.

  • Alat ini mencakup parameter input (headroom) yang dapat Anda gunakan untuk mengontrol agresivitas rekomendasi pengoptimalan.

Bagian berikut mencakup saran khusus untuk menggunakan Run Analyzer untuk mengoptimalkan proses.

Tentukan biaya operasional

Anda dapat menggunakan metode dan pedoman berikut untuk menentukan biaya operasional:

  • Untuk melihat total biaya operasional untuk periode penagihan, ikuti langkah-langkah berikut:

    1. Buka konsol Billing and Cost Management dan pilih Bills.

    2. Dalam Biaya berdasarkan layanan, perluas Omics.

    3. Perluas wilayah, lalu lihat biaya semua proses Anda yang dirinci berdasarkan jenis instance omics, menjalankan tipe penyimpanan, dan alur kerja Ready2Run.

  • Untuk menghasilkan laporan biaya yang mencakup informasi untuk setiap proses, ikuti langkah-langkah berikut:

    1. Buka konsol Billing and Cost Management dan pilih Data Exports.

    2. Pilih Buat untuk membuat ekspor data baru.

    3. Masukkan nama Ekspor untuk ekspor data. Simpan bidang lain pada nilai defaultnya untuk membuat laporan CUR (biaya dan penggunaan).

    4. Untuk perincian Waktu, pilih per jam atau harian.

    5. Di bawah Pengaturan penyimpanan ekspor data, lakukan langkah-langkah konfigurasi berikut:

      1. Konfigurasikan bucket Amazon S3 untuk ekspor data.

      2. Untuk pembuatan versi File, pilih apakah akan menimpa file ekspor yang ada atau membuat file baru setiap kali.

      Sistem menghasilkan laporan pertama dalam 24 jam ke depan dan menghasilkan laporan berikutnya sekali sehari.

    6. Untuk informasi selengkapnya tentang cara membuat ekspor data, lihat Membuat ekspor data di Panduan Pengguna Ekspor AWS Data.

  • Anda dapat menandai proses Anda untuk memantau dan mengoptimalkan biaya berdasarkan kategori, seperti menurut tim atau proyek. Jika Anda menggunakan tag, ikuti langkah-langkah berikut untuk melihat biaya yang dijalankan berdasarkan kategori tag:

    1. Buka konsol Billing and Cost Management dan pilih Cost Explorer.

    2. Di Laporkan parameter > Kelompokkan menurut, pilih Tag sebagai dimensi. dan pilih nama Tag yang diinginkan.

  • Untuk melihat penggunaan sumber daya untuk tugas, lihat log manifes jalankan CloudWatch. Untuk informasi selengkapnya, lihat Pemantauan HealthOmics dengan CloudWatch Log.

  • Gunakan Jalankan Analyzer alat untuk mengekstrak informasi penggunaan sumber daya tugas untuk dijalankan.

Tentukan penggunaan waktu berjalan

Anda dapat menggunakan metode berikut untuk membantu Anda menyelidiki penggunaan waktu berjalan:

  • Dari halaman Runs konsol, Anda dapat melihat total waktu berjalan untuk menjalankan.

  • Dari halaman Run details, Anda dapat melihat item berikut:

    • Lihat total waktu lari untuk lari.

    • Lihat waktu berjalan untuk setiap tugas dalam proses.

    • Pilih salah satu tautan untuk melihat log di Amazon S3, atau untuk melihat log run atau menjalankan log manifes. CloudWatch

  • Dari daftar Jalankan tugas, pilih tautan Lihat log untuk tugas untuk melihat log tugas CloudWatch.

  • Respons terhadap operasi listRuns API mencakup waktu mulai berjalan dan waktu berhenti, sehingga Anda dapat menghitung total waktu berjalan.

  • Jalankan AnalyzerAlat ini menunjukkan durasi tugas pada tampilan timeline. Alat ini memberikan representasi visual dari urutan pemrosesan tugas, yang dapat Anda cocokkan dengan urutan yang diharapkan.

Metode untuk mengoptimalkan proses

HealthOmics secara otomatis menyediakan, mengelola, dan mengoptimalkan sumber daya yang melakukan pementasan data (seperti impor data dan ekspor data). HealthOmics juga memulai dan menjalankan mesin alur kerja untuk alur kerja Anda. Namun, Anda dapat memengaruhi waktu mulai berjalan, waktu mulai tugas, dan waktu menjalankan tugas secara keseluruhan dengan menyetel berbagai konfigurasi run. Pendekatan keseluruhan Anda terhadap definisi dan desain alur kerja juga memengaruhi waktu menjalankan tugas. Daftar berikut menjelaskan faktor-faktor yang dapat mempengaruhi kinerja run dan task:

Jalankan jenis penyimpanan

Jenis penyimpanan run berdampak pada kinerja run dan menjalankan waktu penyediaan. Dynamic run storage menyediakan lebih cepat dan tidak pernah kehabisan memori, karena diskalakan secara dinamis dengan kebutuhan penyimpanan run Anda. Dynamic run storage juga cocok untuk alur kerja dalam pengembangan, di mana Anda mungkin sering memulai dan menghentikan alur kerja untuk memecahkan masalah.

Penyimpanan berjalan statis membutuhkan waktu penyediaan sistem file yang lebih lama, tetapi dapat menyelesaikan beberapa proses lebih cepat, biasanya jika proses memiliki konkurensi tugas yang tinggi atau membutuhkan kapasitas sistem file yang lebih besar dari 9,6 TiB. Penyimpanan berjalan statis sangat cocok untuk alur kerja yang berjalan lama dengan I/O persyaratan tinggi.

Untuk membantu Anda mengevaluasi biaya vs. kinerja setiap jenis penyimpanan run untuk proses tertentu, Anda dapat mencoba pengujian A/B untuk melihat jenis penyimpanan run mana yang memberikan kinerja yang lebih baik. Juga, pertimbangkan untuk menggunakan penyimpanan run dinamis untuk siklus pengembangan Anda, lalu gunakan penyimpanan run statis untuk produksi berjalan dalam skala besar.

Untuk informasi selengkapnya tentang menjalankan jenis penyimpanan Jalankan jenis penyimpanan dalam HealthOmics alur kerja

Penyediaan berlebih menjalankan penyimpanan statis

Jika perhitungan tugas alur kerja Anda dibatasi oleh I/O, consider over-provisioning the static run storage. Storage cost increases with its size, but maximum throughput of the file system also increases. If an expensive compute task is experiencing I/O kemacetan, meningkatkan ukuran sistem file untuk mengurangi waktu menjalankan tugas dapat mengurangi biaya keseluruhan.

Kurangi ukuran gambar kontainer

Saat setiap tugas dimulai, HealthOmics memuat wadah yang Anda tentukan untuk tugas tersebut. Kontainer yang lebih besar membutuhkan waktu lebih lama untuk dimuat. Optimalkan wadah Anda sekecil mungkin untuk meningkatkan efisiensi peluncuran tugas baru. Jika Anda menambahkan kumpulan data besar ke kontainer, pertimbangkan untuk menyimpan kumpulan data di S3 dan meminta alur kerja Anda mengimpor data dari S3. Untuk ukuran wadah maksimum yang HealthOmics mendukung, lihatHealthOmics alur kerja kuota ukuran tetap.

Ukuran tugas

Anda dapat menggabungkan tugas kecil dan berurutan menjadi satu tugas untuk menghemat waktu penyediaan tugas. Selain itu, HealthOmics memiliki biaya durasi tugas minimum satu menit, jadi menggabungkan tugas dapat mengurangi biaya. Dalam tugas gabungan, Anda mungkin dapat menggunakan pipa Unix untuk menghindari I/O biaya serialisasi dan deserialisasi file.

Kompresi file

Hindari terlalu mengompresi file perantara alur kerja. Sebagian besar format genomik menggunakan kompresi “gzip” atau “block gzip”. Dekompresi file input tugas dan kompresi ulang file output tugas dapat menghabiskan sebagian besar dari keseluruhan penggunaan CPU tugas. Beberapa aplikasi genomik memungkinkan Anda untuk mengatur tingkat kompresi saat membuat serial output. Dengan mengurangi tingkat kompresi, Anda dapat mengurangi waktu CPU, meskipun file yang lebih besar meningkatkan waktu yang dihabiskan untuk menulis ke disk. Bergantung pada tugas dan aplikasinya, Anda dapat menemukan tingkat kompresi optimal untuk file perantara yang menghasilkan waktu berjalan terpendek. Kami menyarankan Anda memulai dengan menargetkan tugas dengan file output terbesar. Tingkat kompresi 2 bekerja dengan baik untuk beberapa skenario. Anda dapat mulai dengan level ini untuk kasus penggunaan Anda, dan membandingkan hasilnya dengan mencoba tingkat kompresi lainnya.

Jumlah utas

Jika Anda menentukan utas dalam definisi tugas Anda, atur jumlah utas ke nilai yang sama dengan jumlah v yang dimintaCPUs.

Tentukan komputasi dan memori

Jika Anda tidak menentukan memori atau sumber daya komputasi dalam tugas Anda, HealthOmics tetapkan instance type (omics.c.large) terkecil sebagai default. Deklarasikan persyaratan memori dan komputasi Anda secara eksplisit jika Anda ingin menetapkan jenis instans yang HealthOmics lebih besar.

HealthOmics mengalokasikan jumlah vCPUs, memori, dan sumber daya GPU yang Anda minta. Misalnya, jika Anda meminta 15v CPUs dan 33GiB, HealthOmics mengalokasikan instance omics.m.4xl (16v, 64GB) untuk tugas AndaCPUs, tetapi tugas Anda hanya dapat menggunakan 15 v dan 33GiB. CPUs Oleh karena itu, kami menyarankan Anda meminta v CPUs dan sumber daya memori yang cocok dengan instance omics.

Batch beberapa sampel menjadi satu run

Karena penyediaan sistem file membutuhkan waktu pada awal proses, Anda dapat menghemat waktu penyediaan dengan mengelompokkan beberapa sampel ke dalam proses yang sama. Pertimbangkan faktor-faktor berikut sebelum memutuskan pendekatan ini:

  • Satu sampel yang buruk dapat menyebabkan alur kerja gagal, sehingga pengelompokan sampel dapat meningkatkan jumlah alur kerja yang gagal. Jika Anda tidak yakin bahwa alur kerja Anda akan berhasil sebagian besar waktu, satu run per sampel bisa menjadi pendekatan yang lebih baik.

  • HealthOmics mengalokasikan satu sistem file penyimpanan run untuk seluruh alur kerja. Untuk sekumpulan sampel, pastikan untuk menentukan jumlah penyimpanan run yang cukup besar untuk memproses semua sampel.

  • Ada jumlah maksimum penyimpanan run per alur kerja, sehingga dapat membatasi jumlah sampel yang dapat Anda tambahkan ke batch.

  • Ukuran penyimpanan run minimum adalah 1,2 TiB, jadi batching dapat mengurangi biaya jika alur kerja menggunakan penyimpanan yang jauh lebih sedikit daripada minimum untuk setiap sampel.

  • Jalankan penyimpanan dapat menangani beberapa koneksi simultan, jadi memiliki banyak tugas menggunakan penyimpanan run yang sama seharusnya tidak menyebabkan I/O kemacetan.

  • Setiap run memiliki set tag sendiri. Jika Anda menandai alur kerja dengan informasi untuk penganggaran atau pelacakan, mungkin lebih baik menggunakan proses terpisah.

  • Peran IAM berlaku untuk seluruh proses. Setiap pengguna memiliki akses ke semua data untuk batch sampel. Memiliki alur kerja yang terpisah memberi Anda kemampuan untuk menggunakan izin yang lebih halus.

  • HealthOmics menetapkan kuota tingkat akun untuk jumlah maksimum alur kerja bersamaan dan jumlah maksimum tugas bersamaan dalam alur kerja. Untuk informasi tentang cara meminta kenaikan kuota ini, lihatHealthOmics kuota layanan.

Gunakan parameter untuk gambar kontainer

Parameterisasi gambar kontainer Anda daripada menyematkannya URIs dalam alur kerja. Jika mereka menjalankan parameter, HealthOmics memvalidasi bahwa run memiliki akses ke kontainer Anda sebelum proses dimulai. Jika tidak, tugas gagal selama menjalankan, ketika Anda telah mengeluarkan biaya untuk tugas yang diselesaikan. Juga, karena ini adalah input berparameter, HealthOmics menghasilkan checksum dalam manifes run, yang meningkatkan asal run.

Gunakan linter

Gunakan linter untuk menemukan kesalahan alur kerja umum sebelum Anda menjalankan alur kerja baru. Untuk informasi selengkapnya, lihat Linter alur kerja di HealthOmics.

Gunakan EventBridge untuk menandai masalah

Gunakan peringatan EventBridge khusus untuk menangkap anomali yang spesifik untuk logika bisnis Anda.

Gunakan toko urutan

Pertimbangkan untuk menggunakan penyimpanan urutan untuk data sumber Anda untuk menghemat biaya penyimpanan. Untuk informasi selengkapnya, lihat data Store omics hemat biaya pada skala apa pun dengan HealthOmics posting blog.

Dampak varians ukuran file antar proses

Pengguna sering merancang dan menguji berjalan menggunakan satu set kecil data pengujian, kemudian menemukan berbagai macam data dengan varians ukuran file yang signifikan dalam proses produksi. Pastikan Anda memperhitungkan varians ini saat Anda mengoptimalkan proses.

Daftar berikut menjelaskan rekomendasi untuk pengoptimalan di mana ada varians yang signifikan dalam ukuran file:

Variasikan ukuran file dalam data pengujian Anda

Cobalah untuk menggunakan data pengujian selama pengembangan yang memiliki jumlah varians yang representatif.

Gunakan Run Analyzer

Gunakan alat Run Analyzer di berbagai sampel untuk memperhitungkan varians dalam ukuran data.

Anda dapat menggunakan run analyzer untuk memahami varians antara proses dalam sampel data produksi Anda. Gunakan --batch mode di Run Analyzer untuk menghasilkan statistik untuk sejumlah proses dan menganalisis sumber daya komputasi maksimum yang diperlukan untuk menangani outlier dalam kumpulan data Anda.

Misalnya, Anda dapat memberikan run analyzer sel aliran penuh data dalam mode batch untuk memahami vCPU puncak dan pemanfaatan memori untuk sel aliran penuh.

Kurangi varians ukuran kumpulan data masukan

Jika Anda melihat varians tinggi dalam ukuran sampel, Anda dapat membagi dua sampel di hulu HealthOmics dan memilih ukuran sistem file yang berbeda untuk setiap batch untuk menghemat biaya penyimpanan yang dijalankan.

Di WDL, gunakan size fungsi untuk membagi alokasi sumber daya untuk tugas individu untuk sampel besar versus kecil. Terapkan strategi ini ke tugas Anda yang paling mahal untuk memiliki dampak paling besar.

Di Nextflow, gunakan sumber daya bersyarat untuk mengatur alokasi sumber daya berdasarkan ukuran file atau nama file. Untuk informasi selengkapnya, lihat Sumber daya proses bersyarat di situs Nextflow GitHub .

Jangan mengoptimalkan terlalu cepat

Selesaikan kode dan logika alur kerja Anda sebelum berinvestasi dalam upaya penyetelan kinerja yang signifikan. Mengubah kode Anda dapat berdampak signifikan pada sumber daya yang diperlukan. Jika Anda mengoptimalkan proses terlalu cepat dalam proses pengembangan, Anda mungkin terlalu mengoptimalkan atau Anda mungkin perlu mengoptimalkan lagi jika definisi alur kerja berubah nanti.

Jalankan kembali alat Run Analyzer secara berkala

Jika Anda membuat perubahan pada definisi alur kerja dari waktu ke waktu atau jika varians sampel Anda berubah, jalankan alat Run Analyzer secara berkala untuk membantu Anda membuat pengoptimalan tambahan.

Metode untuk mengoptimalkan konkurensi sumber daya

HealthOmics menyediakan kemampuan berikut untuk membantu Anda mengontrol dan mengelola biaya saat pemrosesan berjalan dalam skala besar:

  • Gunakan grup run untuk mengontrol biaya dan penggunaan sumber daya Anda. Anda dapat menetapkan nilai maksimum dalam grup run untuk jumlah run bersamaan, v CPUs GPUs, dan total waktu berjalan per tugas. Jika tim atau grup terpisah menggunakan akun yang sama, Anda dapat membuat grup lari terpisah untuk setiap tim. Anda dapat mengontrol penggunaan sumber daya dan biaya per tim dan dengan mengonfigurasi nilai maksimum grup run. Untuk informasi selengkapnya, lihat Membuat grup HealthOmics run.

  • Selama pengembangan, Anda dapat mengonfigurasi grup run terpisah dengan nilai maksimum yang lebih rendah untuk menangkap tugas runaway.

  • Service Quotas juga membantu melindungi akun Anda dari permintaan sumber daya yang berlebihan. Untuk informasi tentang Service Quotas, termasuk cara meminta kenaikan nilai kuota, lihat HealthOmics kuota layanan