برنامج GNU Parallel
برنامج GNU parallel هو أداة سطر أوامر لأنظمة لينكس وغيرها من أنظمة التشغيل الشبيهة بيونكس ، تُمكّن المستخدم من تنفيذ نصوص برمجية أو أوامر بشكل متوازٍ . GNU parallel برنامج مجاني ، كتبه أولي تانج بلغة بيرل ، وهو متاح بموجب شروط رخصة جنو العمومية الإصدار الثالث (GPLv3 ) . [ 2 ]
الاستخدام
الاستخدام الأكثر شيوعًا هو استبدال حلقة shell، على سبيل المثال
بينما تقرأ x ؛ نفّذ do_something " $x " done < list إلى شكل
بالتوازي do_something < قائمة listحيث يحتوي الملف على وسائط لـ do_somethingوحيث process_outputقد يكون فارغًا.
غالباً ما تكون البرامج النصية التي تستخدم التوازي أسهل في القراءة من البرامج النصية التي تستخدم pexec .
يتميز البرنامج أيضًا بميزات متوازية
- تجميع المخرجات القياسية والخطأ القياسي بحيث لا يتم تشغيل مخرجات المهام المتوازية معًا؛
- الحفاظ على ترتيب المخرجات ليبقى بنفس ترتيب المدخلات؛
- التعامل بشكل جيد مع أسماء الملفات التي تحتوي على أحرف خاصة مثل المسافة، وعلامة الاقتباس المفردة، وعلامة الاقتباس المزدوجة، وعلامة العطف (&)، والأحرف المشفرة بنظام UTF-8؛
بشكل افتراضي، يقوم النظام بتشغيل عدد من المهام بالتوازي يساوي عدد أنوية وحدة المعالجة المركزية .
أمثلة
ابحث عن . -name "*.foo" | parallel grep bar ما سبق هو المكافئ الموازي لما يلي:
ابحث عن . -name "*.foo" -exec grep bar {} + يبحث هذا الأمر في جميع الملفات الموجودة في المجلد الحالي ومجلداته الفرعية التي تنتهي أسماؤها .fooبـ . سيعمل الأمر المتوازي كما هو متوقع ما لم يحتوي اسم الملف على سطر جديد . لتجنب هذا القيد، يمكن استخدام:bar
ابحث عن . -name "*.foo" -print0 | parallel -0 grep bar يستخدم الأمر أعلاه الحرف الفارغ لفصل أسماء الملفات.
ابحث عن الملفات التي تبدأ بـ ".foo" | اعرضها بالتوازي ثم انقلها إلى / tmp/trash يتوسع الأمر المذكور أعلاه {}ليشمل أكبر عدد ممكن من الوسائط، حسب طول سطر الأوامر، ويوزعها بالتساوي بين العمليات المتوازية عند الحاجة. وهذا بدوره يقلل من الحمل الزائد على المعالج للأوامر قصيرة الأمد التي تستغرق وقتًا أقل في التنفيذ من وقت تشغيلها.
ابحث عن الملفات ذات العمق الأقصى 1 والنوع f والاسم "*.ogg" | انسخ الملفات بالتوازي باستخدام الخيارين -X -r و cp -v -p {} /home/media الأمر أعلاه يقوم بنفس وظيفة الأمر التالي:
cp -v -p *.ogg /home/media ومع ذلك، فإن الأمر السابق الذي يستخدم find/ parallel/ cpأكثر كفاءة في استخدام الموارد ولن يتوقف مع ظهور خطأ إذا كان توسيع *.ogg كبيرًا جدًا بالنسبة للصدفة.
انظر أيضاً
مراجع
- ↑ تانج، أولي (27 يونيو 2026). "تم إصدار GNU Parallel 20260622 ('التحقيق في عصابات الاغتصاب') [ مستقر ] " . parallel (قائمة بريدية).
- ^ “جنو الموازي” . GNU.org .
روابط خارجية
- برنامج مجاني مكتوب بلغة بيرل
- برنامج مشروع جنو
- برامج إدارة العمليات والمهام في نظام لينكس
- برامج سطر الأوامر
