ضبط Qiskit SDK محليًا
بعد تثبيت Qiskit SDK وتشغيله، ثمة خطوات اختيارية يمكنك اتخاذها لتغيير السلوك الافتراضي لـ Qiskit.
ملف إعدادات المستخدم
المكان الرئيسي للإعدادات المحلية في Qiskit هو ملف إعدادات المستخدم. وهو ملف بتنسيق .ini يمكن استخدامه لتغيير الإعدادات الافتراضية لـ Qiskit.
مثال:
[default]
circuit_drawer = mpl
circuit_mpl_style = default
circuit_mpl_style_path = ~:~/.qiskit
state_drawer = hinton
transpile_optimization_level = 3
parallel = False
num_processes = 15
min_qpy_version = 14
بشكل افتراضي، يكون هذا الملف في ~/.qiskit/settings.conf، غير أنه يمكن تجاوز هذا المسار باستخدام متغير البيئة QISKIT_SETTINGS.
الخيارات المتاحة
-
circuit_drawer: يغيّر النظام الافتراضي لرسم الدائرة. يمكن ضبطه علىlatexأوmplأوtextأوlatex_source. عندما لا يتم ضبط وسيطة output صراحةً، يُستخدم نظام الرسم هذا. -
circuit_mpl_style: ورقة الأنماط الافتراضية المستخدمة لنظام إخراج mpl في رسم الدوائر. القيم الصالحة هيdefaultأوbw. -
circuit_mpl_style_path: المسارات التي يستخدمها رسم الدوائر للبحث عن أوراق أنماط JSON عند استخدام وضع إخراج mpl. -
state_drawer: يُستخدم هذا لتغيير النظام الافتراضي لطرق رسم تصور الحالة. القيم الصالحة هيreprأوtextأوlatexأوlatex_sourceأوqsphereأوhintonأوbloch. عندما لا يتم ضبط وسيطة output صراحةً على طريقة qiskit.quantum_info.DensityMatrix.draw، تُستخدم طريقة الإخراج المحددة. -
transpile_optimization_level: يغيّر مستوى التحسين الافتراضي لـ qiskit.compiler.transpile. حدد عددًا صحيحًا من 0 إلى 3. -
parallel: يحدد ما إذا كانت المعالجة المتعددة (multiprocessing) في Python مفعّلة للعمليات التي تدعم التشغيل المتوازي. على سبيل المثال، تحويل كائنات qiskit.circuit.QuantumCircuit متعددة. يمكن تجاوز هذا الإعداد بمتغير البيئةQISKIT_PARALLEL. حدد قيمة منطقية. -
num_processes: الحد الأقصى لعدد العمليات المتوازية التي يتم تشغيلها للعمليات المتوازية إذا كان التنفيذ المتوازي مفعّلًا. يمكن تجاوز هذا الإعداد بمتغير البيئةQISKIT_NUM_PROCS. حدد عددًا صحيحًا أكبر من0. -
min_qpy_version: سيرفض تحميل QPY الملفات التي تحمل إصداراً من QPY أدنى من الإصدار المحدد هنا. يمكن استخدام هذا الخيار لتقييد إصدارات QPY المسموح بها عند اكتشاف مشكلات أمنية في إلغاء تسلسل إصدارات QPY القديمة، مما يمنع تحميل أحمال ضارة محتملة.
- إعدادات رسم الدوائر تنطبق على qiskit.circuit.QuantumCircuit.draw وqiskit.visualization.circuit_drawer.
- طرق رسم تصور الحالة هي qiskit.quantum_info.Statevector.draw وqiskit.quantum_info.DensityMatrix.draw.
متغيرات البيئة
اضبط متغيرات البيئة هذه لتغيير السلوك الافتراضي لـ Qiskit:
-
QISKIT_PARALLEL: يفعّل معالجة Python المتوازية لتوازي عمليات معينة؛ على سبيل المثال، التحويل عبر دوائر متعددة في Qiskit. حدد قيمة منطقية. -
QISKIT_NUM_PROCS: الحد الأقصى لعدد العمليات المتوازية التي يتم تشغيلها إذا كان التنفيذ المتوازي مفعّلًا. حدد عددًا صحيحًا أكبر من الصفر. -
RAYON_NUM_THREADS: عدد الخيوط لتشغيل العمليات متعددة الخيوط في Qiskit. بشكل افتراضي، تُطلق الشيفرة متعددة الخيوط خيطًا لكل وحدة معالجة منطقية. لضبط عدد الخيوط التي يستخدمها Qiskit، اضبط هذا على قيمة عددية صحيحة. على سبيل المثال، ضبط RAYON_NUM_THREADS=4 يُطلق أربعة خيوط للدوال متعددة الخيوط. -
QISKIT_FORCE_THREADS: يحدد أن الشيفرة متعددة الخيوط يجب أن تُنفَّذ دائمًا في خيوط متعددة. بشكل افتراضي، إذا كنت تشغّل شيفرة متعددة الخيوط في قسم من Qiskit يعمل بالفعل في عمليات متوازية، فإن Qiskit لا يُشغّل خيوطًا متعددة بل يُنفّذ تلك الدالة بشكل تسلسلي. يُفعل ذلك تجنبًا للضغط المحتمل على موارد المعالج المحدودة. ومع ذلك، إذا أردت إجبار استخدام خيوط متعددة حتى في سياق متعدد العمليات، اضبطQISKIT_FORCE_THREADS=TRUE. -
QISKIT_SABRE_ALL_THREADS: يتحكم في سلوك مرحلة التخطيط والتوجيه في مدير التمريرات (pass manager) المعدّ مسبقًا في Qiskit. عند الضبط على1أوTRUE، يستخدم جميع وحدات المعالجة المتاحة لتشغيل تجارب عشوائية متعددة. يمكن أن يحسّن ذلك جودة النتائج، خاصةً للأنظمة التي تحتوي على أكثر من 20 وحدة معالجة/نواة؛ لكن المقابل هو أن النتائج لا تكون قابلة لإعادة الإنتاج عند تشغيلها على أجهزة محلية مختلفة.
الخطوات التالية
- جرّب أحد الدروس التعليمية، مثل خوارزمية Grover.
- شغّل برنامج Hello world.
- اقرأ إرشادات المساهمة إذا أردت المساهمة في Qiskit SDK مفتوح المصدر.