انتقل إلى المحتوى الرئيسي

تنظيم التجارب والبحث فيها باستخدام وسوم الوظائف

إصدارات الحزم

الكود الموجود في هذه الصفحة طُوِّر باستخدام المتطلبات التالية. نوصي باستخدام هذه الإصدارات أو ما هو أحدث منها.

qiskit[all]~=2.3.0
qiskit-ibm-runtime~=0.43.1

يتناول هذا الدليل كيفية إضافة وسوم الوظائف وتحديثها، فضلاً عن البحث بحسب هذه الوسوم، حتى تتمكن من تنظيم تجاربك وتتبعها وفهمها بصورة أفضل.

تعيين الوسوم

يمكنك تعيين وسم واحد أو أكثر لوظائفك عند تشغيلها، حتى تتمكن لاحقاً من التصفية بحسب الوسم. قد تجد فائدة في استخدام وسوم الوظائف للإشارة إلى إعدادات معينة لتخفيف الأخطاء، أو معاملات الدائرة، وما شابه ذلك.

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-ibm-runtime
from qiskit_ibm_runtime import QiskitRuntimeService, Sampler
from qiskit import QuantumCircuit
from qiskit.transpiler import generate_preset_pass_manager

service = QiskitRuntimeService()
backend = service.least_busy(simulator=False, operational=True)

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

sampler = Sampler(backend)

pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_circuit = pm.run(qc)

# Assign tags before executing
sampler.options.environment.job_tags = ["experiment-2025", "sampler-example"]

# Submit
job = sampler.run([isa_circuit])

print(service.job(job.job_id()).tags)
['experiment-2025', 'sampler-example']

إضافة الوسوم وتحديثها

يمكنك إضافة وسوم بعد إرسال وظيفة باستخدام التابع update_tags(). يقوم هذا التابع بالكتابة فوق الوسوم الحالية، لذا إن كنت قد عيّنت وسوماً لوظيفة مسبقاً وأردت إضافة وسوم إضافية، احرص على إعادة تعيين الوسوم الأصلية أيضاً.

# Add a new tag while keeping the previously assigned tags
job.update_tags(["experiment-2025", "sampler-example", "127-qubit"])

# Confirm updated tags
print(job.tags)
['sampler-example', 'experiment-2025', '127-qubit']

استرجاع الوظائف بحسب الوسم

عرض قائمة بالوظائف التي تحمل وسوماً معينة كما يلي:

# List jobs with a specific tag or set of tags

service.jobs(job_tags=["experiment-2025", "sampler-example"])
[<RuntimeJobV2('d5k96nv853es738djj30', 'sampler')>,
<RuntimeJobV2('d5b1s2rht8fs73a66r80', 'sampler')>,
<RuntimeJobV2('d4vr9uteastc73cii4n0', 'sampler')>,
<RuntimeJobV2('d4mjv12v0j9c73e6dclg', 'sampler')>,
<RuntimeJobV2('d4c2e8fnmdfs73aedgl0', 'sampler')>,
<RuntimeJobV2('d42r485o35ts73c743g0', 'sampler')>,
<RuntimeJobV2('d3nkieg3qtks738eg8t0', 'sampler')>,
<RuntimeJobV2('d3ed8g1b641c738j6vdg', 'sampler')>,
<RuntimeJobV2('d38q4qcda4cs73aa79v0', 'sampler')>,
<RuntimeJobV2('d38q14g0sqis739a0ing', 'sampler')>]