الحصول على معلومات Backend باستخدام Qiskit
Package versions
The code on this page was developed using the following requirements. We recommend using these versions or newer.
qiskit-ibm-runtime~=0.43.1
تشرح هذه الصفحة كيفية استخدام Qiskit للحصول على معلومات حول backends المتاحة لديك.
عرض قائمة الـ Backends
لعرض الـ backends التي تمتلك صلاحية الوصول إليها، يمكنك إما الاطلاع على قائمة في صفحة موارد الحوسبة، أو استخدام الطريقة QiskitRuntimeService.backends(). تُعيد هذه الطريقة قائمة من نسخ IBMBackend:
- إذا كنت مسجّل الدخول إلى instance أو منطقة محددة، أو إذا هيّأت الخدمة بـ instance أو منطقة محددة باستخدام
QiskitRuntimeService()، فستحصل فقط على الـ backends المتاحة لك في تلك الـ instance أو المنطقة. وإلا، فستُعاد جميع الـ backends المتاحة لك على أي instance وفي أي منطقة. - قائمة الـ backends المُعادة قد لا تكون مطابقة لتلك الظاهرة في صفحة موارد الحوسبة على منصة IBM Quantum Platform. القائمة في صفحة موارد الحوسبة تُصفَّى دائمًا حسب المنطقة المحددة في أعلى الصفحة.
لتشغيل الكود التالي، تأكد من أنك قد سجّلت الدخول إلى الخدمة مسبقًا. راجع إعداد حسابك على IBM Cloud للمزيد من التفاصيل.
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-runtime
# Initialize your account
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
service.backends()
[<IBMBackend('ibm_pittsburgh')>,
<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_torino')>,
<IBMBackend('ibm_kingston')>]
الطريقة QiskitRuntimeService.backend() (لاحظ أنها مفرد: backend) تأخذ اسم الـ backend كمعامل إدخال وتُعيد نسخة من IBMBackend تمثّل ذلك الـ backend تحديدًا:
service.backend("ibm_fez")
<IBMBackend('ibm_fez')>
تصفية الـ Backends
يمكنك أيضًا تصفية الـ backends المتاحة حسب خصائصها. للتصفية الأكثر عمومية، اضبط وسيطة filters على دالة تقبل كائن backend وتُعيد True إذا كان يستوفي معاييرك. راجع توثيق الـ API للمزيد من التفاصيل.
الكود التالي يُعيد فقط الـ backends التي تستوفي هذه المعايير وهي متاحة لك على الـ instance المحددة حاليًا:
- أجهزة كمّية حقيقية (
simulator=False) - تعمل حاليًا (
operational=True) - تحتوي على 5 Qubits على الأقل (
min_num_qubits=5)
# Optionally pass in an instance, region, or both, to
# further filter the backends.
service = QiskitRuntimeService()
service.backends(simulator=False, operational=True, min_num_qubits=5)
[<IBMBackend('ibm_pittsburgh')>,
<IBMBackend('ibm_boston')>,
<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_miami')>,
<IBMBackend('ibm_marrakesh')>,
<IBMBackend('ibm_torino')>,
<IBMBackend('ibm_kingston')>]
استخدم وسيطات الكلمات المفتاحية هذه للتصفية حسب أي خاصية في إعداد الـ backend (JSON schema) أو حالته (JSON schema). طريقة مشابهة هي QiskitRuntimeService.least_busy()، التي تأخذ نفس مرشّحات backends() لكنها تُعيد الـ backend الذي يطابق المرشّحات ولديه أقل عدد من الوظائف المنتظرة في الطابور:
service.least_busy(operational=True, min_num_qubits=5)
<IBMBackend('ibm_torino')>