1. Ana sayfa
  2. İçerik planı
  3. Toplu yürütüm · Qiskit
Qiskit · Runtime ve ilkel API

Toplu yürütüm — Birden çok PUB veya işin birlikte planlanması

Toplu yürütüm (batch), bir veya birden çok ilkel çağrısını — genelde aynı gönderim paketinde birden çok PUB ile — birlikte planlayarak kuyruk ve klasik ön işleme maliyetini düşürmeyi hedefler. Tek iş yaşam döngüsü Runtime işleri; bağlamda ardışıklık oturum sistemi; PUB ve sonuç okuma Estimator ve Sampler dosyalarında kalır. Bu sayfa toplu paketleme kararı, sınırları ve operasyonel okumayı işler.

  • Odak: paket · planlama
  • Ayrım: iş · oturum · toplu
  • Sınır: sürüm ve hizmet yüzeyi

Toplu yürütüm haritası ve sayfa sınırı

Toplu yürütüm (batch), uzak ilkel çağrılarını tek bir planlama çerçevesinde bir araya getirme kararıdır: aynı gönderimde birden çok PUB, aynı toplu bağlamda arka arkaya planlanan çağrılar veya ürünün sunduğu “batch” soyutlamasıyla paketlenmiş işler. Amaç, kuyruk başına düşen klasik ön işleme ve bağlantı maliyetini amorti etmek ve deney hattını öngörülebilir kılmaktır; ⟨O⟩ veya bit dizesi matematiği yine Estimator ve Sampler sayfalarında kalır.

Bu sayfa toplu neden ve nasıl paketlenir sorularını işler; tek işin kimlik ve durum yüzeyi Runtime işleri, ardışık çağrıların bağlamda gruplanması oturum sistemi dosyalarında ayrıntılandırılır. Belirli bir REST uç noktası, kota tablosu veya SDK sınıf adı burada sabitlenmez; üretimde güncel IBM Quantum belgeleri ve kilitlenmiş sürüm aralığı esas alınmalıdır.

Orkestrasyon desenleri ilkel iş akışları ve klasik–kuantum döngü hibrit kuantum iş akışı başlıklarında kalır; burada yalnızca “hangi PUB’lar aynı pakette, hangi metriklerle izlenir?” sorusu ele alınır.

Ne vaat edilmez

Ücret, kota veya SLA taahhüdü verilmez; bunlar platforma ve hesap türüne göre değişir.

Toplunun “her zaman daha ucuz veya daha hızlı” olduğu varsayımı doğru değildir: paket boyutu, zaman aşımı ve hata oranı birlikte değerlendirilmelidir.

Mimari özet Toplu yürütüm = paketleme ve planlama kararı; iş = izlenen gönderim birimi; oturum = bağlamda ardışıklık; ilkel = matematiksel çıktı sözleşmesi. Dört farklı soyutlama katmanıdır; loglarda birbirine karıştırılmamalıdır.

İş, oturum ve toplu: rol ayrımı

Tek iş, tek bir gönderimin kuyruk ve kimlik üzerinden izlenen örneğidir ( Runtime işleri). Oturum, aynı uzak bağlamda çağrıları gruplayarak klasik–kuantum etkileşimini sadeleştirir ( oturum sistemi). Toplu yürütüm ise “aynı anda veya aynı planlama penceresinde birden çok birimi birlikte düşünme” yaklaşımıdır: ya tek çağrıda çoklu PUB listesi ya da toplu kapsayıcı altında sıralanan çağrılar. Üç mod birbirini dışlamaz; ürün yüzeyine göre iç içe geçebilir.

Oturum “aynı bağlamda devam et” derken, toplu genelde “aynı gönderim maliyet eğrisinde grupla” der. Karışıklık, her ikisinin de wall-clock’u iyileştirebilmesinden kaynaklanır; fakat oturumun odak noktası durum taşıyan bağlam, toplunun odak noktası iş birimi sayısı ve paket sınırıdır.

IBM belgelerinde yürütme modları karşılaştırmalı anlatılır; bu sayfa o tabloyu kopyalamaz, yalnızca Qubyt içi sınır çizer: mod seçimi için platform belgelerine, iş yaşam döngüsü için Runtime işleri sayfasına yönlendirir.

İzlenebilirlik

Toplu paket adı, deney etiketi, kod sürümü ve veri kümesi parmak izi birlikte loglanmalıdır; aksi halde kısmi başarıda hangi alt kümenin geçerli olduğu bulunamaz.

Aynı PUB listesi bile farklı paketlerde yeniden gönderilebilir; idempotent anahtar ( parçalama ve zaman aşımı bölümü) olmadan “tekrar mı, yeni deneme mi?” ayrımı kaybolur.

Çoklu PUB ve tek gönderim sözleşmesi

