ضبط 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.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: عدد الخيوط (Threads) لتشغيل العمليات متعددة الخيوط في Qiskit. بشكل افتراضي، تُشغّل الشيفرة متعددة الخيوط خيطًا لكل وحدة معالجة منطقية. لضبط عدد الخيوط التي يستخدمها Qiskit، اضبط هذا المتغير على قيمة صحيحة. على سبيل المثال، يؤدي ضبطRAYON_NUM_THREADS=4إلى تشغيل أربعة خيوط للدوال متعددة الخيوط.QISKIT_FORCE_THREADS: يحدد أن الشيفرة متعددة الخيوط يجب أن تُنفَّذ دائمًا في خيوط متعددة. بشكل افتراضي، إذا كنت تشغّل شيفرة متعددة الخيوط في قسم من Qiskit يعمل بالفعل في عمليات متوازية، فإن Qiskit لا يُشغّل خيوطًا متعددة بل يُنفّذ تلك الدالة بشكل تسلسلي. يُفعل ذلك تجنبًا للضغط المحتمل على موارد المعالج المحدودة. ومع ذلك، إذا أردت إجبار استخدام خيوط متعددة حتى في سياق متعدد العمليات، اضبطQISKIT_FORCE_THREADS=TRUE.QISKIT_SABRE_ALL_THREADS: يتحكم في سلوك مرحلة التوزيع والتوجيه في مدير المسارات المعدّ مسبقًا في Qiskit. عند الضبط على1أوTRUE، يستخدم جميع وحدات المعالجة المتاحة لتشغيل تجارب عشوائية متعددة. يمكن أن يحسّن ذلك جودة النتائج، خاصةً للأنظمة التي تحتوي على أكثر من 20 وحدة معالجة/نواة؛ غير أن التنازل هو أن النتائج لا تكون قابلة للاستنساخ عند تشغيلها على أجهزة محلية مختلفة.
الخطوات التالية
توصيات
- جرّب أحد الدروس التعليمية، مثل خوارزمية Grover.
- شغّل برنامج Hello world.
- اقرأ إرشادات المساهمة إذا أردت المساهمة في Qiskit SDK مفتوح المصدر.