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

ضبط 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

بشكل افتراضي، يكون هذا الملف في ~/.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: يحدد ما إذا كان معالجة Python المتوازية مفعّلة للعمليات التي تدعم التشغيل المتوازي. على سبيل المثال، تحويل كائنات qiskit.circuit.QuantumCircuit متعددة. يمكن تجاوز هذا الإعداد بمتغير البيئة QISKIT_PARALLEL. حدد قيمة منطقية.
  • num_processes: الحد الأقصى لعدد العمليات المتوازية التي يتم تشغيلها للعمليات المتوازية إذا كان التنفيذ المتوازي مفعّلًا. يمكن تجاوز هذا الإعداد بمتغير البيئة QISKIT_NUM_PROCS. حدد عددًا صحيحًا أكبر من 0.
ملاحظة

متغيرات البيئة

اضبط متغيرات البيئة هذه لتغيير السلوك الافتراضي لـ Qiskit:

  • QISKIT_PARALLEL: يفعّل معالجة Python المتوازية لتوازي عمليات معينة؛ على سبيل المثال، التحويل عبر دوائر متعددة في Qiskit. حدد قيمة منطقية.
  • QISKIT_NUM_PROCS: الحد الأقصى لعدد العمليات المتوازية التي يتم تشغيلها إذا كان التنفيذ المتوازي مفعّلًا. حدد عددًا صحيحًا أكبر من الصفر.
  • RAYON_NUM_THREADS: عدد الخيوط (Threads) لتشغيل العمليات متعددة الخيوط في Qiskit. بشكل افتراضي، تُشغّل الشيفرة متعددة الخيوط خيطًا لكل وحدة معالجة منطقية. لضبط عدد الخيوط التي يستخدمها Qiskit، اضبط هذا المتغير على قيمة صحيحة. على سبيل المثال، يؤدي ضبط RAYON_NUM_THREADS=4 إلى تشغيل أربعة خيوط للدوال متعددة الخيوط.
  • QISKIT_FORCE_THREADS: يحدد أن الشيفرة متعددة الخيوط يجب أن تُنفَّذ دائمًا في خيوط متعددة. بشكل افتراضي، إذا كنت تشغّل شيفرة متعددة الخيوط في قسم من Qiskit يعمل بالفعل في عمليات متوازية، فإن Qiskit لا يُشغّل خيوطًا متعددة بل يُنفّذ تلك الدالة بشكل تسلسلي. يُفعل ذلك تجنبًا للضغط المحتمل على موارد المعالج المحدودة. ومع ذلك، إذا أردت إجبار استخدام خيوط متعددة حتى في سياق متعدد العمليات، اضبط QISKIT_FORCE_THREADS=TRUE.
  • QISKIT_SABRE_ALL_THREADS: يتحكم في سلوك مرحلة التوزيع والتوجيه في مدير المسارات المعدّ مسبقًا في Qiskit. عند الضبط على 1 أو TRUE، يستخدم جميع وحدات المعالجة المتاحة لتشغيل تجارب عشوائية متعددة. يمكن أن يحسّن ذلك جودة النتائج، خاصةً للأنظمة التي تحتوي على أكثر من 20 وحدة معالجة/نواة؛ غير أن التنازل هو أن النتائج لا تكون قابلة للاستنساخ عند تشغيلها على أجهزة محلية مختلفة.

الخطوات التالية

توصيات