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 managed workflow

Ketersediaan paket

Qiskit Functions dan managed workflow adalah fitur beta yang hanya tersedia untuk pengguna paket Premium, Flex, dan On-Prem (melalui API IBM Quantum® Platform).

Managed workflow menjalankan kode Python kustom milikmu di komputasi klasik yang dikelola IBM Quantum Platform untukmu. Gunakan managed workflow untuk menjalankan workflow hibrida kuantum-klasik, diagonalisasi skala besar, dan tugas paralel yang berjalan lama tanpa perlu mengelola infrastruktur komputasi atau penyimpanan.

Kapan menggunakan managed workflow​

Gunakan managed workflow ketika tidak ada Catalog Function siap pakai yang mencakup tugasmu, atau ketika kamu ingin mengemas metodemu sendiri sebagai fungsi yang bisa dipakai ulang. Managed workflow cocok ketika kamu ingin melakukan hal-hal berikut:

  • Menjalankan job panjang di cloud. Managed workflow tetap berjalan saat kamu menutup laptop, dan kamu bisa tersambung kembali ke job-nya nanti.

  • Menggunakan node dengan memori besar dan GPU. Pilih sumber daya memori, CPU, dan GPU yang dibutuhkan beban kerjamu.

  • Menjalankan tugas secara paralel. Mulai banyak job single-node pada saat yang sama.

Kamu menyediakan kode workflow, dependensinya, dan ukuran komputasi yang didukungnya. Managed workflow menjalankan workflow di komputasi yang dikelola IBM® dalam lingkungan siap pakai dengan paket-paketmu yang sudah terinstal, dan menyediakan penyimpanan cloud untuk file yang dibaca dan ditulis workflow.

Cara kerja managed workflow​

Kamu mengunggah workflow satu kali dan menjalankan job sebanyak yang kamu butuhkan. Setiap job bekerja dengan cara berikut:

  • Job dimulai di lingkungan baru dengan disk lokal kosong. Managed workflow mematikan lingkungan tersebut setelah job selesai.

  • Job berjalan pada salah satu ukuran komputasi yang kamu tentukan saat mengunggah workflow. Kamu bisa memilih ukuran yang berbeda untuk setiap run.

  • Job bisa membaca dan menulis penyimpanan file milik workflow. File di penyimpanan file tetap ada setelah job selesai.

Karena setiap job dimulai dengan disk lokal kosong, job berikutnya hanya bisa menemukan file yang disimpan oleh job sebelumnya ke penyimpanan file.

Siklus hidup sebuah run​

Setiap job berjalan secara asinkron hingga 24 jam. Kamu bisa memiliki hingga 50 job aktif pada saat yang sama jika instance-mu punya alokasi yang cukup.

From your Python session, you call upload() one time to upload the workflow's code, packages, and compute profiles. No job exists yet. Each call to run(args) creates a job that moves through these stages: Queue, where it waits for allocation with status QUEUED; Start, where the managed workflow creates the environment with status INITIALIZING; Running, where your code can optionally set stages with update_status(): Mapping (RUNNING: MAPPING), Optimizing (RUNNING: OPTIMIZING_FOR_HARDWARE), Waiting for QPU (RUNNING: WAITING_FOR_QPU), Executing QPU (RUNNING: EXECUTING_QPU), and Post-processing (RUNNING: POST_PROCESSING); and Result, where the environment shuts down with status DONE, ERROR, or CANCELED. While running, the job reads and writes workflow file storage, which exists outside the job, is shared by all runs, and persists before and after each job. From your session, you can read status() from Queue onward, logs() from Running onward, and result() after the job reaches Result. All three remain available after the job ends.

Tabel berikut menjelaskan setiap tahap dalam diagram dan status job yang kamu lihat selama tahap tersebut:

TahapYang terjadiStatus job
UploadKamu mengunggah kode, dependensi, dan ukuran workflow. Workflow menolak upload yang tidak valid sebelum job apa pun berjalan.Tidak ada (belum ada job)
AntreanKamu memanggil run(). Workflow memeriksa apakah instance-mu punya alokasi yang cukup, lalu menjadwalkan job saat komputasi tersedia.QUEUED
MulaiWorkflow membuat lingkungan dengan compute profile yang kamu pilih.INITIALIZING
RunEntrypoint workflow-mu berjalan. Entrypoint bisa melaporkan progresnya dengan update_status(), dan kamu bisa membaca lognya dengan logs() selagi berjalan.RUNNING, atau tahap yang kamu atur, seperti RUNNING: WAITING_FOR_QPU
HasilJob selesai, dan workflow mematikan lingkungannya sambil tetap menyimpan hasil dan log.DONE, ERROR, atau CANCELED

