ממשק לניהול משאבים קוונטיים (QRMI)
ממשק לניהול משאבים קוונטיים (QRMI) הוא ספרייה אגנוסטית לספקים עבור מערכות מחשוב בביצועים גבוהים (HPC) לגישה, שליטה וניטור של משאבי מחשוב קוונטיים. הוא משמש כשכבת middleware דקה המפשטת את המורכבות הכרוכה בשליטה על משאבים קוונטיים דרך קבוצת API פשוטה. ממשק זה, הכתוב ב-Rust, חושף גם Python API ו-C API לקלות השילוב בכמעט כל סביבת מחשוב.
את קוד המקור לבנייה ולפריסה של QRMI תמצא במאגר GitHub הזה.
כלי שורת פקודה אופציונלי בשם task_runner לביצוע עומסי עבודה קוונטיים מול חומרה קוונטית כלול בחבילת ה-Python. תמצא את התיעוד המלא במאגר GitHub.
בנייה של ספריות QRMI
חלק זה מראה כיצד לבנות את QRMI עבור C ו-Python.
דרישות
QRMI תומך במערכות ההפעלה הבאות:
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(חבילות RPM make/cmake עבור OS תואמי RHEL)openssl(חבילת RPM openssl-devel עבור OS תואמי RHEL)zlib(חבילת RPM zlib-devel עבור OS תואמי RHEL)- Python 3.11, 3.12, או 3.13 (עבור Python API)
- ספריות וקובצי header הנדרשים לפיתוח Python (חבילת RPM python3.1x-devel עבור OS תואמי RHEL):
- /usr/include/python3.1x
- /usr/lib64/libpython3.1x.so
- ספריות וקובצי header הנדרשים לפיתוח Python (חבילת RPM python3.1x-devel עבור OS תואמי RHEL):
- Doxygen (ליצירת תיעוד C API), בהתאם למערכת ההפעלה:
dnf install doxygenעבור Linux (RHEL/CentOS/Rocky Linux ואחרים)apt install doxygenעבור Linux (Ubuntu ואחרים)brew install doxygenעבור MacOS
סביבת זמן ריצה
- gcc (חבילת RPM libgcc עבור OS תואמי RHEL)
- openssl (חבילת RPM openssl-libs עבור OS תואמי RHEL)
- zlib (חבילת RPM zlib עבור OS תואמי RHEL)
- Python 3.11, 3.12, או 3.13 (עבור Python API)
- ספריות וקובצי header הנדרשים לפיתוח Python (חבילת RPM python3.1x-devel עבור OS תואמי 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>.
רישום (Logging)
QRMI תומך ב-log crate לרישום. תוכל למצוא לוגי זמן ריצה מפורטים של QRMI על ידי ציון משתנה הסביבה RUST_LOG עם רמת הלוג. הרמות הנתמכות הן error, warn, info, debug, ו-trace. רמת ברירת המחדל היא warn.
אם תציין trace, תוכל למצוא לוגי HTTP transaction בסיסיים.
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