FAQ mode eksekusi Qiskit Runtime
Apakah mode pengujian lokal Qiskit Runtime mendukung berbagai mode eksekusi?
Mode pengujian lokal mendukung sintaks untuk berbagai mode eksekusi, tetapi karena tidak ada penjadwalan saat pengujian lokal, mode-mode tersebut diabaikan.
Berapa banyak job yang bisa berjalan secara paralel untuk Backend tertentu?
Jumlah job yang berjalan secara paralel didasarkan pada tingkat paralelisme yang dikonfigurasi untuk Backend, yaitu lima untuk sebagian besar Backend saat ini.
Bagaimana penggunaan dilaporkan untuk job yang gagal atau dibatalkan?
Lihat bagian Job yang gagal dan dibatalkan di halaman Mode eksekusi.
Session​
Apa yang terjadi pada job saya jika Session ditutup?
Jika kamu menggunakan kelas Session di qiskit-ibm-runtime:
Session.close()berarti Session tidak lagi menerima job baru, tetapi job yang sudah ada tetap berjalan hingga selesai.Session.cancel()membatalkan semua job Session yang masih tertunda.
Jika kamu menggunakan REST API secara langsung:
PATCH /sessions/{id}denganaccepting_jobs=Falseberarti Session tidak lagi menerima job baru, tetapi job yang sudah ada tetap berjalan hingga selesai.DELETE /sessions/{id}/closemembatalkan semua job Session yang masih tertunda.
Jika saya menggunakan mode Session dan memperkirakan eksperimen saya akan memakan waktu berjam-jam, apakah ada cara untuk meminta kalibrasi dilakukan?
Tidak. Kalibrasi sesuai permintaan tidak tersedia.
Apakah ada batas waktu interaktif (interactive TTL) dengan mode Session?
Ya. Ini mengurangi biaya yang tidak diinginkan jika pengguna lupa menutup Session mereka.
Bisakah saya mengubah interactive TTL atau TTL maksimum dari sebuah Session?
Kamu tidak bisa mengubah nilai interactive TTL. Kamu bisa mengubah nilai TTL maksimum dari sebuah Session (lihat Tentukan panjang Session), tetapi nilainya harus kurang dari maksimum yang ditentukan sistem. Minta administratormu untuk menghubungi dukungan IBM jika kamu membutuhkan interactive TTL atau TTL maksimum sistem yang berbeda.
Bagaimana penggunaan Session memengaruhi anggota IBM Quantum Network yang tidak ditagih berdasarkan penggunaan?
Anggota IBM Quantum Network mendapatkan kapasitas yang dipesan di QPU IBM Quantum®. Penggunaan dikurangkan dari kapasitas ini dan instance dengan kapasitas lebih rendah memiliki waktu antrian yang lebih lama.
Apakah saya mendapatkan paralelisme yang sama dalam mode Session seperti yang saya dapatkan dengan mode batch?
Ya. Jika kamu mengirimkan beberapa job secara bersamaan dalam sebuah Session, job-job tersebut akan berjalan secara paralel.
Bisakah Session terganggu oleh peningkatan atau kalibrasi QPU?
Tidak. Session berjalan dalam mode khusus, yang berarti pengguna memiliki akses penuh ke Backend. Session tidak pernah terganggu oleh kalibrasi atau peningkatan perangkat lunak.
Apakah waktu kompilasi dihitung sebagai penggunaan dalam mode Session?
Ya. Dalam mode Session, penggunaan adalah waktu jam dinding ketika QPU berkomitmen ke Session. Waktu mulai dihitung saat job Session pertama dimulai dan berakhir saat Session menjadi tidak aktif, ditutup, atau saat job terakhir selesai, mana pun yang terjadi terakhir. Oleh karena itu, penggunaan terus bertambah setelah Session berakhir jika QPU masih menjalankan sebuah job. Selain itu, waktu setelah job selesai sementara QPU menunggu job Session lain (interactive TTL) dihitung sebagai penggunaan. Itulah mengapa kamu harus memastikan Session ditutup segera setelah kamu selesai mengirimkan job ke dalamnya.
Batch​
Berapa banyak job yang berjalan secara paralel dalam mode batch?
Jumlah job yang berjalan secara paralel didasarkan pada tingkat paralelisme yang dikonfigurasi untuk Backend, yaitu lima untuk sebagian besar Backend. Namun, jumlah job bersamaan dalam batch yang aktif bisa lebih rendah karena mungkin ada job lain yang sudah berjalan saat batch menjadi aktif.
Apa bedanya menjalankan N PUB dalam mode job dengan menjalankan N job ber-PUB-tunggal dalam mode batch?
Perbedaan utamanya adalah pada pertukaran waktu dan biaya:
Mode batch:
- Total waktu berjalan lebih singkat karena pemrosesan klasik mungkin berjalan secara paralel.
- Ada sedikit overhead untuk menjalankan setiap job, sehingga kamu membayar sedikit lebih banyak untuk job yang di-batch. Overhead ini berkorelasi dengan ukuran job. Misalnya, total penggunaan dua job, masing-masing berisi 40 Circuit 100x100, enam detik lebih banyak daripada satu job yang berisi 80 Circuit.
- Karena mode batch tidak memberimu akses eksklusif ke Backend, job di dalam batch mungkin berjalan bersamaan dengan job pengguna lain atau job kalibrasi.
- Jika beberapa job gagal, kamu tetap mendapatkan hasil dari job yang berhasil.
- Kamu bisa mengambil tindakan di tengah-tengah beban kerja batch berdasarkan hasil job yang sudah selesai. Misalnya, kamu bisa membatalkan sisa job jika hasil awal terlihat tidak benar.
Mode job:
- Total waktu berjalan kemungkinan lebih tinggi karena tidak ada paralelisme.
- Kamu tidak membayar overhead per-job ekstra yang terkait dengan beban kerja batch.
- Semua Circuit-mu akan berjalan bersama.
- Jika satu job ini gagal, kamu tidak mendapatkan hasil parsial.
- Job-mu mungkin mencapai batas jika berisi terlalu banyak Circuit atau jika Circuit terlalu besar.
Secara umum, jika setiap job-mu mengonsumsi kurang dari satu menit waktu QPU, pertimbangkan untuk menggabungkannya menjadi satu job yang lebih besar (ini berlaku untuk semua mode eksekusi).
Berapa banyak job yang bisa saya kirimkan dalam sebuah batch?
Meskipun tidak ada batasan jumlah job yang bisa kamu kirimkan dalam sebuah batch, ada waktu maksimum yang terkait dengan sebuah batch. Artinya, ketika waktu jam dinding batch (yang dimulai saat job batch pertama mulai berjalan) melebihi waktu maksimum yang ditentukan sistem, batch tidak akan menerima job baru, dan job yang sudah antre tetapi belum berjalan akan dibatalkan. Selain itu, ada batasan seberapa banyak penggunaan yang bisa dikonsumsi job-mu berdasarkan paketmu. Untuk menentukan waktu maksimum yang terkait dengan sebuah batch, gunakan metode batch.details() dan cari nilai max_time.
Kapan job mode batch saya berjalan paralel dengan job pengguna lain?
Tingkat paralelisme yang dikonfigurasi untuk sebuah Backend juga disebut "execution lanes". Jika ada satu atau lebih execution lanes yang tersedia, dan job batch-mu berikutnya dalam antrian, scheduler memulai cukup banyak job untuk mengisi lanes tersebut. Demikian pula, jika batch-mu tidak memiliki cukup job untuk mengisi lanes, scheduler memulai job pengguna lain.
Contoh: Backend yang kamu pilih memiliki lima execution lanes, dan dua di antaranya sedang digunakan oleh job pengguna lain. Batch kamu yang berisi enam job berikutnya dalam antrian.
Karena ada tiga lanes yang tersedia, scheduler memulai tiga dari enam job batch-mu. Scheduler terus memulai job dalam batch-mu saat job selesai dan execution lanes menjadi tersedia. Jika sebuah lane menjadi tersedia dan tidak ada lagi job dalam batch-mu, scheduler memulai job berikutnya dalam antrian.
Apakah semua job batch saya harus menunggu dalam antrian?
Karena QPU adalah sumber daya yang terbatas dan bersama, semua job harus menunggu dalam antrian. Namun, ketika job pertama dalam batch-mu mulai berjalan, semua job lain dalam batch tersebut pada dasarnya langsung melompat ke bagian depan antrian dan diprioritaskan oleh scheduler.
Apakah sebuah batch berakhir secara otomatis saat job terakhir yang terkait selesai?
Ya. Namun, ada sedikit overhead yang terkait dengan deteksi otomatis ini, jadi kamu harus selalu menutup batch dan Session-mu.
Bisakah batch terganggu oleh kalibrasi atau peningkatan perangkat lunak
Ya. Beban kerja batch mungkin terganggu oleh kalibrasi atau peningkatan perangkat lunak.
Apakah waktu kompilasi dihitung sebagai penggunaan dalam mode batch?
Tidak. Dalam mode batch, hanya waktu yang dihabiskan di perangkat keras kuantum yang dihitung sebagai penggunaan.