Apa yang bisa diakses job yang sedang berjalan​

Setiap job berjalan di lingkungan yang terisolasi. Diagram dan tabel berikut menunjukkan sumber daya yang bisa dipakai job yang sedang berjalan.

You call run() with arguments from your Python session and receive status, logs, and the result. Inside the managed workflow, each run executes in an isolated job environment with access to its compute (CPU, RAM, and optionally GPU), your code and packages, and its arguments. The job produces outputs with save_result(), logs, and update_status(), and submits QPU jobs that run on your instance. File storage and your instance, which provides access and cost management, are shared across all managed workflow jobs and persist after the job ends. The job has no internet access.

Sumber dayaYang bisa dipakai job
KomputasiCPU, memori, dan GPU dari compute profile yang kamu pilih untuk job.
Kode dan paketFile yang kamu unggah bersama workflow, dan paket yang didukung yang terinstal di lingkungan.
ArgumenArgumen yang kamu berikan ke run(). Baca dengan get_arguments().
Akses QPUKredensial dan instance yang kamu gunakan untuk memanggil run(). Job QPU yang dikirim workflow berjalan di instance-mu dan dihitung ke penggunaanmu.
OutputHasil yang disimpan job dengan save_result(), log yang dicetak job, dan pembaruan status yang diatur job dengan update_status().
Penyimpanan fileFile yang dibagikan bersama oleh semua run workflow-mu. File tetap ada di penyimpanan setelah job selesai.
InternetTidak ada akses. Job tidak bisa membuat koneksi keluar. Deklarasikan paket saat mengunggah workflow, dan sediakan data sebagai argumen atau file.

Keamanan dan isolasi​

Managed workflow mengisolasi setiap job dari job lain dan membatasi hak istimewa kode yang berjalan di dalamnya. Batas akses pada tabel sebelumnya adalah bagian dari isolasi ini. Managed workflow juga menerapkan perlindungan berikut:

  • Isolasi job. Tidak ada job lain yang berjalan di lingkungan job-mu. Ini termasuk job pengguna lain dan job-mu sendiri yang berjalan pada saat yang sama.

  • Hasil, log, dan penyimpanan. Hanya pengguna yang menjalankan job yang bisa membaca hasil dan lognya.

  • Kredensial. Managed workflow mengenkripsi kredensial yang dipakai job, termasuk API token-mu, saat menyimpannya. Kode workflow-mu bisa membaca kredensial ini selama job berjalan.

  • Hak istimewa. Managed workflow menghapus hak istimewa tingkat administrator dari lingkungan sebelum entrypoint-mu dimulai.

Perbandingan dengan HPC on-premises​

Managed workflow berbeda dari cluster HPC on-premises dalam hal cara mendapatkan waktu komputasi, menyiapkan software, dan mengirim job. Tabel berikut membandingkan tugas-tugas umum.

TugasCluster HPC on-premisesManaged workflow
Mendapatkan waktu komputasiMeminta alokasi atau reservasi dari administrator cluster.Gunakan alokasi instance IBM Quantum-mu. Workflow mengantrekan setiap job saat kamu memanggil run().
Mengakses sistemTerhubung ke login node dengan SSH.Gunakan klien Python di komputer lokalmu. Managed workflow tidak menyediakan login node.
Menginstal softwareBuild software, muat modul, atau minta administrator menginstal paket.Gunakan paket yang didukung yang terinstal di setiap lingkungan, atau unggah wheel untuk paket lainnya.
Mengirim jobTulis batch script dan kirim ke scheduler.Panggil run() dengan argumen job.
Meminta sumber dayaMeminta node, CPU, memori, dan GPU.Pilih salah satu ukuran komputasi yang didefinisikan untuk workflow. Setiap job berjalan di satu node.
Menjalankan parameter sweepKirim job array.Panggil run() satu kali untuk setiap set argumen.
Menyimpan file bersamaMenulis ke file system scratch bersama.Tulis ke penyimpanan file milik workflow.
Membatasi waktu runAtur batas wall-time.Workflow membatalkan job setelah 24 jam.
Checkpoint untuk job panjangTulis checkpoint ke penyimpanan scratch.Simpan hasil perantara ke penyimpanan file.
Menjalankan ulang job yang gagalKirim ulang job.Panggil run() lagi. Workflow tidak mencoba ulang job yang gagal secara otomatis.
Memantau jobPeriksa antrean dan file log dari login node.Periksa status, log, dan hasil setiap job dari sesi Python lokalmu.

Langkah selanjutnya​

Rekomendasi