وسّعت IBM نقاط الدخول إلى Qiskit خارج Python، عبر إتاحة استخدامه من Fortran وC++ وJulia من خلال واجهة C موحدة تصل إلى النواة عالية الأداء المكتوبة بلغة Rust. وتقول الشركة إن هذا التصميم يسمح ببناء الدوائر الكمية وتشغيلها ضمن التطبيقات القائمة مباشرة، من دون تضمين مفسر Python أو نقل البيانات إلى كائنات Python.
تأتي الخطوة منذ Qiskit 2.0، الذي كشف واجهة C لنموذج البيانات الأساسي في حزمة التطوير. وبما أن روابط اللغات الثلاث تستخدم مكتبة Qiskit المشتركة نفسها، فإن الدوائر المنشأة في لغة يمكن تمريرها، من حيث المبدأ، إلى لغة أخرى مثل C++ وFortran مع الاحتفاظ بالكائن نفسه.
ثلاثة مسارات إلى Qiskit
بالنسبة إلى Fortran، توفر IBM واجهة qiskit-fortran لبناء الدوائر والتعامل معها، مستفيدة من آلية iso_c_binding القياسية لاستدعاء واجهة C. وتستخدم الدائرة نوعاً مشتقاً يحرر الذاكرة عند خروج المتغير من النطاق. كما يمكن تمرير بيانات مثل Hamiltonian من تطبيقات الكيمياء الكمية الموجودة أصلاً في ذاكرة Fortran إلى إجراءات بناء الدائرة مباشرة، من دون نسخها إلى Python أو إعادة تخصيصها.
أما qiskit-cpp، الذي أعلنت عنه IBM للمرة الأولى في العام السابق، فهو واجهة C++ تعمل من خلال ملفات ترويسة فقط. ويمكن ربط البرنامج بمكتبة Qiskit C، بينما تُدار ذاكرة كائن الدائرة تلقائياً عند خروجه من النطاق. وتذكر IBM إمكان إرسال الدوائر عبر عميل C الخاص بـ qiskit-ibm-runtime أو عبر QRMI وSQC.
وتقدم Qiskit.jl وQiskitIBMRuntime.jl مساراً تفاعلياً لمستخدمي Julia، بما في ذلك العمل داخل دفاتر Jupyter والوصول إلى عتاد IBM Quantum. وتخفي الحزمتان تفاصيل مؤشرات C، كما تتيحان إنشاء الدوائر وتشغيلها بأسلوب قريب من Qiskit في Python، مع مراعاة أن Julia تبدأ ترقيم الكيوبتات من 1 بينما تستخدم Python الترقيم من 0.
ما الذي يتغير عملياً؟
تستهدف الواجهات الجديدة الباحثين الذين تعتمد تطبيقاتهم العلمية على Fortran أو C++ أو Julia، خصوصاً في المحاكاة والفيزياء والكيمياء والهندسة والحوسبة عالية الأداء. فبدلاً من تشغيل Qiskit كعملية منفصلة أو استخدام Python لتنسيق كل خطوة، يمكن استدعاء الدائرة الكمية كإجراء مرتبط داخل التطبيق الكلاسيكي نفسه. ويشمل ذلك بناء الدائرة، وتحسينها لعتاد محدد، وإرسالها إلى العتاد، ثم معالجة النتائج.
توضح IBM هذا المسار عبر مثال في Julia لمحاكاة نموذج إيزينغ ذي المجال العرضي على نظام يصل إلى 100 كيوبت. يتضمن المثال تقريب تطور معادلة شرودنغر باستخدام Trotterization، ثم تحسين الدائرة وتشغيلها على العتاد واحتساب مغنطة المواقع. وتوضح النتائج المفاهيمية للمثال أن تقليل حجم خطوة Trotter يخفض خطأ التقريب لكنه يزيد عمق الدائرة، ما قد يؤدي في النهاية إلى ضوضاء عتادية أكبر من المكسب الناتج عن زيادة الدقة.
القيود والأسئلة المفتوحة
تؤكد IBM أن جميع الروابط غير الخاصة بـPython ما تزال قيد التطوير النشط، لذلك لا يعرض الإعلان واجهات مستقرة نهائية أو نتائج أداء مقارنة مفصلة. كما أن مثال 100 كيوبت لا يعني تجاوز القيود العملية للحوسبة الكمية؛ فمرجع المحاكاة الكلاسيكية بشبكات التنسور يصبح أقل موثوقية مع ازدياد التشابك، بينما تظل دقة التنفيذ مرتبطة بخطأ Trotter وضوضاء العتاد.
القيمة الأساسية هنا هي تقليل الاحتكاك البرمجي أمام دمج الموارد الكمية في أكواد HPC القائمة، لا تقديم قدرة كمية جديدة بحد ذاتها. وسيعتمد أثر الواجهات على نضج الحزم، وتكاملها مع بيئات البحث الحالية، وعلى قدرة العتاد الكمي على تقديم نتائج تتجاوز ما توفره البدائل الكلاسيكية.
كيف أعددنا هذا الخبر؟
اعتمد الخبر على المصدر الأصلي الموضح أعلاه. قد نستخدم أدوات آلية للمساعدة في الاستخراج والتصنيف والصياغة،
لكن النشر يخضع لقواعد تمنع المحتوى المكرر والقصير أو الروتيني منخفض القيمة.
اقرأ سياستنا التحريرية.