Lewati ke konten utama

Pilih mode eksekusi yang tepat

Beban kerja skala utilitas bisa memakan waktu berjam-jam, jadi penting agar sumber daya klasik dan kuantum dijadwalkan secara efisien untuk memperlancar eksekusi. Mode eksekusi memberikan fleksibilitas dalam menyeimbangkan trade-off antara biaya dan waktu agar sumber daya digunakan secara optimal untuk beban kerjamu. Ada beberapa aspek yang perlu dipertimbangkan saat memilih mode eksekusi, seperti total waktu eksekusi (maximum time to live, atau TTL) dan waktu antar job (interactive TTL).

Manfaat masing-masing mode dirangkum di bawah ini:

  • Batch
    • Seluruh kumpulan job dijadwalkan bersama dan tidak ada waktu antre tambahan untuk masing-masing job.
    • Komputasi klasik dari job-job tersebut, seperti kompilasi, dijalankan secara paralel. Dengan demikian, menjalankan beberapa job dalam batch jauh lebih cepat dibandingkan menjalankannya satu per satu.
    • Biasanya ada jeda minimal antar job, yang membantu menghindari drift.
    • Jika kamu membagi beban kerja menjadi beberapa job dan menjalankannya dalam batch mode, kamu bisa mendapatkan hasil dari masing-masing job, sehingga lebih fleksibel untuk dikelola. Misalnya, jika hasil suatu job tidak sesuai harapan, kamu bisa membatalkan job yang tersisa. Selain itu, jika satu job gagal, kamu bisa mengirimnya ulang tanpa harus menjalankan ulang seluruh beban kerja.
    • Umumnya lebih murah dibandingkan Session.
  • Session
    • Semua fungsionalitas dari batch mode (tetapi memerlukan penggunaan yang lebih besar; lihat Workload usage untuk detail lebih lanjut tentang cara penggunaan dihitung).
    • Akses khusus dan eksklusif ke QPU selama jendela aktif Session.
    • Berguna untuk beban kerja yang tidak memiliki semua input siap di awal, untuk beban kerja iteratif yang membutuhkan post-processing klasik sebelum iterasi berikutnya bisa berjalan, dan untuk eksperimen yang perlu dijalankan sedekat mungkin satu sama lain.
  • Job
    • Paling mudah digunakan saat menjalankan eksperimen kecil.
    • Mungkin berjalan lebih cepat dibandingkan batch mode.

Rekomendasi dan praktik terbaik​

Secara umum, gunakan batch mode kecuali kamu memiliki beban kerja yang tidak memiliki semua input siap di awal.

  • Gunakan mode batch untuk mengirimkan beberapa primitive job sekaligus guna mempersingkat waktu pemrosesan.

  • Gunakan mode Session untuk beban kerja iteratif, atau jika kamu memerlukan akses khusus ke QPU.

  • Selalu gunakan mode job untuk mengirimkan satu primitive request.

  • Karena Session umumnya lebih mahal, disarankan agar kamu menggunakan batch kapan pun kamu tidak membutuhkan manfaat tambahan dari Session.

  • Pengguna Open Plan tidak bisa mengirimkan job Session.

Untuk memastikan penggunaan mode eksekusi yang paling efisien, praktik-praktik berikut disarankan:

  • Ada overhead tetap yang terkait dengan menjalankan sebuah job. Secara umum, jika setiap job-mu menggunakan kurang dari satu menit waktu QPU, pertimbangkan untuk menggabungkan beberapa job menjadi satu job yang lebih besar (ini berlaku untuk semua mode eksekusi). "Waktu QPU" mengacu pada waktu yang digunakan kompleks QPU untuk memproses jobmu.

  • Jika setiap job-mu mengonsumsi lebih dari satu menit waktu QPU, atau jika menggabungkan job tidak praktis, kamu masih bisa menjalankan beberapa job secara paralel. Setiap job melewati pemrosesan klasik dan kuantum. Sementara QPU hanya bisa memproses satu job dalam satu waktu, hingga lima job klasik bisa diproses secara paralel. Kamu bisa memanfaatkan ini dengan mengirimkan beberapa job dalam mode eksekusi batch atau Session.

Hal-hal di atas adalah panduan umum, dan kamu harus menyesuaikan beban kerjamu untuk menemukan rasio optimal, terutama saat menggunakan Session. Misalnya, jika kamu menggunakan Session untuk mendapatkan akses eksklusif ke backend, pertimbangkan untuk memecah job besar menjadi job yang lebih kecil dan menjalankannya secara paralel. Ini mungkin lebih hemat biaya karena bisa mengurangi wall-clock time.

Contoh​

Jalankan algoritma variasional kuantum​

Menjalankan algoritma variasional kuantum biasanya mengikuti alur berikut:

  1. Siapkan ansatz.
  2. Evaluasi fungsi biaya pada QPU.
  3. Ambil hasil dari langkah sebelumnya dan jalankan melalui optimizer klasik.
  4. Sesuaikan parameter sesuai output dari (3), lalu kembali ke langkah (2).

Dalam kasus ini, jika kamu menggunakan mode job atau batch, setiap job yang dihasilkan oleh langkah (2) perlu kembali melalui antrean. Ini sangat meningkatkan durasi eksperimen (wall-clock time) akibat waktu antre. Hal ini juga bisa membuat konvergensi lebih lambat akibat device drift. Artinya, setiap iterasi seharusnya memberikan hasil yang lebih baik, tetapi device drift bisa membuat hasil berikutnya menjadi lebih buruk.

Selain itu, jika kamu menggunakan PEA atau PEC, kamu bisa mempelajari model noise sekali dan menerapkannya pada job-job berikutnya saat berjalan dalam Session yang dedicated. Ini biasanya tidak berfungsi dengan mode batch atau job karena model noise bisa menjadi basi pada saat job berikutnya keluar dari antrean.

Bandingkan pengaturan mitigasi error​

Untuk membandingkan efek dari metode mitigasi error yang tersedia, kamu bisa mengikuti alur berikut:

  1. Buat Circuit dan observable.
  2. Kirimkan primitive job yang menggunakan kombinasi pengaturan mitigasi error yang berbeda.
  3. Plot hasilnya untuk mengamati efek dari berbagai pengaturan tersebut.

Dalam kasus ini, semua job (yang saling berkaitan tetapi independen) tersedia di awal. Jika kamu menggunakan batch mode, job-job tersebut dijadwalkan bersama sehingga kamu hanya perlu menunggu sekali di antrean. Selain itu, karena tujuannya adalah membandingkan efek berbagai metode mitigasi error, ada keuntungan jika job-job tersebut berjalan sedekat mungkin satu sama lain. Dengan demikian, batch adalah pilihan yang tepat. Kamu bisa menjalankan job-job ini dalam Session, tetapi karena Session umumnya lebih mahal, disarankan agar kamu menggunakan batch kapan pun kamu tidak membutuhkan fungsionalitas tambahan yang disediakan Session.

Langkah selanjutnya​

Source: IBM Quantum docs β€” updated 5 Mar 2026
English version on doQumentation β€” updated 7 Mei 2026
This translation based on the English version of 11 Mar 2026