Pengantar mode eksekusi Quantum Compute
Ketika IBM Quantum Compute Service pertama kali diperkenalkan, pengguna hanya bisa menjalankan Circuit sebagai job individu. Seiring munculnya berbagai jenis workload kuantum, kebutuhan akan strategi penjadwalan yang berbeda pun menjadi jelas. Mode eksekusi menentukan bagaimana job-job Anda dijadwalkan, dan memilih mode eksekusi yang tepat memungkinkan workload berjalan secara efisien sesuai anggaran yang ada. Ada tiga mode eksekusi: job, session, dan batch.
Job mode
Satu permintaan primitif yang dibuat tanpa context manager. Circuit dan input dikemas sebagai primitive unified blocs (PUBs) dan dikirimkan sebagai tugas eksekusi pada komputer kuantum. Untuk menjalankan dalam job mode, tentukan mode=backend saat membuat instance primitif. Lihat Contoh Estimator dan Contoh Sampler untuk cara penggunaannya.
Batch mode
Manajer multi-job untuk menjalankan eksperimen yang terdiri dari workload multi-job secara efisien. Workload ini terdiri dari job-job yang bisa dieksekusi secara independen tanpa hubungan kondisional satu sama lain. Dengan batch mode, pengguna mengirimkan semua job sekaligus.
Sistem memparalelkan atau men-thread langkah pra-pemrosesan (komputasi klasik) dari setiap primitive job agar eksekusi kuantum antar job bisa dikemas lebih rapat, lalu menjalankan eksekusi kuantum setiap job secara berturut-turut dengan cepat untuk memberikan hasil yang paling efisien. Untuk detail lebih lanjut tentang threading, lihat halaman FAQ mode eksekusi.
- Saat menggunakan batch, urutan eksekusi job tidak dijamin sesuai urutan pengiriman. Selain itu, meskipun job batch Anda akan berjalan sedekat mungkin satu sama lain, mereka tidak mendapatkan akses eksklusif ke Backend. Oleh karena itu, job batch Anda mungkin berjalan bersamaan dengan job pengguna lain jika ada kapasitas pemrosesan yang cukup di QPU. Selain itu, job kalibrasi QPU bisa saja berjalan di antara job batch.
- Waktu antrean tidak berkurang untuk job pertama yang dikirimkan dalam batch. Oleh karena itu, batch tidak memberikan manfaat apa pun saat menjalankan satu job saja.
Untuk menjalankan dalam batch mode, tentukan mode=batch saat membuat instance primitif atau jalankan job dalam batch context manager. Lihat Jalankan job dalam batch untuk contoh-contohnya.
Session mode
Jendela waktu khusus untuk menjalankan workload multi-job. Selama jendela waktu ini, pengguna mendapat akses eksklusif ke sistem dan tidak ada job lain yang bisa berjalan — termasuk job kalibrasi. Hal ini memungkinkan pengguna bereksperimen dengan algoritma variasional secara lebih terprediksi dan bahkan menjalankan beberapa eksperimen secara bersamaan, memanfaatkan paralelisme dalam stack. Penggunaan Session membantu menghindari penundaan akibat setiap job harus mengantre secara terpisah, yang bisa sangat berguna untuk tugas iteratif yang memerlukan komunikasi yang sering antara sumber daya klasik dan kuantum. Fungsi biaya dalam gambar mewakili fungsi algoritma variasional kuantum, yang berjalan di mesin lokal pengguna.
Untuk menjalankan dalam session mode, tentukan mode=session saat membuat instance primitif, atau jalankan job dalam session context manager. Lihat Jalankan job dalam session untuk contoh-contohnya.
- Waktu antrean tidak berkurang untuk job pertama yang dikirimkan dalam session. Oleh karena itu, session tidak memberikan manfaat apa pun saat menjalankan satu job saja.
- Pengguna Open Plan tidak bisa mengirimkan job session.
- Dry-run jobs tidak mendukung session mode.
Alur kerja dasar
Alur kerja dasar untuk batch dan session serupa:
-
Job pertama dalam batch atau session masuk ke antrean normal. Untuk batch, seluruh kumpulan job dijadwalkan bersama.
-
Saat job pertama mulai berjalan, timer TTL (time to live) maksimum dimulai, dan tidak berhenti atau dijeda hingga batas waktu tercapai.
-
Timer interactive TTL dimulai setelah setiap job selesai. Jika tidak ada job workload yang siap dalam window interactive TTL, workload dinonaktifkan sementara dan pemilihan job normal dilanjutkan. Sebuah job bisa mengaktifkan kembali workload yang dinonaktifkan jika batch atau session belum mencapai nilai TTL maksimumnya.
catatanJob harus melalui antrean normal untuk mengaktifkan kembali workload.
-
Jika nilai TTL maksimum tercapai, workload berakhir dan semua job yang masih dalam antrean akan gagal. Job yang sedang berjalan tidak akan selesai jika melanjutkannya akan melebihi batas biaya instance.
Video berikut menggambarkan alur kerja dasar, menggunakan session sebagai contoh:
Untuk detail lengkap tentang timer TTL, lihat panduan Waktu eksekusi maksimum.