Langkau ke kandungan utama
Projek ini dalam fasa beta. Jumpa pepijat? Buat isu GitHub. Ada soalan atau idea? Tanya dalam Discussions — kami suka dengar maklum balas anda!
Bagaimana kualiti terjemahan pada halaman ini?

Pengenalan kepada aliran kerja terurus

Ketersediaan pelan

Qiskit Functions dan aliran kerja terurus ialah ciri beta yang hanya tersedia kepada pengguna pelan Premium, Flex dan On-Prem (melalui API IBM Quantum® Platform).

Aliran kerja terurus menjalankan kod Python tersuai anda pada pengkomputeran klasik yang diurus oleh IBM Quantum Platform untuk anda. Gunakan aliran kerja terurus untuk menjalankan aliran kerja hibrid kuantum-klasik, pepenjuruan berskala besar dan tugas selari yang berjalan lama tanpa perlu mengurus infrastruktur pengkomputeran atau storan.

Bila hendak menggunakan aliran kerja terurus​

Gunakan aliran kerja terurus apabila tiada Catalog Function siap bina yang meliputi tugas anda, atau apabila anda ingin membungkus kaedah anda sendiri sebagai fungsi yang boleh digunakan semula. Aliran kerja terurus sesuai apabila anda ingin melakukan perkara berikut:

  • Jalankan kerja panjang di awan. Aliran kerja terurus terus berjalan apabila anda menutup komputer riba, dan anda boleh menyambung semula ke kerja itu kemudian.

  • Gunakan nod memori besar dan GPU. Pilih sumber memori, CPU dan GPU yang diperlukan oleh beban kerja.

  • Jalankan tugas secara selari. Mulakan banyak kerja nod tunggal pada masa yang sama.

Anda menyediakan kod aliran kerja, kebergantungannya dan saiz pengkomputeran yang disokongnya. Aliran kerja terurus menjalankan aliran kerja pada pengkomputeran yang diurus oleh IBM® dalam persekitaran siap bina dengan pakej anda dipasang, dan menyediakan storan awan untuk fail yang dibaca dan ditulis oleh aliran kerja.

Cara aliran kerja terurus berfungsi​

Anda memuat naik aliran kerja sekali dan menjalankan seberapa banyak kerja yang anda perlukan. Setiap kerja berfungsi dengan cara berikut:

  • Kerja bermula dalam persekitaran baharu dengan cakera tempatan yang kosong. Aliran kerja terurus menutup persekitaran selepas kerja tamat.

  • Kerja berjalan pada salah satu saiz pengkomputeran yang anda tentukan semasa memuat naik aliran kerja. Anda boleh memilih saiz yang berbeza untuk setiap larian.

  • Kerja boleh membaca dan menulis storan fail aliran kerja. Fail dalam storan fail kekal selepas kerja tamat.

Oleh sebab setiap kerja bermula dengan cakera tempatan yang kosong, kerja kemudian hanya dapat menemui fail yang disimpan oleh kerja terdahulu ke storan fail.

Kitar hayat sesuatu larian​

Setiap kerja berjalan secara tak segerak sehingga 24 jam. Anda boleh mempunyai sehingga 50 kerja aktif pada masa yang sama jika instans anda mempunyai peruntukan yang mencukupi.

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.

Jadual berikut menerangkan setiap peringkat dalam rajah dan status kerja yang anda lihat semasa peringkat itu:

PeringkatApa yang berlakuStatus kerja
Muat naikAnda memuat naik kod aliran kerja, kebergantungan dan saiz. Aliran kerja menolak muat naik yang tidak sah sebelum sebarang kerja berjalan.Tiada (belum ada kerja)
BeraturAnda memanggil run(). Aliran kerja menyemak sama ada instans anda mempunyai peruntukan yang mencukupi, dan menjadualkan kerja apabila pengkomputeran tersedia.QUEUED
MulaAliran kerja mencipta persekitaran dengan profil pengkomputeran yang anda pilih.INITIALIZING
JalanTitik masuk aliran kerja anda berjalan. Titik masuk boleh melaporkan kemajuannya dengan update_status(), dan anda boleh membaca lognya dengan logs() semasa ia berjalan.RUNNING, atau peringkat yang anda tetapkan, seperti RUNNING: WAITING_FOR_QPU
HasilKerja tamat, dan aliran kerja menutup persekitarannya, sambil mengekalkan hasil dan log.DONE, ERROR, atau CANCELED

Apa yang boleh diakses oleh kerja yang sedang berjalan​

