Lewati ke konten utama
Proyek ini masih dalam tahap beta. Menemukan bug? Buat isu GitHub. Punya pertanyaan atau ide? Tanya di Discussions — kami sangat menghargai masukan kamu!
Bagaimana kualitas terjemahan di halaman ini?

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.

Sekumpulan job yang dijalankan dalam batch mode. Bagian komputasi klasik dari setiap job terjadi secara bersamaan, lalu semua job dikirim ke QPU. QPU dikunci untuk penggunaan Anda sejak job pertama mencapai QPU hingga job terakhir selesai diproses. Tidak ada jeda antar job di mana QPU menganggur.

Catatan
  • 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.

A sets of jobs being run in session mode and the other is being run in batch mode.  Between each job is the interactive TTL (interactive time to live).  The active window starts when the first job starts and ends after the last job is completed. After the final job of the first set of jobs completes, the active window ends and the session is paused (but not closed).  Another set of jobs then starts and jobs continue in a similar manner. The QPU is reserved for your use during the entire session.

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.

Catatan
  • 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:

  1. Job pertama dalam batch atau session masuk ke antrean normal. Untuk batch, seluruh kumpulan job dijadwalkan bersama.

  2. Saat job pertama mulai berjalan, timer TTL (time to live) maksimum dimulai, dan tidak berhenti atau dijeda hingga batas waktu tercapai.

  3. 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.

  4. 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.

Langkah selanjutnya​