Primitive V2 düşüncesinde PUB (primitive unified bloc), devre + gözlemlenebilir + parametre + seçeneklerin tek satırlık birimidir. Birden çok PUB’u aynı run(...) çağrısına vermek, istemci tarafında tek bir “toplu matematik paketi” oluşturur; sunucu bunu nasıl kuyruğa koyarsa koysun, sizin tasarım sorunuz “hangi PUB’lar atomik olarak birlikte başarısız olsun?” sorusuna indirgenir.

PUB içi shot ve gözlemlenebilir tasarımı shot mantığı ve gözlemlenebilir değerlendirme ile ilişkilidir; burada yalnızca listeleme ve sıra disiplinine odaklanılır: sonuç dizisi ile girdi dizisinin bire bir eşlenmesi, istemci kodunda test edilmelidir.

Çok büyük PUB listeleri bellek, serileştirme ve doğrulama süresini artırır; “hepsini tek seferde” yerine üst boyut ve alt paketlere bölmek ( parçalama ve zaman aşımı bölümü) operasyonel olarak daha güvenlidir.

Sıra ve deterministik okuma

Sonuç koleksiyonunda indeks, deney meta verisiyle birlikte saklanmalıdır; yalnızca sıraya güvenmek, ara sürümlerde ek alanlar eklendiğinde kırılganlık yaratır.

Parametre sweepleri gibi tekrarlı yapılar için, PUB üretimini saf fonksiyon halinde tutmak regresyonu kolaylaştırır.

Parçalama, zaman aşımı ve idempotent anahtar

Üretimde toplu paket üç sınırla kesilir: maksimum PUB sayısı, tek paket wall-clock üst sınırı ve yeniden deneme politikası. İlk ikisi platformdan gelir; üçüncüsü tamamen sizin kontrolünüzdedir. Paket boyutu büyüdükçe tek hatada “büyük kayıp” riski artar; küçük paketlerde ise kuyruk başına overhead baskın olabilir.

Zaman aşımı hem istemci hem sunucu tarafında tanımlı olabilir; hangi tarafın önce kestiği hata iletisi farklıdır. Toplu senaryoda tek bir yavaş PUB, tüm paketin algılanan süresini şişirebilir — bu yüzden “uzun kuyruk” ve “ağır PUB” ayrı kuyruklara veya farklı paketlere ayrılmalıdır.

Yeniden deneme (retry) için istemci tarafında deterministik bir idempotency anahtarı (örneğin deney kimliği + PUB karması + kod sürümü) tutulmalıdır; aksi halde ağ kesintisinde mükerrer yürütme üretilir. Runtime işleri sayfasındaki iş yaşam döngüsü ile birlikte okunmalıdır.

Eşzamanlılık ve geri basınç

Paralel paket gönderimi, kuyruk derinliği ve hız sınırıyla etkileşir; istemci tarafında sınırlayıcı (semaphore) olmadan patlama yapılmamalıdır.

Yerel prototipte kuyruk yoktur; bulutta ise aynı kod yolunun davranışı farklılaşır. Bu yüzden entegrasyon testleri küçük paketlerle başlamalıdır.

Kuyruk, klasik ön işleme ve drift sezgisi

Toplu yürütümün ekonomik argümanı çoğu zaman sabit maliyetlerin paylaşılmasıdır: kimlik doğrulama, devre doğrulama, serileştirme ve ilk kuyruk yerleşimi. Bu kazanım, PUB başına shot sayısı düşükken görece daha belirgin olabilir; tersine, çok yüksek shot’lı az sayıda PUB’da baskın terim yürütme süresi olabilir.

Aynı toplu pencerede yürütülen PUB’lar, donanım kalibrasyonu ve sıcaklık açısından birbirine yakın koşullarda çalışabilir; bu, karşılaştırmalı deneylerde istenir veya istenmez. İstenmeyen durumda, paketleri zamana yaymak veya referans PUB eklemek gerekir; aksi halde “gürültü korelasyonu” yorum hatasına yol açar.

Kullanım ölçümü ve süre tahmini IBM belgelerinde anlatılır; bu sayfa yalnızca metrik toplama disiplinini hatırlatır: paket kimliği, gönderim zamanı, kuyruk bekleme süresi, yürütme süresi ve başarı oranı ayrı alanlarda tutulmalıdır.

Hata azaltma etkileşimi

Hata azaltma seçenekleri yürütme yolunu uzatabilir; toplu planlarken bu ek süreyi paket bütçesine dahil etmek gerekir. Hata azaltma ile birlikte okunmalıdır.

Ağ ve uç nokta seçimi Runtime yürütme sayfasında özetlenir.

Kısmi başarı, iptal ve günlük okuma

Toplu paketlerde hata üç düzeyde okunur: tüm paket reddi (doğrulama veya kota), yürütme sırasında kesinti, sonuç ayrıştırma hatası. Ürün, PUB bazlı kısmi sonuç döndürebilir veya tüm paketi “başarısız” işaretleyebilir; bu ayrım entegrasyon testlerinde açıkça doğrulanmalıdır.