Setiap kerja berjalan dalam persekitaran terpencil. Rajah dan jadual berikut menunjukkan sumber yang boleh digunakan oleh kerja 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.

SumberApa yang boleh digunakan oleh kerja
PengkomputeranCPU, memori dan GPU bagi profil pengkomputeran yang anda pilih untuk kerja.
Kod dan pakejFail yang anda muat naik bersama aliran kerja, dan pakej yang disokong yang dipasang dalam persekitaran.
ArgumenArgumen yang anda hantar kepada run(). Bacanya dengan get_arguments().
Akses QPUBukti kelayakan dan instans yang anda gunakan untuk memanggil run(). Kerja QPU yang dihantar oleh aliran kerja berjalan pada instans anda dan dikira dalam penggunaan anda.
OutputHasil yang disimpan oleh kerja dengan save_result(), log yang dicetak oleh kerja, dan kemas kini status yang ditetapkan oleh kerja dengan update_status().
Storan failFail yang dikongsi oleh semua larian aliran kerja anda. Fail kekal dalam storan selepas kerja tamat.
InternetTiada akses. Kerja tidak boleh membuat sambungan keluar. Isytiharkan pakej semasa memuat naik aliran kerja, dan sediakan data sebagai argumen atau fail.

Keselamatan dan pengasingan​

Aliran kerja terurus mengasingkan setiap kerja daripada kerja lain dan mengehadkan keistimewaan kod yang berjalan di dalamnya. Sempadan akses dalam jadual sebelum ini ialah sebahagian daripada pengasingan ini. Aliran kerja terurus juga menggunakan perlindungan berikut:

  • Pengasingan kerja. Tiada kerja lain berjalan dalam persekitaran kerja anda. Ini termasuk kerja pengguna lain dan kerja anda sendiri yang berjalan pada masa yang sama.

  • Hasil, log dan storan. Hanya pengguna yang menjalankan sesuatu kerja boleh membaca hasil dan lognya.

  • Bukti kelayakan. Aliran kerja terurus menyulitkan bukti kelayakan yang digunakan oleh kerja, termasuk token API anda, apabila menyimpannya. Kod aliran kerja anda boleh membaca bukti kelayakan ini semasa kerja berjalan.

  • Keistimewaan. Aliran kerja terurus membuang keistimewaan peringkat pentadbir daripada persekitaran sebelum titik masuk anda bermula.

Perbandingan dengan HPC di premis​

Aliran kerja terurus berbeza daripada kluster HPC di premis dari segi cara anda mendapatkan masa pengkomputeran, menyediakan perisian dan menghantar kerja. Jadual berikut membandingkan tugas biasa.

TugasKluster HPC di premisAliran kerja terurus
Dapatkan masa pengkomputeranMinta peruntukan atau tempahan daripada pentadbir kluster.Gunakan peruntukan instans IBM Quantum anda. Aliran kerja meletakkan setiap kerja dalam baris gilir apabila anda memanggil run().
Akses sistemSambung ke nod log masuk dengan SSH.Gunakan klien Python pada komputer tempatan anda. Aliran kerja terurus tidak menyediakan nod log masuk.
Pasang perisianBina perisian, muatkan modul, atau minta pentadbir memasang pakej.Gunakan pakej yang disokong yang dipasang dalam setiap persekitaran, atau muat naik wheel untuk pakej lain.
Hantar kerjaTulis skrip kelompok dan hantarkannya kepada penjadual.Panggil run() dengan argumen kerja.
Minta sumberMinta nod, CPU, memori dan GPU.Pilih salah satu saiz pengkomputeran yang ditakrifkan untuk aliran kerja. Setiap kerja berjalan pada satu nod.
Jalankan sapuan parameterHantar tatasusunan kerja.Panggil run() sekali untuk setiap set argumen.
Simpan fail kongsiTulis ke sistem fail scratch kongsi.Tulis ke storan fail untuk aliran kerja.
Hadkan masa larianTetapkan had masa dinding.Aliran kerja membatalkan kerja selepas 24 jam.
Titik semak untuk kerja panjangTulis titik semak ke storan scratch.Simpan hasil perantaraan ke storan fail.
Jalankan semula kerja yang gagalHantar semula kerja.Panggil run() sekali lagi. Aliran kerja tidak mencuba semula kerja yang gagal secara automatik.
Pantau kerjaSemak baris gilir dan fail log dari nod log masuk.Semak status, log dan hasil setiap kerja daripada sesi Python tempatan anda.

Langkah seterusnya​

Cadangan