Pengantar mode eksekusi Qiskit Runtime
Ketika Qiskit Runtime 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 kamu dijadwalkan, dan memilih mode eksekusi yang tepat memungkinkan workload berjalan secara efisien sesuai anggaran yang ada. Ada tiga mode eksekusi: job, session, dan batch.
Mode jobβ
Satu permintaan primitif dari estimator atau sampler 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 mode job, tentukan mode=backend saat membuat instance primitif. Lihat Contoh Primitives untuk cara penggunaannya.
Mode batchβ
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 mode batch, 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 berurutan 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 kamu akan berjalan sedekat mungkin satu sama lain, mereka tidak mendapatkan akses eksklusif ke Backend. Oleh karena itu, job batch kamu 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 mode batch, tentukan mode=batch saat membuat instance primitif atau jalankan job dalam batch context manager. Lihat Jalankan job dalam batch untuk contoh-contohnya.
Mode Sessionβ
Window khusus untuk menjalankan workload multi-job. Selama window 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. Menggunakan Session membantu menghindari penundaan yang disebabkan oleh antrean setiap job secara terpisah, yang bisa sangat berguna untuk tugas iteratif yang memerlukan komunikasi sering antara sumber daya klasik dan kuantum.
Untuk menjalankan dalam mode Session, 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.
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 maksimum time to live (TTL) 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.
catatan
Job 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.