İptal çağrısı her zaman anında durdurma anlamına gelmez; kuyrukta bekleyen veya yarım kalan PUB’lar için gecikmeli durum gözlenebilir. Operasyon ekibi için “hangi alt küme tamamlandı?” sorusu, iş kimliğinden bağımsız olarak paket düzeyinde cevaplanabilmelidir.

Log şemasında batch_id (veya eşdeğeri), alt iş kimlikleri ve PUB indeksi birlikte bulunmalıdır; yalnızca iş kimliği ile arama yapmak, toplu iç içe yapılarda yetersiz kalır.

Yerel doğrulama

Küçük devrelerde önce StatevectorEstimator / StatevectorSampler ile beklenen sayısal referans, sonra bulutta küçük paketle kıyaslama regresyonu erken yakalar. Sadakat ölçütleri durum tabanlı senaryolarda yardımcı olabilir; ⟨O⟩ ile doğrudan özdeş değildir.

Sonuç önbelleği ve saklama politikası mimari bir karardır; bu sayfa veri hattını tasarlamaz.

Toplu yürütüm kod laboratuvarı

Birinci kutu, IBM Qiskit Runtime’da Batch kapsayıcısı ile aynı toplu bağlamda birden çok ilkel çağrısı için yorum satırlı iskelet (hesap, token ve güncel qiskit-ibm-runtime belgeleri gerekir). İkinci ve üçüncü kutular, hesap gerektirmeden yerelde birden çok PUB’u tek run ile işleyerek dizin–sonuç eşlemesini pratik eder.

Sınıf ve import yolları sürüme göre değişebilir; etkinleştirmeden önce IBM Quantum belgelerini doğrulayın.

Bulut: Batch bağlamında ilkel çağrıları

Aşağıdaki satırlar bilinçli olarak yorumdadır.

ibm_runtime_batch_primitive_sketch.py Python
# Örnek iskelet — hesap, token ve güncel qiskit-ibm-runtime belgeleri gerekir.
# from qiskit_ibm_runtime import QiskitRuntimeService, Batch, EstimatorV2 as Estimator
#
# service = QiskitRuntimeService()
# backend = service.backend("...")  # veya mode ile uyumlu backend seçimi
# pubs_a = [...]
# pubs_b = [...]
#
# with Batch(backend=backend) as batch:
#     estimator = Estimator(mode=batch)
#     job_a = estimator.run(pubs_a)
#     job_b = estimator.run(pubs_b)
#     print(job_a.job_id(), job_b.job_id())
#     ra, rb = job_a.result(), job_b.result()
# print(ra, rb)
qiskit Batch · çoklu run · yorum iskeleti UTF-8 · LF

Yerel: çoklu PUB ile Estimator

Aşağıdaki örnek, tek run çağrısında iki PUB döndürür; sonuç listesi ile girdi sırasını eşleştirmeyi alıştırır.

local_estimator_multi_pub.py Python
from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit.primitives import StatevectorEstimator

qc0 = QuantumCircuit(1)
qc0.h(0)
qc1 = QuantumCircuit(1)
qc1.x(0)

pubs = [
    (qc0, [SparsePauliOp("Z")]),
    (qc1, [SparsePauliOp("Z")]),
]
result = StatevectorEstimator().run(pubs).result()
for i, pub_result in enumerate(result):
    print(i, pub_result.data.evs.item())
qiskit Yerel · çoklu PUB · Estimator UTF-8 · LF

Yerel: çoklu PUB ile Sampler

Aynı desen Sampler için de geçerlidir; bit dizesi dağılımı okumasını Sampler sayfasıyla hizalayın.

local_sampler_multi_pub.py Python
from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler

qc0 = QuantumCircuit(2)
qc0.h([0, 1])
qc0.measure_all()
qc1 = QuantumCircuit(2)
qc1.x(0)
qc1.measure_all()

pubs = [(qc0,), (qc1,)]
result = StatevectorSampler().run(pubs).result()
for i, pub_result in enumerate(result):
    print(i, pub_result.data.meas.get_counts())
qiskit Yerel · çoklu PUB · Sampler UTF-8 · LF

Özet ve ileri okuma

Toplu yürütüm; PUB listesi veya toplu kapsayıcı ile yürütme birimlerini planlama kararıdır. Tek iş yaşam döngüsü Runtime işleri, bağlamda ardışıklık oturum sistemi, matematiksel çıktı Estimator ve Sampler ile tamamlanır.

Bu sayfa “hangi birimler aynı pakette, hangi metriklerle izlenir?” sorusunu yanıtlar; güncel SDK imzası ve kota IBM belgelerinde tutulur. Üretimde paket boyutu, zaman aşımı ve idempotency birlikte tasarlanmalıdır.

Özet Toplu = paketleme ve planlama; iş = izleme birimi; oturum = bağlam; ilkel = çıktı. Küçük paketlerle başlayın; kısmi başarı ve iptal senaryolarını log şemasında önceden tanımlayın.