الدرس 3: متغيرات البيئة و LD_LIBRARY_PATH
متغيرات البيئة هي الطريقة التي يمرّر بها Linux إعدادات التهيئة إلى البرامج قيد التشغيل. لن يجد CUDA الملف libcuda.so بدون قيمة LD_LIBRARY_PATH الصحيحة، ويحدّد CUDA_VISIBLE_DEVICES أي وحدات GPU يراها كل برنامج — أداة جدولة حيوية لبيئات multi-GPU في NVIDIA. (مفهوم 'العملية' يُشرح بعمق في الدرس 5 — في
متغيرات البيئة تشبه لوحة رسائل خارج كل غرفة: يُعلّق الـ kernel هناك تعليمات مثل 'ابحث عن المكتبات في /usr/local/cuda/lib64' و 'استخدم فقط وحدتي GPU رقم 0 و 1'. كل عملية تقرأ اللوحة قبل أن تبدأ التشغيل.
- متغير بيئة
- زوج مفتاح-قيمة يمرّره الـ kernel إلى كل عملية. يمكن للعملية قراءة متغيرات البيئة وضبطها وتمريرها إلى عملياتها الأبناء.
- PATH
- متغير بيئة يحتوي على قائمة أدلة مفصولة بنقطتين رأسيتين. عندما تكتب أمرًا، يبحث الـ shell عن الملف الثنائي في كل دليل بالترتيب.
- LD_LIBRARY_PATH
- متغير يحدّد الأدلة للبحث عن المكتبات المشتركة (.so) في وقت التشغيل. يبحث الرابط الديناميكي (ld.so) في هذه الأدلة قبل /usr/lib.
- CUDA_VISIBLE_DEVICES
- متغير يحدّد أي بطاقات GPU تكون مرئية لعملية CUDA. يُخفي CUDA_VISIBLE_DEVICES=0,1 وحدتي GPU رقم 2,3 عن العملية — لا غنى عنه للجدولة في بيئات multi-GPU.
- export
- أمر bash يُعلّم متغيرًا كمتغير بيئة ليُمرَّر إلى العمليات الأبناء. بدون export، يكون المتغير مرئيًا لعملية الـ shell الحالية فقط.