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

واجهة إدارة الموارد الكمومية (QRMI)

واجهة إدارة الموارد الكمومية (QRMI) هي مكتبة مستقلة عن المورِّد، مصممة لأنظمة الحوسبة عالية الأداء (HPC) للوصول إلى الموارد الحسابية الكمومية والتحكم فيها ومراقبة سلوكها. تعمل كطبقة وسيطة خفيفة تجرّد التعقيدات المرتبطة بالتحكم في الموارد الكمومية من خلال مجموعة من واجهات برمجة التطبيقات (APIs) البسيطة. كُتبت هذه الواجهة بلغة Rust، وتكشف أيضًا عن واجهات برمجية لـ Python و C لتسهيل دمجها في أي بيئة حسابية تقريبًا.

يمكنك العثور على الكود المصدري لبناء QRMI ونشره في هذا مستودع GitHub.

يُضمَّن في حزمة Python أداة اختيارية لسطر الأوامر تسمى task_runner لتنفيذ الأحمال الكمومية على الأجهزة الكمومية. يمكنك الاطلاع على التوثيق الكامل في مستودع GitHub.

بناء مكتبات QRMI

يوضّح هذا القسم كيفية بناء QRMI لـ C و Python.

المتطلبات

تدعم QRMI أنظمة التشغيل (OS) التالية:

AlmaLinux 9, Amazon Linux 2023, CentOS Stream 9, CentOS Stream 10,
RedHat Enterprise Linux 8, RedHat Enterprise Linux 9,
RedHat Enterprise Linux 10, Rocky Linux 8, Rocky Linux 9, SuSE 15,
Ubuntu 22.04, Ubuntu 24.04, MacOS Sequoia 15.1 or above

بيئة التصريف

  • مصرِّف Rust الإصدار 1.91 أو أحدث
  • مصرِّف C: مثلاً GCC (gcc) على Linux وClang (clang-tools-extra) لأهداف Rust غير المعروفة أو التصريف المتقاطع. يتوافق QRMI مع أي مصرِّف يلتزم بمعيار C11
  • make/cmake (حزمة make/cmake RPM لأنظمة RHEL المتوافقة)
  • openssl (حزمة openssl-devel RPM لأنظمة RHEL المتوافقة)
  • zlib (حزمة zlib-devel RPM لأنظمة RHEL المتوافقة)
  • Python 3.11 أو 3.12 أو 3.13 (لواجهة Python البرمجية)
    • المكتبات وملفات الترويسة اللازمة لتطوير Python (حزمة python3.1x-devel RPM لأنظمة RHEL المتوافقة):
      • /usr/include/python3.1x
      • /usr/lib64/libpython3.1x.so
  • Doxygen (لتوليد توثيق واجهة C البرمجية)، حسب نظام التشغيل:
    • dnf install doxygen لـ Linux (RHEL/CentOS/Rocky Linux وغيرها)
    • apt install doxygen لـ Linux (Ubuntu وغيرها)
    • brew install doxygenلـ MacOS

بيئة التشغيل

  • gcc (حزمة libgcc RPM لأنظمة RHEL المتوافقة)
  • openssl (حزمة openssl-libs RPM لأنظمة RHEL المتوافقة)
  • zlib (حزمة zlib RPM لأنظمة RHEL المتوافقة)
  • Python 3.11 أو 3.12 أو 3.13 (لواجهة Python البرمجية)
    • المكتبات وملفات الترويسة اللازمة لتطوير Python (حزمة python3.1x-devel RPM لأنظمة RHEL المتوافقة)

ابنِ مكتبة Rust/C API بتشغيل الأوامر التالية في المجلد الذي حفظت فيه مستودع QRMI.

. ~/.cargo/env
cargo clean
cargo build --release

لبناء حزمة Python، أنشئ أولاً بيئة Python وثبِّت التبعيات المطلوبة.

. ~/.cargo/env
cargo clean
python3.12 -m venv ~/py312_qrmi_venv
source ~/py312_qrmi_venv/bin/activate
pip install --upgrade pip
pip install -r requirements-dev.txt

أنشئ ملفات الـ stub لكود Python.

. ~/.cargo/env
cargo run --bin stubgen --features=pyo3

أخيرًا، ابنِ عجلات Python للتوزيع على الأجهزة المضيفة.

source ~/py312_qrmi_venv/bin/activate
CARGO_TARGET_DIR=./target/release/maturin maturin build --release

تُنشأ العجلة في مجلد ./target/release/maturin/wheels. يمكنك توزيعها وتثبيتها على أجهزتك المضيفة باستخدام pip install <wheel>.

التسجيل

تدعم QRMI log crate للتسجيل. يمكنك الاطلاع على سجلات تشغيل QRMI المفصّلة عبر تحديد متغير البيئة RUST_LOG بمستوى التسجيل المطلوب. المستويات المدعومة هي error وwarn وinfo وdebug وtrace، والمستوى الافتراضي هو warn.

إذا حددت trace، ستجد سجلات معاملات HTTP الأساسية.

RUST_LOG=trace <your QRMI executable>

مثال على السجلات:

[2025-08-16T03:47:38Z DEBUG request::connect] starting new connection: https://iam.cloud.ibm.com/
[2025-08-16T03:47:38Z DEBUG direct_access_api::middleware::auth] current token ...

بناء توثيق واجهة API

يمكن إنشاء توثيق Rust API بتشغيل:

. ~/.cargo/env
cargo doc --no-deps --open

يمكن إنشاء توثيق C API باستخدام doxygen:

doxygen Doxyfile

سيُنشئ هذا مستند HTML تحت مجلد ./html، يمكنك فتحه في متصفح الويب.

يُولَّد توثيق Python API باستخدام pydoc. بعد الدخول إلى البيئة الافتراضية التي ثبّت فيها حزمة QRMI، شغِّل الأوامر التالية:

python -m pydoc -p 8290
Server ready at http://localhost:8290/
Server commands: [b]rowser, [q]uit
server> b

ثم افتح الصفحة التالية في متصفحك:

http://localhost:8290/qrmi.html

أوقف الخادم بـ:

server> q