هذا هو الأمر الموازي الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
متوازي - بناء وتنفيذ أسطر أوامر shell من الإدخال القياسي بالتوازي
موجز
موازى [والخيارات] [أمر [وسيطات]] <list_of_arguments
موازى [والخيارات] [أمر [الحجج]] ( ::: الحجج | :::: argfile (ق)) ...
موازى --semaphore [خيارات] أمر
#! / usr / bin / المتوازي --shebang [خيارات] [أمر [الحجج]]
الوصف
جنو موازى هي أداة شل لتنفيذ المهام بالتوازي باستخدام جهاز كمبيوتر واحد أو أكثر. أ
يمكن أن تكون الوظيفة أمرًا واحدًا أو نصًا صغيرًا يجب تشغيله لكل سطر من السطور الموجودة في
المدخل. الإدخال النموذجي هو قائمة الملفات ، قائمة المضيفين ، قائمة المستخدمين ، قائمة
من عناوين URL ، أو قائمة الجداول. يمكن أن تكون الوظيفة أيضًا أمرًا يقرأ من أنبوب. جنو
موازى يمكن بعد ذلك تقسيم الإدخال إلى كتل ووضع كتلة في كل أمر في
موازى.
إذا استخدمت xargs و tee اليوم ستجد جنو موازى من السهل جدًا استخدام GNU موازى
مكتوب ليكون له نفس الخيارات مثل xargs. إذا كتبت حلقات في shell ، فستجد
جنو موازى قد تكون قادرة على استبدال معظم الحلقات وجعلها تعمل بشكل أسرع عن طريق التشغيل
عدة وظائف بالتوازي.
جنو موازى يتأكد من أن الإخراج من الأوامر هو نفس الإخراج الذي ستحصل عليه
تقوم بتشغيل الأوامر بالتتابع. هذا يجعل من الممكن استخدام الإخراج من جنو موازى
كمدخلات لبرامج أخرى.
لكل سطر من المدخلات جنو موازى سوف ينفذ أمر مع الخط والحجج. إذا كان الجواب لا
أمر يتم تنفيذ سطر الإدخال. سيتم تشغيل عدة خطوط بالتوازي.
جنو موازى يمكن استخدامها في كثير من الأحيان كبديل ل com.xargs or قط | سحق.
القارئ توجيه
ابدأ بمشاهدة مقاطع الفيديو التمهيدية للحصول على مقدمة سريعة:
http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
بعد ذلك ننظر في مثالبعد قائمة OPTIONS. سيعطيك ذلك فكرة عما
جنو موازى قادر على.
ثم اقض ساعة في المشي خلال البرنامج التعليمي (رجل متوازي_التعليمي). سطر الأوامر الخاص بك
سوف أحبك لذلك.
أخيرًا ، قد ترغب في إلقاء نظرة على بقية هذا الدليل إذا لم تكن لديك احتياجات خاصة
مغطاة بالفعل.
OPTIONS
أمر أمر للتنفيذ. لو أمر أو الحجج التالية تحتوي على الاستبدال
سلاسل (مثل {}) سيتم استبدال كل مثيل بالمدخل.
If أمر مُعطى ، جنو موازى حل نفس المهام مثل com.xargs. إذا أمر is
لم تعط جنو موازى سوف تتصرف على غرار قط | sh.
إنّ أمر يجب أن يكون ملفًا تنفيذيًا أو برنامجًا نصيًا أو أمرًا مؤلفًا أو وظيفة.
إذا كانت وظيفة Bash ، فأنت بحاجة إلى ذلك تصدير -f الوظيفة أولا. لاستخدام الأسماء المستعارة
انسخ البيئة الكاملة كما هو موضح أدناه --env واستخدامها env_parallel بدلًا من ذلك
of موازى.
إذا كانت دالة zsh ، فستحتاج إلى استخدام هذه الوظيفة المساعدة تصدير و إلى
تصدير وتعيين $ PARALLEL_SHELL على bash:
وظيفة exportf () {
تصدير $ (echo $ 1) = "حيث -f $ 1 | sed -e" s / $ 1 // "" "
}
وظيفة my_func () {
صدى $ 1 ؛
صدى "مرحبا" ؛
}
تصدير my_func
PARALLEL_SHELL =/ بن / باش متوازي "my_func {}" ::: 1 2
لا يمكن أن يحتوي الأمر على الحرف \ 257 (macron: X).
{} خط الإدخال. سيتم استبدال سلسلة الاستبدال هذه بقراءة سطر كامل من ملف
مصدر الإدخال. عادةً ما يكون مصدر الإدخال stdin (إدخال قياسي) ، ولكن يمكن أيضًا
تعطى مع -a, ::: أو ::::.
سلسلة الاستبدال {} يمكن تغييرها مع -I.
إذا كان سطر الأوامر لا يحتوي على سلاسل بديلة ، فحينئذٍ {} سيتم إلحاقه بـ
سطر الأوامر.
{.} خط الإدخال بدون تمديد. سيتم استبدال سلسلة الاستبدال هذه بـ
الإدخال مع التمديد إزالتها. إذا كان سطر الإدخال يحتوي على . بعد الاخير /
الاخير . حتى يتم إزالة نهاية السلسلة و {.} سوف يتم استبداله
مع الباقي. على سبيل المثال foo.jpg يصبح فو, subdir / foo.jpg يصبح subdir / فو,
sub.dir / foo.jpg يصبح sub.dir / فو, sub.dir / بار بقايا sub.dir / بار. إذا كان
لا يحتوي سطر الإدخال . سيبقى دون تغيير.
سلسلة الاستبدال {.} يمكن تغييرها مع - إ.
لفهم سلاسل الاستبدال انظر {}.
{/} الاسم الأساسي لخط الإدخال. سيتم استبدال سلسلة الاستبدال هذه بالإدخال
مع جزء الدليل إزالتها.
سلسلة الاستبدال {/} يمكن تغييرها مع --المكان.
لفهم سلاسل الاستبدال انظر {}.
و اسم خط الإدخال. سيتم استبدال سلسلة الاستبدال هذه بالدير الخاص بـ
خط الإدخال. يرى اسم(1).
سلسلة الاستبدال و يمكن تغييرها مع --ديرنام مكان.
لفهم سلاسل الاستبدال انظر {}.
{/.} الاسم الأساسي لخط الإدخال بدون تمديد. ستكون سلسلة الاستبدال هذه
استبداله بالمدخل مع إزالة الدليل وجزء الامتداد. إنها
مزيج من {/} {.}.
سلسلة الاستبدال {/.} يمكن تغييرها مع --basenameextensionreplace.
لفهم سلاسل الاستبدال انظر {}.
{#} (اختبار ألفا)
رقم التسلسل للمهمة المراد تشغيلها. سيتم استبدال سلسلة الاستبدال هذه بـ
الرقم التسلسلي للوظيفة التي يتم تشغيلها. يحتوي على نفس رقم
PARALLEL_SEQ دولار.
سلسلة الاستبدال {#} يمكن تغييرها مع --seqreplace.
لفهم سلاسل الاستبدال انظر {}.
{٪} (اختبار ألفا)
رقم فتحة العمل. سيتم استبدال سلسلة الاستبدال هذه بفتحة الوظيفة
العدد بين 1 وعدد الوظائف للتشغيل بالتوازي. لن يكون هناك 2
وظائف تعمل في نفس الوقت بنفس رقم خانة الوظيفة.
سلسلة الاستبدال {٪} يمكن تغييرها مع - slotreplace.
لفهم سلاسل الاستبدال انظر {}.
{n} حجة من مصدر الإدخال n أو ال nحجة. هذا الاستبدال الموضعي
سيتم استبدال السلسلة بإدخال من مصدر الإدخال n (عند استخدامها مع -a or
::::) أو مع nالحجة (عند استخدامها مع -N). إذا n هو سلبي يشير
إلى nالحجة الأخيرة.
لفهم سلاسل الاستبدال انظر {}.
{n.} حجة من مصدر الإدخال n أو ال nحجة دون تمديد. إنها
مزيج من {n} {.}.
سيتم استبدال سلسلة الاستبدال الموضعي هذه بالإدخال من الإدخال
مصدر n (عند استخدامها مع -a or ::::) أو مع nالحجة (عند استخدامها مع
-N). الإدخال سيتم إزالة الامتداد.
لفهم سلاسل الاستبدال الموضعي ، انظر {n}.
{n/} الاسم الأساسي للحجة من مصدر الإدخال n أو ال nحجة. إنها
مزيج من {n} {/}.
سيتم استبدال سلسلة الاستبدال الموضعي هذه بالإدخال من الإدخال
مصدر n (عند استخدامها مع -a or ::::) أو مع nالحجة (عند استخدامها مع
-N). سيتم إزالة الدليل (إن وجد) في الإدخال.
لفهم سلاسل الاستبدال الموضعي ، انظر {n}.
{n//} Dirname of الوسيطة من مصدر الإدخال n أو ال nحجة. إنها
مزيج من {n} و.
سيتم استبدال سلسلة الاستبدال الموضعي هذه بالدير للمدخل من
مصدر الإدخال n (عند استخدامها مع -a or ::::) أو مع nالحجة (عند استخدامها
مع -N). نرى اسم(1).
لفهم سلاسل الاستبدال الموضعي ، انظر {n}.
{n/.} الاسم الأساسي للحجة من مصدر الإدخال n أو ال nحجة دون تمديد.
إنه مزيج من {n}, {/}و {.}.
سيتم استبدال سلسلة الاستبدال الموضعي هذه بالإدخال من الإدخال
مصدر n (عند استخدامها مع -a or ::::) أو مع nالحجة (عند استخدامها مع
-N). المدخلات سيكون الدليل (إن وجد) والملحق إزالته.
لفهم سلاسل الاستبدال الموضعي ، انظر {n}.
{=بيرل التعبير=}
استبدل بـ محسوب بيرل التعبير. $_ سيحتوي على نفس {}. بعد
تقييم بيرل التعبير $_ سيتم استخدامها كقيمة. من المستحسن أن
غيّر فقط $ _ لكن لديك حق الوصول الكامل إلى كل جنو موازىداخلي
وظائف وهياكل البيانات.
إنّ {=بيرل التعبير=} يجب أن تُعطى كسلسلة واحدة.
شاهد أيضاً: --rpl - أقار
{=n بيرل التعبير=}
ما يعادل الموضع {= بيرل التعبير =}. لفهم الوضعية
سلاسل الاستبدال انظر {n}.
شاهد أيضاً: {= بيرل التعبير =} {n}.
::: الحجج
استخدم الوسائط من سطر الأوامر كمصدر إدخال بدلاً من stdin (standard
مدخل). على عكس الخيارات الأخرى لـ GNU موازى ::: يتم وضعه بعد أمر
قبل الحجج.
ما يلي متكافئ:
(echo file1؛ echo file2) | موازية gzip
متوازي gzip ::: file1 file2
متوازي gzip {} ::: file1 file2
متوازي --arg-sep ،، gzip {} ،، file1 file2
متوازي --arg-sep ،، gzip ،، file1 file2
متوازي ::: "gzip file1" "gzip file2"
لتجنب العلاج ::: كاستخدام خاص --arg- سبتمبر لتعيين فاصل الوسيطة إلى
شيء آخر. أنظر أيضا --arg- سبتمبر.
سيتم تمرير stdin (الإدخال القياسي) إلى أول عملية تشغيل.
إذا كانت متعددة ::: ، سيتم التعامل مع كل مجموعة على أنها مصدر إدخال ، وكلها
سيتم إنشاء مجموعات من مصادر الإدخال. على سبيل المثال ::: 1 2 ::: abc will
ينتج عنه التوليفات (1 ، أ) (1 ، ب) (1 ، ج) (2 ، أ) (2 ، ب) (2 ، ج). وهذا مفيد
لاستبدال الحلقات المتداخلة.
::: :::: يمكن أن تكون مختلطة. إذن هذه متكافئة:
صدى متوازي {1} {2} {3} ::: 6 7 ::: 4 5 ::: 1 2 3
صدى متوازي {1} {2} {3} :::: <(seq 6 7) <(seq 4 5) :::: <(seq 1 3)
متوازي -a <(seq 6 7) صدى {1} {2} {3} :::: <(seq 4 5) :::: <(seq 1 3)
متوازي -a <(seq 6 7) -a <(seq 4 5) echo {1} {2} {3} ::: 1 2 3
seq 6 7 | متوازي -a - -a <(seq 4 5) صدى {1} {2} {3} ::: 1 2 3
تسلسل 4 5 | صدى متوازي {1} {2} {3} :::: <(seq 6 7) - ::: 1 2 3
:::: أرجفيليس
طريقة أخرى للكتابة -a argfile1 -a argfile2
::: :::: يمكن أن تكون مختلطة.
يرى -a, ::: --xapply.
--باطل
-0 استخدم NUL كمحدد. عادةً ما تنتهي سطور الإدخال \ n (سطر جديد). إذا انتهوا
في \ 0 (NUL) ، ثم استخدم هذا الخيار. من المفيد معالجة الحجج التي قد
تحتوي على \ n (سطر جديد).
- ملف -arg ملف الإدخال
-a ملف الإدخال
استعمل ملف الإدخال كمصدر إدخال. إذا كنت تستخدم هذا الخيار ، فإن stdin (الإدخال القياسي) هو
تعطى لعملية التشغيل الأولى. خلاف ذلك ، يتم إعادة توجيه stdin (الإدخال القياسي)
من / dev / null.
إذا كانت متعددة -a كل واحد ملف الإدخال سيتم التعامل معها كمصدر إدخال ، و
سيتم إنشاء جميع مجموعات مصادر الإدخال. على سبيل المثال الملف فو يحتوي 1
2، الملف شريط يحتوي a b c. -a فو -a شريط سينتج عن التوليفات
(1 ، أ) (1 ، ب) (1 ، ج) (2 ، أ) (2 ، ب) (2 ، ج). هذا مفيد لاستبدال متداخل لـ-
حلقات.
انظر أيضا --xapply {n}.
--arg-ملف-sep سبتمبر شارع
استعمل سبتمبر شارع بدلا من :::: كسلسلة فاصلة بين الأمر والحجة
الملفات. مفيد إذا :::: يستخدم لشيء آخر بواسطة الأمر.
شاهد أيضاً: ::::.
--arg- سبتمبر سبتمبر شارع
استعمل سبتمبر شارع بدلا من ::: كسلسلة فاصلة. مفيد إذا ::: يستخدم في
شيء آخر بالأمر.
مفيد أيضًا إذا كنت تستخدم الأوامر ::: لكنك ما زلت تريد قراءة الحجج من
stdin (إدخال قياسي): ببساطة غيّر --arg- سبتمبر إلى سلسلة غير موجودة في
سطر الأوامر.
شاهد أيضاً: :::.
--حاجِز إظهار التقدم كشريط تقدم. يظهر في الشريط:٪ من المهام المكتملة ،
عدد الثواني المتبقية ، وعدد الوظائف التي بدأت.
متوافق مع سخاء:
seq 1000 | متوازي -j30 - بار '(صدى {} ؛ سكون 0.1)' 2>> (zenity - تقدم
- قتل تلقائي) | مرحاض
- ملف أساسي ملف
--بف ملف
ملف سيتم نقلها إلى كل sshlogin قبل بدء الوظائف. سيكون ذلك
إزالتها إذا --تنظيف نشط. قد يكون الملف برنامج نصي للتشغيل أو بعض الشائع
البيانات الأساسية اللازمة للوظائف. عديد --بف يمكن تحديدها لنقل المزيد
ملفات الأساس. ال ملف سيتم نقلها بنفس الطريقة مثل --نقل.
--المكان استبدال شارع
--bnr استبدال شارع
استخدم سلسلة الاستبدال استبدال شارع بدلا من {/} للاسم الأساسي لخط الإدخال.
--basenameextensionreplace استبدال شارع
- بنر استبدال شارع
استخدم سلسلة الاستبدال استبدال شارع بدلا من {/.} للاسم الأساسي لخط الإدخال
بدون تمديد.
--بج قم بتشغيل الأمر في الخلفية وبالتالي GNU موازى لن تنتظر الانتهاء من
الأمر قبل الخروج. هذا هو الافتراضي إذا - صور تم تعيينه.
شاهد أيضاً: --fg, رجل بدون.
يدل - صور.
--بيبتكس اطبع إدخال BibTeX الخاص بـ GNU موازى وتعطيل إشعار الاقتباس.
--منع المقاس
--مقاس الكتله المقاس
حجم الكتلة بالبايت. يمكن إصلاح الحجم لاحقًا بـ K ، M ، G ، T ، P ، k ، m ، g ، t ،
أو p الذي سيضاعف الحجم بـ 1024 ، 1048576 ، 1073741824 ، 1099511627776 ،
1125899906842624 أو 1000 أو 1000000 أو 1000000000 أو 1000000000000 أو 1000000000000000
على التوالي.
جنو موازى يحاول تلبية حجم الكتلة ولكن يمكن أن يكون بطول واحد
سِجِلّ. لأسباب تتعلق بالأداء المقاس يجب أن يكون أكبر من سجل واحد.
المقاس افتراضات إلى 1M.
يرى --يضخ لاستخدام هذا.
--قط قم بإنشاء ملف مؤقت بالمحتوى. عادة --يضخ سيعطي البيانات إلى
برنامج على stdin (الإدخال القياسي). مع --قط جنو موازى سيخلق
ملف مؤقت بالاسم {} ، لذا يمكنك القيام بما يلي: موازى --يضخ --قط wc {}.
انظر أيضا - خمسة.
--تنظيف
إزالة الملفات المنقولة. --تنظيف سيزيل الملفات المنقولة على
الكمبيوتر البعيد بعد الانتهاء من المعالجة.
ابحث عن السجل -name '* gz' | موازي \
--sshlogin server.example.com - نقل - رجوع {.}. bz2 \
--cleanup "zcat {} | bzip -9> {.}. bz2"
بدافع --نقل ستتم إزالة الملف الذي تم نقله إلى الكمبيوتر البعيد في
الكمبيوتر البعيد. لن تتم إزالة الدلائل التي تم إنشاؤها - حتى لو كانت كذلك
فارغة.
بدافع --إرجاع ستتم إزالة الملف المنقول من الكمبيوتر البعيد في
الكمبيوتر البعيد. لن تتم إزالة الدلائل التي تم إنشاؤها - حتى لو كانت كذلك
فارغة.
--تنظيف يتم تجاهله عند عدم استخدامه مع --نقل or --إرجاع.
- كولسب REGEXP
-C REGEXP
فاصل العمود. سيتم التعامل مع الإدخال كجدول به REGEXP فصل
الأعمدة. يمكن الوصول إلى العمود n باستخدام {n} or {n.}. على سبيل المثال 3 {} هو الثالث والعشرون
العمود.
- كولسب يدل --تقليم rl.
REGEXP هو تعبير عادي لـ Perl: http://perldoc.perl.org/perlre.html
--ضغط
ضغط الملفات المؤقتة. إذا كان الإخراج كبيرًا وقابلًا للضغط جدًا ، فستكون هذه الإرادة
تشغل مساحة أقل على القرص في $ TMPDIR وربما تكون أسرع بسبب قلة إدخال / إخراج القرص.
جنو موازى سأحاول lzop, بيجز, GZIP, pbzip2, بلزيب, bzip2, LZMA, com.lzip, xz in
هذا الترتيب ، واستخدم أول ما هو متاح.
- برنامج ضغط PRG
- برنامج فك الضغط PRG
استعمل PRG من أجل (إزالة) ضغط الملفات المؤقتة. يفترض أن PRG -تيار مستمر سوف
فك ضغط stdin (الإدخال القياسي) إلى stdout (الإخراج القياسي) ما لم يكن
- برنامج فك الضغط معطى.
--ctrlc يرسل SIGINT إلى المهام التي تعمل على أجهزة الكمبيوتر البعيدة وبالتالي قتلهم.
- محدد delim
-d delim يتم إنهاء عناصر الإدخال بالحرف المحدد. الاقتباسات والشرطة المائلة للخلف هي
غير خاص؛ يتم أخذ كل حرف في الإدخال حرفيًا. تعطيل النهاية-
سلسلة من الملف ، والتي يتم التعامل معها مثل أي وسيطة أخرى. يمكن استخدام هذا عندما
يتكون الإدخال ببساطة من عناصر مفصولة بأسطر جديدة ، على الرغم من أنها تكاد تكون
من الأفضل دائمًا تصميم برنامجك لاستخدامه - لا شيء حيثما كان ذلك ممكنًا. ال
المحدد المحدد قد يكون حرفًا واحدًا ، وهروب حرف من النمط C مثل
\ n ، أو رمز هروب ثماني أو سداسي عشري. رموز الهروب الثماني والسادس عشري
يتم فهمها كما هو الحال بالنسبة للأمر printf. الأحرف متعددة البايت ليست كذلك
أيد.
--ديرنام مكان استبدال شارع
--dnr استبدال شارع
استخدم سلسلة الاستبدال استبدال شارع بدلا من و لاسم سطر الإدخال.
-E eof- شارع
اضبط نهاية سلسلة الملف على eof-str. إذا حدثت نهاية سلسلة الملف كملف
في سطر الإدخال ، يتم تجاهل باقي المدخلات. إذا لم يكن كذلك -E ولا -e يستخدم ،
لا يتم استخدام نهاية سلسلة الملف.
--تأخير ثوان
تأخير بدء العمل التالي ثوان ثواني. جنو موازى سوف تتوقف ثوان بعد ثوان
بدء كل وظيفة. ثوان يمكن أن تكون أقل من ثانية واحدة.
--ركض جاف
اطبع المهمة للتشغيل على stdout (الإخراج القياسي) ، لكن لا تقم بتشغيل المهمة. يستخدم -v
-v لتضمين التفاف ssh / rsync إذا كان سيتم تشغيل المهمة على جهاز تحكم عن بعد
حاسوب. لا تعتمد على هذه المعنى الحرفي ، على الرغم من ذلك ، فقد تتم جدولة الوظيفة
كمبيوتر آخر أو كمبيوتر محلي إذا: كان في القائمة.
- هوف[=eof- شارع]
-e[eof- شارع]
هذا الخيار مرادف لـ -E اختيار. يستخدم -E بدلاً من ذلك ، لأنه POSIX
متوافق مع com.xargs بينما هذا الخيار ليس كذلك. لو eof- شارع تم حذفه ، لا يوجد
نهاية سلسلة الملف. إذا لم يكن كذلك -E ولا -e لا يتم استخدام نهاية سلسلة الملف.
--env فار (اختبار ألفا)
نسخ متغير البيئة فار. هذا سوف ينسخ فار على البيئة التي
يتم تشغيل الأمر فيه. هذا مفيد بشكل خاص للتنفيذ عن بعد.
في باش فار يمكن أن تكون أيضًا دالة Bash - فقط تذكر أن تصدير -f هيه
وظيفة ، انظر أمر.
المتغير "_" خاص. سيتم نسخ جميع متغيرات البيئة باستثناء
المذكورة في ~ / .parallel / ignored_vars.
لنسخ مصفوفات Bash ، تحتاج إلى وظيفة مستورد ، لأن مصفوفات Bash لا يمكن أن تكون كذلك
المصدرة:
import_array () {
func المحلي = 1 دولار ؛ يحول؛
تصدير $ func = '() {
"" $ (لـ arr in $ @ ؛ افعل
أعلن -p $ arr | sed '1s / procare -./&g/'
منتهي)"'
}'
}
أعلن -A assoc = '([one] = "1" [two] = "2")'
أعلن -a مفهرسة = '([0] = "one" [1] = "two")'
استيراد مساعد my_importer مفهرسة
موازية - env my_importer \
'my_importer؛ صدى "{}" "$ {indexed [{}]}" "$ {assoc [$ {indexed [{}]}]}" '::: "$ {! indexed [@]}"
لنسخ البيئة الكاملة ، استخدم هذه الوظيفة (على سبيل المثال بوضعها في bashrc.):
env_parallel () {
تصدير متوازي_bash_environment = '() {
'"$ (echo" shopt -s expand_aliases 2> / dev / null "؛ alias؛ typeet -p | grep -vFf <(للقراءة فقط ؛ echo GROUPS ؛ echo FUNCNAME ؛ echo DIRSTACK ؛ echo _ ؛ صدى PIPESTATUS ؛ صدى اسم المستخدم) | grep -v BASH_ ؛ typeet -f) ""
}'
# تشغيل كـ: env_parallel [خيارات موازية عادية]
`أي موازي`" $ @ "
unsetallel_bash_environment
}
# الاتصال باسم:
env_parallel [خيارات موازية عادية]
شاهد أيضاً: --سجل-إنف.
--يتا اعرض العدد المقدر للثواني قبل الانتهاء. هذا يفرض على جنو موازى
لقراءة جميع الوظائف قبل البدء في العثور على عدد الوظائف. جنو موازى
عادة يقرأ فقط المهمة التالية للتشغيل. يدل --تقدم.
--fg قم بتشغيل الأمر في المقدمة وبالتالي جنو موازى سوف تنتظر الانتهاء من
الأمر قبل الخروج.
انظر أيضا --بج, رجل بدون.
يدل - صور.
- خمسة إنشاء فيفو مؤقت مع المحتوى. عادة --يضخ سيعطي البيانات إلى
برنامج على stdin (الإدخال القياسي). مع - خمسة جنو موازى سيخلق
فيفو مؤقت بالاسم {} ، لذا يمكنك القيام بما يلي: موازى --يضخ - خمسة wc {}.
احذر: إذا لم تتم قراءة البيانات من FIFA ، فسيتم حظر الوظيفة إلى الأبد.
انظر أيضا --قط.
--تصفية المضيفين
إزالة أسفل المضيفين. لكل مضيف بعيد: تحقق من تسجيل الدخول من خلال أعمال ssh. لو
لا: لا تستخدم هذا المضيف.
يمكنك حاليا ليس وضع --تصفية المضيفين في ملف شخصي ، $ PARALLEL ،
/ etc /allel / config أو ما شابه ذلك. هذا بسبب جنو موازى يستخدم GNU موازى
لحساب هذا ، ستحصل على حلقة لا نهائية. من المحتمل أن يتم إصلاح هذا في ملف
الافراج عنه في وقت لاحق.
--gnu تصرف مثل جنو موازى. هذا الخيار كان له الأسبقية تاريخيا - تولليف.
إنّ - تولليف تم إيقاف الخيار الآن ، وبالتالي لا يجوز استخدامه. --gnu يتم الاحتفاظ بها
من أجل التوافق.
--مجموعة إخراج المجموعة. يتم تجميع الإخراج من كل مهمة معًا ولا تتم طباعته إلا عند
انتهى الأمر. stderr (الخطأ القياسي) أولاً متبوعًا بـ stdout
(الإخراج القياسي). هذا يستغرق بعض الوقت وحدة المعالجة المركزية. في حالات نادرة GNU موازى
يستغرق الكثير من وقت وحدة المعالجة المركزية وإذا كان من المقبول أن المخرجات من مختلفة
يتم خلط الأوامر معًا ، ثم تعطيل التجميع مع -u يمكن تسريع جنو
موازى بمعامل 10.
--مجموعة هو الافتراضي. يمكن عكسه باستخدام -u.
شاهد أيضاً: - الخط العازلة - المجموعة
--مساعدة
-h اطبع ملخصًا للخيارات إلى جنو موازى والخروج.
--هالت عند الخطأ فال
--وقف فال
كيف يجب على GNU موازى إنهاء إذا فشلت واحدة من أكثر من الوظائف؟
0 لا تتوقف إذا فشلت الوظيفة. ستكون حالة الخروج هي عدد الوظائف التي فشلت.
هذا هو الافتراضي.
1 لا تبدأ وظائف جديدة إذا فشلت الوظيفة ، ولكن أكمل المهام الجارية
بما في ذلك التنظيف. ستكون حالة الخروج هي حالة الخروج من الأخير
وظيفة فاشلة.
2 قم بإغلاق جميع الوظائف على الفور والخروج بدون تنظيف. حالة الخروج
ستكون حالة الخروج من الوظيفة الفاشلة.
1-99٪ إذا فال٪ من الوظائف تفشل والحد الأدنى 3: لا تبدأ وظائف جديدة ، ولكن
أكمل مهام التشغيل بما في ذلك التنظيف. ستكون حالة الخروج هي
حالة الخروج من آخر وظيفة فاشلة.
- رأس REGEXP
استخدم التعبير العادي كرأس. للاستخدام العادي ، يكون الرأس المتطابق (عادةً ما يكون الأول
على الانترنت: - رأس '.*\ن') باستخدام - كولسب (والذي سيكون افتراضيًا "\ t")
ويمكن استخدام أسماء الأعمدة كمتغيرات بديلة: {عمود اسم}.
في حالة --يضخ سيتم إضافة الرأس المتطابق إلى كل إخراج.
- رأس : هو اسم مستعار ل - رأس '.*\ن'.
If REGEXP هو رقم سيتطابق مع العديد من الأسطر.
-I استبدال شارع
استخدم سلسلة الاستبدال استبدال شارع بدلاً من {}.
--يحل محل[=استبدال شارع]
-i[استبدال شارع]
هذا الخيار مرادف ل -Iاستبدال شارع if استبدال شارع محدد ، و
-I{} خلاف ذلك. تم إهمال هذا الخيار ؛ يستخدم -I بدلا من ذلك.
- مدونة ملف تسجيل
ملف السجل للوظائف المنفذة. احفظ قائمة الوظائف المنفذة في ملف تسجيل في ال
بعد تنسيق TAB المنفصل: رقم التسلسل ، sshlogin ، وقت البدء بالثواني
منذ الحقبة ، وقت التشغيل بالثواني ، البايت في الملفات المنقولة ، البايت في الملفات
عاد ، وحالة الخروج ، والإشارة ، وتشغيل الأوامر.
لتحويل الأوقات إلى ISO-8601 صارم ، قم بما يلي:
بيرل -a -F "\ t" -نعم 'chomp ($ F [2] = `التاريخ -d \ @ $ F [2] +٪ FT٪ T`) ؛ طباعة انضم ("\ t"، @ F) "
انظر أيضا --سيرة ذاتية.
--وظائف N
-j N
- ماكس بروكس N
-P N عدد الوظائف. تشغيل ما يصل إلى وظائف N بالتوازي. 0 يعني أكبر عدد ممكن.
الافتراضي هو 100٪ والذي سيشغل وظيفة واحدة لكل نواة من وحدة المعالجة المركزية.
If - صور يتم تعيين الافتراضي هو 1 مما يجعل كائن المزامنة (mutex).
--وظائف +N
-j +N
- ماكس بروكس +N
-P +N أضف N إلى عدد أنوية وحدة المعالجة المركزية. قم بتشغيل هذه الوظائف العديدة بالتوازي. أنظر أيضا
--استخدم cpus بدلاً من النوى.
--وظائف -N
-j -N
- ماكس بروكس -N
-P -N اطرح N من عدد أنوية وحدة المعالجة المركزية. قم بتشغيل هذه الوظائف العديدة بالتوازي. إذا كان
الرقم الذي تم تقييمه أقل من 1 ثم سيتم استخدام 1. أنظر أيضا
--استخدم cpus بدلاً من النوى.
--وظائف N%
-j N%
- ماكس بروكس N%
-P N٪ ضرب N٪ مع عدد أنوية وحدة المعالجة المركزية. قم بتشغيل هذه الوظائف العديدة بالتوازي. يرى
أيضا --استخدم cpus بدلاً من النوى.
--وظائف com.procfile
-j com.procfile
- ماكس بروكس com.procfile
-P com.procfile
قراءة المعلمة من ملف. استخدم محتوى com.procfile كمعلمة ل -j. على سبيل المثال
com.procfile يمكن أن يحتوي على السلسلة 100٪ أو +2 أو 10. إذا com.procfile يتغير عندما أ
يكتمل العمل ، com.procfile تتم قراءتها مرة أخرى ويتم حساب العدد الجديد من الوظائف. لو
العدد أقل من ذي قبل ، سيسمح للمهام الجارية بالانتهاء لكنها جديدة
لن يتم بدء الوظائف حتى يتم الوصول إلى العدد المطلوب من الوظائف. هذا
يجعل من الممكن تغيير عدد مهام التشغيل المتزامنة أثناء GNU
موازى يجري.
- حفظ النظام
-k احتفظ بتسلسل المخرجات بنفس ترتيب الإدخال. عادة ناتج الوظيفة
ستتم طباعة بمجرد اكتمال الوظيفة. جرب هذا لترى الفرق:
موازٍ -j4 سكون {} \ ؛ صدى صوت {} ::: 2 1 4 3
موازٍ -j4 -k sleep {} \ ؛ صدى صوت {} ::: 2 1 4 3
إذا استخدمت مع --على العموم or - نونال سيتم تجميع الإخراج بواسطة sshlogin في الفرز
النظام.
-L ماكس الخطوط
عند استخدامها مع --يضخ: قراءة سجلات ماكس الخطوط.
عند استخدامها بخلاف ذلك: استخدم على الأكثر ماكس الخطوط أسطر إدخال غير فارغة لكل سطر أوامر.
تتسبب الفراغات الزائدة في استمرار سطر الإدخال بشكل منطقي في الإدخال التالي
الخط.
-L 0 يعني قراءة سطر واحد ، ولكن أدخل 0 وسيطات في سطر الأوامر.
يدل -X ما لم -m, --xargs أو --يضخ تم تعيينه.
- ماكس الخطوط[=ماكس الخطوط]
-l[ماكس الخطوط]
عند استخدامها مع --يضخ: قراءة سجلات ماكس الخطوط.
عند استخدامها بطريقة أخرى: مرادف لملف -L اختيار. على عكس -Lأطلقت حملة ماكس الخطوط
الحجة اختيارية. لو ماكس الخطوط لم يتم تحديده ، يتم تعيينه افتراضيًا على واحد. ال -l
تم إهماله منذ تحديد معيار POSIX -L بدلا من ذلك.
-l 0 هو اسم مستعار ل -l 1.
يدل -X ما لم -m, --xargs أو --يضخ تم تعيينه.
- الخط العازلة
خرج المخزن المؤقت على أساس الخط. --مجموعة سيحافظ على الناتج معًا ككل
وظيفة. - المجموعة يسمح للإخراج بالخلط مع نصف سطر قادم من وظيفة واحدة و
نصف سطر قادم من وظيفة أخرى. - الخط العازلة يناسب هذين: جنو
موازى سوف تطبع سطرًا كاملاً ، ولكنها ستسمح بمزج خطوط مختلفة
وظائف.
- الخط العازلة يستهلك طاقة وحدة المعالجة المركزية أكثر من كليهما --مجموعة - المجموعة، لكن يستطيع
تكون أسرع من --مجموعة إذا لم تكن وحدة المعالجة المركزية هي العامل المحدد.
شاهد أيضاً: --مجموعة - المجموعة
--حمل ماكس تحميل
لا تبدأ وظائف جديدة على جهاز كمبيوتر معين ما لم يكن عدد العمليات الجارية
على الكمبيوتر أقل من ماكس تحميل. ماكس تحميل يستخدم نفس بناء الجملة مثل --وظائف,
so 100% لواحد لكل وحدة المعالجة المركزية هو إعداد صالح. الفرق الوحيد هو 0 وهو
تفسر على أنها 0.01.
--مدير التحكم
-M استخدم ControlMaster الخاص بـ ssh لجعل اتصالات ssh أسرع. مفيد إذا كانت الوظائف تعمل عن بعد
وهي سريعة جدًا للتشغيل. تم تعطيل هذا ل sshlogins التي تحدد الخاصة بهم
الأمر ssh.
--xargs حجج متعددة. أدخل العديد من الوسائط بقدر ما يسمح به طول سطر الأوامر.
If {} لا يتم استخدام الوسائط سيتم إلحاقها بالسطر. لو {} ويستخدم
عدة مرات لكل منهما {} مع كل الحجج.
دعم لل --xargs مع --Sshlogin محدودة وقد تفشل.
انظر أيضا -X لاستبدال السياق. في حالة الشك في الاستخدام -X لأن ذلك على الأرجح سيفعل
ما هو مطلوب.
-m حجج متعددة. أدخل العديد من الوسائط بقدر ما يسمح به طول سطر الأوامر.
إذا تم تشغيل عدة وظائف بالتوازي: قم بتوزيع الحجج بالتساوي بين
الوظائف. يستخدم -j1 لتجنب هذا.
If {} لا يتم استخدام الوسائط سيتم إلحاقها بالسطر. لو {} ويستخدم
عدة مرات لكل منهما {} مع كل الحجج.
دعم لل -m مع --Sshlogin محدودة وقد تفشل.
انظر أيضا -X لاستبدال السياق. في حالة الشك في الاستخدام -X لأن ذلك على الأرجح سيفعل
ما هو مطلوب.
- المنفعة الإصدار
اطبع نسخة جنو موازى والخروج. إذا كان الإصدار الحالي من GNU موازى
أقل من الإصدار رمز الخروج هو 255. وإلا فسيكون 0.
هذا مفيد للنصوص التي تعتمد على الميزات المتوفرة فقط من بعض
نسخة من جنو موازى.
- نونال (اختبار بيتا)
--على العموم بدون حجج. قم بتشغيل الأمر على جميع أجهزة الكمبيوتر المعطاة بـ --Sshlogin
لكن لا تأخذ الحجج. جنو موازى سوف يسجل الدخول --وظائف عدد أجهزة الكمبيوتر في
بالتوازي وتشغيل الوظيفة على الكمبيوتر. -j يضبط عدد أجهزة الكمبيوتر لتسجيل الدخول
بالتوازي.
هذا مفيد لتشغيل نفس الأمر (مثل الجهوزية) على قائمة الخوادم.
--على العموم (اختبار بيتا)
قم بتشغيل جميع الوظائف على جميع أجهزة الكمبيوتر المقدمة مع --Sshlogin. جنو موازى سوف يسجل
إلى --وظائف عدد أجهزة الكمبيوتر على التوازي وتشغيل وظيفة واحدة في كل مرة على
حاسوب. لن يتم تغيير ترتيب الوظائف ، ولكن قد يتم تغيير بعض أجهزة الكمبيوتر
انتهي قبل الآخرين. -j يضبط عدد أجهزة الكمبيوتر لتسجيل الدخول بالتوازي.
عند استخدام --مجموعة سيتم تجميع الإخراج حسب كل خادم ، لذلك كل الإخراج
من خادم واحد سيتم تجميعها معًا.
- إخراج كملفات
- Outputasfiles
- ملفات بدلاً من طباعة الإخراج إلى stdout (الإخراج القياسي) إخراج كل مهمة
يتم حفظه في ملف ثم تتم طباعة اسم الملف.
--يضخ
- نشرستدين
نشر المدخلات على الوظائف على stdin (الإدخال القياسي). قراءة كتلة من البيانات من stdin
(إدخال قياسي) وإعطاء كتلة واحدة من البيانات كمدخل لوظيفة واحدة.
يتم تحديد حجم الكتلة بواسطة --منع. الخيوط - بداية --أعادة اقول
جنو موازى كيف يبدأ السجل و / أو ينتهي. قراءة الكتلة سيكون لها النهائي
تمت إزالة السجل الجزئي قبل نقل الكتلة إلى الوظيفة. الجزئي
سيتم إضافة السجل إلى الكتلة التالية.
If - بداية سيتم استخدام هذا للتقسيم عند بداية التسجيل.
If --أعادة سيتم استخدام هذا للتقسيم في نهاية السجل.
إذا كان كل من - بداية --أعادة كلاهما يجب أن يتطابق للعثور على انقسام
.
إذا لم يكن أي منهما - بداية ولا --أعادة أعطي --أعادة افتراضات إلى '\ n'. امتلاك
لا يوجد استخدام فاصل سجل --أعادة "".
- ملفات كثيرا ما تستخدم مع --يضخ.
شاهد أيضاً: - بداية, --أعادة, - خمسة, --قط, --pipepart.
--pipepart (اختبار بيتا)
أجزاء الأنابيب من ملف مادي. --pipepart يعمل على غرار --يضخولكن كثير
أسرع. لها بعض القيود:
* يجب أن يكون الملف ملفًا فعليًا (يمكن البحث عنه) ويجب تقديمه باستخدام -a or
::::.
* سجل العد (-N) وعد الأسطر (-L/-l) لا تعمل.
--سهل تجاهل أي --الملف الشخصيو $ PARALLEL و ~ /. Parallel / config للحصول على تحكم كامل
سطر الأوامر (المستخدم من قبل GNU موازى داخليًا عند الاتصال بـ --Sshlogin).
--زائد تنشيط سلاسل الاستبدال الإضافية: {+ /} {+.} {+ ..} {+ ...} {..} {...} {/ ..}
{/ ...}. الفكرة هي أن "{+ foo}" يطابق عكس "{foo}" و {} =
{+ /} / {/} = {.}. {+.} = {+ /} / {/.}. {+.} = {..}. {+ ..} = {+ /} / {/ ..}. {+ ..} =
{...}. {+ ...} = {+ /} / {/ ...}. {+ ...}
--تقدم
إظهار تقدم الحسابات. ضع قائمة بأجهزة الكمبيوتر المشاركة في المهمة باستخدام
تم اكتشاف عدد نوى وحدة المعالجة المركزية والحد الأقصى لعدد المهام المراد تشغيلها. بعد ذلك العرض
التقدم لكل كمبيوتر: عدد الوظائف قيد التشغيل ، وعدد المهام المكتملة ، و
النسبة المئوية لجميع المهام التي أنجزها هذا الكمبيوتر. ستكون النسبة فقط
متاح بعد أن تمت جدولة جميع الوظائف كـ GNU موازى اقرأ فقط التالي
المهمة عندما تكون جاهزًا لجدولتها - وذلك لتجنب إضاعة الوقت والذاكرة
قراءة كل شيء عند بدء التشغيل.
بإرسال GNU موازى SIGUSR2 يمكنك التبديل بين تشغيل / إيقاف --تقدم على
تشغيل GNU موازى .
انظر أيضا --يتا.
--ماكس أرجس=ماكس أرجس
-n ماكس أرجس
استخدم على الأكثر ماكس أرجس الحجج لكل سطر أوامر. اقل من ماكس أرجس الحجج
سيتم استخدامها إذا كان الحجم (انظر -s الخيار) ، ما لم يتم تجاوز -x الخيار
معطى ، في هذه الحالة غنو موازى سيخرج.
-n 0 يعني قراءة وسيطة واحدة ، ولكن أدخل 0 وسيطات في سطر الأوامر.
يدل -X ما لم -m تم تعيينه.
- ماكس استبدال أرجس=ماكس أرجس
-N ماكس أرجس
استخدم على الأكثر ماكس أرجس الحجج لكل سطر أوامر. يحب -n ولكن أيضا يجعل
سلاسل الاستبدال 1 {} .. {ماكس أرجس} التي تمثل الحجة 1 .. ماكس أرجس. إذا
عدد قليل جدا من args {n} ستكون فارغة.
-N 0 يعني قراءة وسيطة واحدة ، ولكن أدخل 0 وسيطات في سطر الأوامر.
سيؤدي هذا إلى تعيين مالك homedir للمستخدم:
tr ":" '\ن' < / الخ / باسود | موازى -N7 CHOWN 1 {} 6 {}
يدل -X ما لم -m or --يضخ تم تعيينه.
عند استخدامها مع --يضخ -N هو عدد السجلات المطلوب قراءتها. هذا إلى حد ما
ابطأ من --منع.
- الحد الأقصى لطول الخط المسموح به
اطبع العدد الأقصى من الأحرف المسموح به في سطر الأوامر واخرج (مستخدم
بواسطة GNU موازى نفسها لتحديد طول الخط على أجهزة الكمبيوتر البعيدة).
--عدد وحدات المعالجة المركزية
اطبع عدد وحدات المعالجة المركزية الفعلية واخرج (يستخدمها جنو موازى نفسها ل
تحديد عدد وحدات المعالجة المركزية الفعلية على أجهزة الكمبيوتر البعيدة).
--عدد النوى
اطبع عدد أنوية CPU واخرج (يستخدمها GNU موازى نفسها لتحديد
عدد نوى وحدة المعالجة المركزية على أجهزة الكمبيوتر البعيدة).
--لا إشعار
لا تعرض إشعار الاقتباس. تتم طباعة إشعار الاقتباس على stderr (قياسي
خطأ) فقط إذا كان stderr (خطأ معياري) محطة ، لم يحدد المستخدم
--لا إشعار، ولم يقم المستخدم بتشغيل --بيبتكس ذات مرة.
--لطيف - جيد اللطف
قم بتشغيل الأمر بهذا اللطف. لأوامر بسيطة يمكنك فقط إضافة رحلة جميلة in
أمام الأمر. ولكن إذا كان الأمر يتكون من المزيد من الأوامر الفرعية (مثل:
ls | wc) ثم مُسبقًا رحلة جميلة لن تعمل دائما. --لطيف - جيد سوف تتأكد من جميع الفرعية
الأوامر لطيفة.
- تفاعلي
-p مطالبة المستخدم بتشغيل كل سطر أوامر وقراءة سطر من ملف
صالة. قم بتشغيل سطر الأوامر فقط إذا كانت الاستجابة تبدأ بـ "y" أو "Y".
يدل -t.
- أقار الأوتار
تُستخدم لتعريف قوس البداية والنهاية لـ {= بيرل التعبير =}. اليسار و
يمكن أن يتألف القوس الأيمن من عدة أحرف ويفترض أنهما متماثلان
طول. الافتراضي هو {==} إعطاء {= كأقواس البداية و =} كالنهاية
أقواس.
إعداد مفيد آخر هو ،،،، مما يجعل كلا القوسين ,,:
متوازي - أقواس ،،،، echo foo هو ، s / I / O / g ، ::: FII
شاهد أيضاً: --rpl {= بيرل التعبير =}
--الملف الشخصي اسم الشخصية
-J اسم الشخصية
استخدام الملف الشخصي اسم الشخصية للخيارات. هذا مفيد إذا كنت تريد أن يكون لديك عدة
مظهر. يمكن أن يكون لديك ملف تعريف واحد لتشغيل الوظائف بالتوازي على المستوى المحلي
الكمبيوتر وملف تعريف مختلف لتشغيل المهام على أجهزة الكمبيوتر البعيدة. انظر
قسم ملفات التعريف للحصول على أمثلة.
اسم الشخصية يتوافق مع الملف ~ /. Parallel /اسم الشخصية.
يمكنك إعطاء ملفات تعريف متعددة عن طريق التكرار --الملف الشخصي. إذا كانت أجزاء من التشكيلات
الصراع ، سيتم استخدام اللاحقة.
الافتراضي: config
--اقتبس
-q اقتبس أمر. سيؤدي هذا إلى اقتباس سطر الأوامر حتى لا تكون الأحرف الخاصة
فسرها القذيفة. انظر قسم الاقتباس. لن يحتاج معظم الناس أبدًا
هذا. الاقتباس معطل بشكل افتراضي.
--لا تشغيل - إذا - فارغة
-r إذا كان stdin (الإدخال القياسي) يحتوي فقط على مسافة بيضاء ، فلا تقم بتشغيل الأمر.
إذا استخدمت مع --يضخ هذا بطيء.
- noswap لا تبدأ وظائف جديدة على جهاز كمبيوتر معين إذا كان هناك تبادل ومبادلة
النشاط.
يتم أخذ عينات من نشاط المقايضة كل 10 ثوانٍ فقط حيث تستغرق العينة ثانية واحدة
للقيام به.
يتم احتساب نشاط المبادلة على أنه (swap-in) * (swap-out) وهو أمر جيد من الناحية العملية
القيمة: التبادل ليس مشكلة ، والتبديل ليس مشكلة ، ولكن كلاهما
عادة ما يشير التبديل إلى الداخل والخارج إلى وجود مشكلة.
--سجل-إنف
سجل متغيرات البيئة الحالية في ~ / .parallel / ignored_vars. وهذا مفيد
قبل استخدام --env _.
انظر أيضا --env.
- بداية بداية
--أعادة نهاية
If - بداية معطى بداية سيتم استخدامها للتقسيم عند بدء التسجيل.
If --أعادة معطى نهاية سيتم استخدامه للتقسيم في نهاية السجل.
إذا كان كل من - بداية --أعادة يتم إعطاء السلسلة المدمجة
endstringstartstring يجب أن تتطابق للعثور على موضع مقسم. وهذا مفيد
أي كان بداية or نهاية تطابق في منتصف السجل.
إذا لم يكن أي منهما - بداية ولا --أعادة بعد ذلك --أعادة افتراضات إلى '\ n'. ل
ليس لها استخدام فاصل سجل --أعادة "".
- بداية --أعادة يتم استخدامها مع --يضخ.
استعمل --regexp للتفسير - بداية --أعادة كتعبيرات عادية. هذا هو
بطيء ، مع ذلك.
--regexp استعمل --regexp للتفسير - بداية --أعادة كتعبيرات عادية. هذا هو
بطيء ، مع ذلك.
- حذف-rec-sep
- إزالة
--rrs قم بإزالة النص المطابق بـ - بداية --أعادة قبل توصيله إلى
أمر.
تستخدم فقط مع --يضخ.
--نتائج بادئة
- رس بادئة
احفظ الإخراج في الملفات. سيتم تخزين الملفات في شجرة دليل متجذرة
at بادئة. ضمن شجرة الدليل هذه ، سينتج عن كل أمر ملفين:
بادئة/ / stdout و بادئة/ / stderr ، أين هو تسلسل
الدلائل التي تمثل رأس مصدر الإدخال (في حالة استخدام - رأس :) أو
عدد مصدر الإدخال والقيم المقابلة.
على سبيل المثال:
متوازي --header: --results foo echo {a} {b} ::: a I II ::: b III IIII
سوف تولد الملفات:
foo / a / I / b / III / stderr
foo / a / I / b / III / stdout
foo / a / I / b / IIII / stderr
foo / a / I / b / IIII / stdout
foo / a / II / b / III / stderr
foo / a / II / b / III / stdout
foo / a / II / b / IIII / stderr
foo / a / II / b / IIII / stdout
متوازي - نتائج صدى صوتي {1} {2} ::: I II ::: III IIII
سوف تولد الملفات:
foo / 1 / I / 2 / III / stderr
foo / 1 / I / 2 / III / stdout
foo / 1 / I / 2 / IIII / stderr
foo / 1 / I / 2 / IIII / stdout
foo / 1 / II / 2 / III / stderr
foo / 1 / II / 2 / III / stdout
foo / 1 / II / 2 / IIII / stderr
foo / 1 / II / 2 / IIII / stdout
انظر أيضا - ملفات, - رأس, - مدونة.
--سيرة ذاتية يستأنف من آخر وظيفة غير منتهية. بالقراءة - مدونة أو ال --نتائج دير
جنو موازى سيحدد آخر وظيفة غير منتهية ويستمر من هناك. مثل
جنو موازى ينظر فقط إلى الأرقام التسلسلية في - مدونة ثم المدخلات
الأمر و - مدونة يجب أن تظل جميعها دون تغيير ؛ بخلاف ذلك جنو موازى قد
قم بتشغيل أوامر خاطئة.
انظر أيضا - مدونة, --نتائج, - فشل استئناف.
- فشل استئناف
إعادة المحاولة كلها فشلت واستأنف من آخر وظيفة غير منتهية. بالقراءة - مدونة جنو
موازى سيكتشف الوظائف الفاشلة وتشغيلها مرة أخرى. بعد ذلك سوف
استئناف آخر وظيفة غير منتهية والاستمرار من هناك. مثل GNU موازى ينظر فقط إلى
أرقام التسلسل في - مدونة ثم الإدخال والأمر و - مدونة الكل
يجب أن تبقى دون تغيير ؛ بخلاف ذلك جنو موازى قد تشغل أوامر خاطئة.
انظر أيضا - مدونة, --سيرة ذاتية.
- ريتريت n
إذا فشلت إحدى المهام ، فأعد المحاولة على كمبيوتر آخر لم تفشل عليه. افعل هذا
n مرات. إذا كان هناك أقل من n أجهزة الكمبيوتر في --Sshlogin جنو موازى سوف يعيد-
استخدام جميع أجهزة الكمبيوتر. هذا مفيد إذا فشلت بعض الوظائف دون سبب واضح
(مثل فشل الشبكة).
--إرجاع اسم الملف
نقل الملفات من أجهزة الكمبيوتر البعيدة. --إرجاع يستخدم مع --Sshlogin عندما
الوسائط هي ملفات موجودة على أجهزة الكمبيوتر البعيدة. عندما تتم معالجة الملف
اسم الملف سيتم نقلها من الكمبيوتر البعيد باستخدام رسينك وسيتم طرحه
نسبة إلى مسار تسجيل الدخول الافتراضي. على سبيل المثال
echo foo / bar.txt | موازي \
--sshlogin server.example.com - رجوع {.}. خارج اللمس {.}. out
سيؤدي ذلك إلى نقل الملف $ HOME / foo / bar.out من الكمبيوتر
server.example.com إلى الملف foo / bar.out بعد تشغيل تواصل foo / bar.out on
server.example.com.
صدى /tmp/foo/bar.txt | موازي \
--sshlogin server.example.com - رجوع {.}. خارج اللمس {.}. out
سيؤدي ذلك إلى نقل الملف /tmp/foo/bar.out من الكمبيوتر server.example.com
إلى الملف /tmp/foo/bar.out بعد تشغيل تواصل /tmp/foo/bar.out on
server.example.com.
يمكن نقل ملفات متعددة بتكرار الخيارات عدة مرات:
صدى /tmp/foo/bar.txt | \
متوازي - sshlogin server.example.com \
- إرجاع {.}. إخراج - إرجاع {.}. إخراج 2 المس {.}. إخراج {.}. out2
--إرجاع كثيرا ما تستخدم مع --نقل --تنظيف.
--إرجاع يتم تجاهله عند استخدامه مع --Sshlogin : أو عندما لا تستخدم مع --Sshlogin.
- جولة روبن
--مستدير عادة --يضخ سيعطي كتلة واحدة لكل مثيل للأمر. مع
- جولة روبن سيتم كتابة جميع الكتل بشكل عشوائي إلى الأوامر قيد التشغيل بالفعل.
يكون هذا مفيدًا إذا استغرق الأمر وقتًا طويلاً للتهيئة.
- حفظ النظام لن تعمل مع - جولة روبن لأنه من المستحيل تتبع أي
كتلة الإدخال تتوافق مع الإخراج.
--rpl 'بطاقة بيرل التعبير'
استعمل بطاقة كسلسلة بديلة لـ بيرل التعبير. وهذا يجعل من الممكن
تحديد سلاسل الاستبدال الخاصة بك. جنو موازىسلاسل الاستبدال السبعة هي
تم تنفيذه على النحو التالي:
--rpl "{}"
--rpl '{#} 1 $ _ = $ job-> seq ()'
--rpl '{٪} 1 $ _ = $ job-> slot ()'
--rpl '{/} s:. * / ::'
--rpl '{//} $ Global :: use {"File :: Basename"} || = EVAL "استخدم File :: Basename؛ 1؛"؛ $ _ = dirname ($ _) ؛ '
--rpl '{/.} س:.*/::؛ s: \. [^/.] + $ ::؛ '
--rpl '{.} s: \. [^/.] + $ :: '
إذا بدأت سلسلة الاستبدال التي حددها المستخدم بـ "{" ، فيمكن استخدامها أيضًا كملف
سلسلة الاستبدال الموضعي (مثل {2.}).
يوصى بتغيير $ _ فقط لكن لديك حق الوصول الكامل إلى كل GNU
موازىالوظائف الداخلية وهياكل البيانات.
وفيما يلي بعض الأمثلة على ذلك:
قم بإزالة امتدادين (على سبيل المثال .tar.gz)
--rpl '{..} s: \. [^/.] + $ ::؛ s: \. [^/.] + $ ::؛ '
احتفظ بالملحق فقط
--rpl '{ext} s:. * \. ::'
هل التسلسل الوظيفي زوجي أم فردي؟
--rpl '{odd} $ _ = $ job-> seq ()٪ 2؟ "odd": "even" "
شاهد أيضاً: {= بيرل التعبير =} - أقار
- ماكس حرف=ماكس حرف
-s ماكس حرف
استخدم على الأكثر ماكس حرف أحرف لكل سطر أوامر ، بما في ذلك الأمر و
الوسيطات الأولية والقيم الخالية في نهايات سلاسل الوسيطات.
أكبر قيمة مسموح بها تعتمد على النظام ، ويتم حسابها كوسيطة
الحد الأقصى لطول exec ، أقل حجم البيئة الخاصة بك. القيمة الافتراضية هي
الحد الأقصى.
يدل -X ما لم -m تم تعيينه.
- حدود العرض
اعرض حدود طول سطر الأوامر التي يفرضها التشغيل
النظام و -s خيار. قم بتوصيل الإدخال من / dev / null (وربما حدد
- no-run-if-blank) إذا كنت لا تريد GNU موازى لتفعل أي شيء.
- صور
العمل كإشارة عد. - صور سوف يسبب غنو موازى لبدء
أمر في الخلفية. عندما يتم الوصول إلى عدد الوظائف المتزامنة ، غنو
موازى سينتظر حتى يكتمل أحدهما قبل بدء أمر آخر.
- صور يدل --بج ما لم --fg محدد.
- صور يدل - اسمemaphorename "tty" ما لم - اسمemaphorename محدد.
يستعمل مع --fg, --انتظرو - اسمemaphorename.
الامر بدون هو اسم مستعار ل موازى - صور.
انظر أيضا رجل بدون.
- اسمemaphorename الاسم
--هوية شخصية الاسم
استعمل الاسم كاسم السيمافور. الافتراضي هو اسم tty المتحكم
(الإخراج من الكتابة البعيدة).
يعمل الإعداد الافتراضي عادةً على النحو المتوقع عند استخدامه بشكل تفاعلي ، ولكن عند استخدامه في
السيناريو الاسم يجب أن يتم تعيينها. $$ or my_task_name غالبًا ما تكون ذات قيمة جيدة.
يتم تخزين الإشارة في ملف ~ /. Parallel / semaphores /
يدل - صور.
انظر أيضا رجل بدون.
--Semaphoretimeout ثوان
إذا لم يتم تحرير الإشارة في غضون ثوانٍ ، خذها على أي حال.
يدل - صور.
انظر أيضا رجل بدون.
--seqreplace استبدال شارع
استخدم سلسلة الاستبدال استبدال شارع بدلا من {#} لرقم التسلسل الوظيفي.
--كوخ
--هاشبانج
جنو موازى يمكن استدعاؤها كأمر shebang (#!) كالسطر الأول من ملف
النصي. سيتم التعامل مع محتوى الملف على أنه مصدر إدخال.
اذا اعجبك الموضوع لا تنسى الضغط على زر الإعجاب
#! / usr / bin / المتوازي - مسار شيبانغ -r traceroute
foss.org.my
debian.org
freenetproject.org
--كوخ يجب تعيينه كخيار أول.
على FreeBSD الحياة الفطرية وهناك حاجة:
#!/ البيرة / بن / إنف - S موازية - شيبانغ - مسار التتبع
foss.org.my
debian.org
freenetproject.org
- شيبانغ التفاف
جنو موازى يمكن أن يوازي النصوص عن طريق التفاف خط shebang. إذا كان البرنامج
يمكن تشغيله على النحو التالي:
حجج القط | بالتوازي مع the_program
ثم يمكن تغيير البرنامج النصي إلى:
#! / usr / bin / المتوازي - Shebang-wrap / the / original / parser - with-options
على سبيل المثال
#! / usr / bin / المتوازي - التفاف شيبانغ / usr / bin / python
إذا كان يمكن تشغيل البرنامج على النحو التالي:
بيانات القط | موازية - الأنابيب the_program
ثم يمكن تغيير البرنامج النصي إلى:
#! / usr / bin / المتوازي - Shebang-wrap --pipe / the / original / parser - with-options
على سبيل المثال
#! / usr / bin / المتوازي - Shebang-wrap --pipe / البيرة / بن / بيرل -w
- شيبانغ التفاف يجب تعيينه كخيار أول.
- اقتبس
لا يقوم بتشغيل الأمر ولكنه يقتبس منه. مفيد لجعل مؤلف مقتبس
أوامر جنو موازى.
- تخطي الخط الأول
لا تستخدم سطر الإدخال الأول (المستخدم بواسطة GNU موازى نفسها عند استدعائها بـ
--كوخ).
- sshdelay ثوان
تأخير بدء ssh التالي بواسطة ثوان ثواني. جنو موازى سوف تتوقف ثوان ثواني
بعد بدء كل ssh. ثوان يمكن أن تكون أقل من ثانية واحدة.
-S [ncpu /] sshlogin [، [ncpu /] sshlogin [، ...]]
--Sshlogin [ncpu /] sshlogin [، [ncpu /] sshlogin [، ...]]
توزيع المهام على أجهزة الكمبيوتر البعيدة. سيتم تشغيل الوظائف على قائمة التحكم عن بعد
أجهزة الكمبيوتر. جنو موازى سيحدد عدد أنوية وحدة المعالجة المركزية على جهاز التحكم عن بعد
أجهزة الكمبيوتر وتشغيل عدد من الوظائف على النحو المحدد من قبل -j. إذا كان الرقم com.ncpu is
بالنظر إلى جنو موازى سيستخدم هذا الرقم لعدد نوى وحدة المعالجة المركزية على المضيف.
عادة com.ncpu لن تكون هناك حاجة.
An com.sshlogin من الشكل:
[sshcommand [options]] [username @] hostname
يجب ألا يتطلب sshlogin كلمة مرور.
إن sshlogin ':' خاص ، فهو يعني 'no ssh' وبالتالي سيتم تشغيله على امتداد
الكمبيوتر المحلي.
إن sshlogin '..' خاص ، إنه يقرأ sshlogins من ~ /. Parallel / sshloginfile
يعد sshlogin '-' خاصًا أيضًا ، فهو يقرأ sshlogins من stdin (الإدخال القياسي).
لتحديد المزيد من sshlogins ، افصل sshlogins بفاصلة أو كرر الخيارات
عدة مرات.
للحصول على أمثلة: انظر --sshloginfile.
يجب أن يكون لدى المضيف البعيد GNU موازى تثبيت.
--Sshlogin من المعروف أنه يسبب مشاكل مع -m -X.
--Sshlogin كثيرا ما تستخدم مع --نقل, --إرجاع, --تنظيفو - TRC.
--sshloginfile اسم الملف (اختبار بيتا)
--slf اسم الملف (اختبار بيتا)
ملف مع sshlogins. يتكون الملف من sshlogins في أسطر منفصلة. فارغ
يتم تجاهل الأسطر والخطوط التي تبدأ بـ "#". مثال:
server.example.com
[البريد الإلكتروني محمي]
8 / my-8-core-server.example.com
2/[البريد الإلكتروني محمي]
# يحتوي هذا الخادم على SSH يعمل على المنفذ 2222
سش -p 2222 server.example.net
4 / ssh -p 2222 quadserver.example.net
# استخدم برنامج ssh مختلف
myssh -p 2222 -l myusername hexacpu.example.net
# استخدم برنامج ssh مختلف مع العدد الافتراضي من النوى
// usr / local / bin / myssh -p 2222 -l myusername hexacpu.example.net
# استخدم برنامج ssh مختلفًا بـ 6 مراكز
6 // usr / local / bin / myssh -p 2222 -l myusername hexacpu.example.net
# افترض وجود 16 مركزًا على الكمبيوتر المحلي
16 /:
عند استخدام برنامج ssh مختلف ، يجب أن تكون الوسيطة الأخيرة هي اسم المضيف.
قد يؤدي إجراء --sshloginfile مسموح.
جنو موازى سيبحث أولاً عن الملف في dir الحالي ؛ إذا فشل ذلك يبدو
للملف بتنسيق ~ /. موازية.
ملف sshloginfile '..' خاص ، يقرأ sshlogins منه ~ /. Parallel / sshloginfile
ملف sshloginfile "." خاص ، فإنه يقرأ sshlogins من
/ etc /allel / sshloginfile
ملف sshloginfile '-' خاص أيضًا ، فهو يقرأ sshlogins من stdin (قياسي
إدخال).
إذا تم تغيير sshloginfile ، فستتم إعادة قراءته عند انتهاء المهمة في
أكثر مرة في الثانية. هذا يجعل من الممكن إضافة وإزالة المضيفين أثناء
تشغيل.
يمكن استخدام هذا للحصول على برنامج خفي يقوم بتحديث ملف sshloginfile ليحتوي فقط على ملفات
الخوادم الموجودة:
cp original.slf tmp2.slf
بينما [1] ؛ يفعل
موازية لطيفة - nonall -j0 -k --slf original.slf --tag echo | perl / \ t $ // '> tmp.slf
إذا كان فرق tmp.slf tmp2.slf ؛ ثم
mv tmp.slf tmp2.slf
fi
النوم 10
منتهي &
بالتوازي - slf tmp2.slf ...
- slotreplace استبدال شارع
استخدم سلسلة الاستبدال استبدال شارع بدلا من {٪} لرقم فتحة العمل.
--صامتة صامتة. لن تتم طباعة المهمة المراد تشغيلها. هذا هو الافتراضي. يمكن ان يكون
عكس مع -v.
- tty افتح Terminal tty. إذا كان GNU موازى يستخدم لبدء برنامج تفاعلي
ثم قد تكون هناك حاجة إلى هذا الخيار. سيبدأ وظيفة واحدة فقط في كل مرة (أي -j1),
لا تخزن الإخراج (أي -u) ، وسيفتح tty للوظيفة. عندما تكون الوظيفة
تم ، المهمة التالية ستحصل على tty.
--بطاقة شعار خطوط العلامة مع الحجج. سيتم إضافة الوسيطات إلى كل سطر إخراج
و TAB (\ t). عندما يقترن --على العموم or - نونال سيتم إضافة الخطوط
مع sshlogin بدلاً من ذلك.
--بطاقة شعار يتم تجاهله عند استخدام -u.
--tagstring شارع
وضع علامة على السطور بسلسلة. سيتم إضافة كل سطر إخراج بـ شارع و TAB
(\ t). شارع يمكن أن تحتوي على سلاسل بديلة مثل {}.
--tagstring يتم تجاهله عند استخدام -u, --على العمومو - نونال.
--تمبدير اسم
دليل للملفات المؤقتة. جنو موازى عادة المخازن المؤقتة في الإخراج
الملفات المؤقتة في / tmp. عن طريق الإعداد --تمبدير يمكنك استخدام دير مختلف لـ
الملفات. جلسة --تمبدير يعادل إعداد $ TMPDIR.
- TMux استعمل tmux للإخراج. بدء tmux جلسة وتشغيل كل وظيفة في نافذة في ذلك
حصة. لن يتم إنتاج أي مخرجات أخرى.
--نفذ الوقت فال
انتهى الوقت للقيادة. إذا كان الأمر يعمل لمدة أطول من فال ثواني سوف تحصل عليه
قتل باستخدام SIGTERM ، متبوعًا بـ SIGTERM بعد 200 مللي ثانية ، متبوعًا بـ SIGKILL 200 مللي ثانية
في وقت لاحق.
If فال متبوعًا بنسبة٪ ثم سيتم حساب المهلة ديناميكيًا كملف
النسبة المئوية لمتوسط متوسط وقت التشغيل. فقط القيم> 100٪ ستكون منطقية.
- الإسراف
-t اطبع المهمة المراد تشغيلها على stderr (خطأ قياسي).
انظر أيضا -v, -p.
--نقل
نقل الملفات إلى أجهزة الكمبيوتر البعيدة. --نقل يستخدم مع --Sshlogin عندما
الوسائط عبارة عن ملفات ويجب نقلها إلى أجهزة الكمبيوتر البعيدة. الملفات
باستخدام رسينك وسيتم وضع نسبة إلى مسار العمل الافتراضي.
إذا كان المسار يحتوي على /./ سيكون المسار المتبقي متعلقًا بدير العمل.
على سبيل المثال
echo foo / bar.txt | موازي \
--sshlogin server.example.com - نقل مرحاض
سيؤدي ذلك إلى نقل الملف foo / bar.txt إلى الكمبيوتر server.example.com إلى
ملف $ HOME / foo / bar.txt قبل الجري wc foo / bar.txt on server.example.com.
صدى /tmp/foo/bar.txt | موازي \
--sshlogin server.example.com - نقل مرحاض
سيؤدي ذلك إلى نقل الملف foo / bar.txt إلى الكمبيوتر server.example.com إلى
ملف /tmp/foo/bar.txt قبل الجري wc /tmp/foo/bar.txt on server.example.com.
--نقل كثيرا ما تستخدم مع --إرجاع --تنظيف.
--نقل يتم تجاهله عند استخدامه مع --Sshlogin : أو عندما لا تستخدم مع
--Sshlogin.
- TRC اسم الملف
نقل ، إرجاع ، تنظيف. يد قصيرة لـ:
--نقل --إرجاع اسم الملف --تنظيف
--تقليم
اقتطاع المساحة البيضاء في الإدخال.
n لا تقليم. لم يتم تعديل الإدخال. هذا هو الافتراضي.
l اليسار تقليم. قم بإزالة المسافة البيضاء من بداية الإدخال. على سبيل المثال "a bc" -> "a bc".
r تقليم الصحيح. قم بإزالة المسافة البيضاء من نهاية الإدخال. على سبيل المثال "a bc" -> "a bc".
lr
rl كلاهما تقليم. قم بإزالة المسافة البيضاء من بداية ونهاية الإدخال. على سبيل المثال "a bc"
-> "a bc". هذا هو الافتراضي إذا - كولسب .
- المجموعة
-u فك تجميع الإخراج. تتم طباعة الإخراج في أسرع وقت ممكن وبمرور GNU موازى
المعالجة الداخلية. قد يتسبب هذا في خلط الإخراج من أوامر مختلفة
لذلك يجب أن تستخدم فقط إذا كنت لا تهتم بالمخرجات. قارن هذه:
موازى -j0 'ينام {}؛صدى صوت -n بدء {} ؛ نوم {}؛صدى صوت {}نهاية' ::: 1 2 3 4
موازى -u -j0 'ينام {}؛صدى صوت -n بدء {} ؛ نوم {}؛صدى صوت {}نهاية' ::: 1 2 3 4
كما أنه يعطل --بطاقة شعار. جنو موازى مخرجات أسرع مع -u. قارن بين سرعة
هؤلاء:
التسلسل المتوازي ::: 300000000> / dev / null
متوازي -u seq ::: 300000000> / dev / null
سلسلة متوازية - خط عازلة ::: 300000000> / dev / null
يمكن عكسه باستخدام --مجموعة.
شاهد أيضاً: - الخط العازلة --مجموعة
--مستبدل التمديد استبدال شارع
- إ استبدال شارع
استخدم سلسلة الاستبدال استبدال شارع بدلاً من {.} لسطر الإدخال بدون
تمديد.
--استخدم cpus بدلاً من النوى
احسب عدد وحدات المعالجة المركزية الفعلية بدلاً من أنوية وحدة المعالجة المركزية. عند حساب كم
وظائف للتشغيل في نفس الوقت بالنسبة لعدد أنوية وحدة المعالجة المركزية التي يمكنك أن تطلبها من جنو
موازى لإلقاء نظرة بدلاً من ذلك على عدد وحدات المعالجة المركزية الفعلية. هذا سيكون له معنى ل
أجهزة الكمبيوتر التي تحتوي على hyperthreading كوظيفتين تعملان على وحدة معالجة مركزية واحدة مع
سيتم تشغيل مؤشر الترابط بشكل أبطأ من وظيفتين تعملان على وحدتي CPU فعليتين. بعض
يمكن أن تعمل وحدات المعالجة المركزية متعددة النواة بشكل أسرع إذا تم تشغيل مؤشر ترابط واحد فقط لكل وحدة معالجة مركزية فعلية.
لن يحتاج معظم المستخدمين إلى هذا الخيار.
-v مطوّل. اطبع المهمة المراد تشغيلها على stdout (الإخراج القياسي). يمكن عكسها
مع --صامتة. انظر أيضا -t.
استعمل -v -v لطباعة الأمر ssh التفاف عند التشغيل عن بعد.
--الإصدار
-V اطبع نسخة جنو موازى والخروج.
--ووركدير com.mydir
--wd com.mydir
تم نقل الملفات باستخدام ملفات --نقل --إرجاع سيكون نسبيًا ل com.mydir on
أجهزة الكمبيوتر البعيدة ، وسيتم تنفيذ الأمر في dir com.mydir.
الخاص com.mydir قيمنا سيخلق dirs العمل تحت ~ /. Parallel / tmp / on
أجهزة الكمبيوتر البعيدة. لو --تنظيف يتم إعطاء هذه dirs سيتم إزالتها.
الخاص com.mydir قيمنا . يستخدم دير العمل الحالي. إذا كان العمل الحالي
دير تحت دير منزلك ، القيمة . يتم التعامل معه على أنه المسار النسبي لملف
دير المنزل. هذا يعني أنه إذا كان دير منزلك مختلفًا على أجهزة الكمبيوتر البعيدة (على سبيل المثال
إذا كان تسجيل الدخول مختلفًا) ، فسيظل المسار النسبي متعلقًا بمنزلك
د.
لمعرفة الفرق ، جرب:
موازى -S الخادم الأشخاص ذوي الإعاقة ::: ""
موازى --wd . -S الخادم الأشخاص ذوي الإعاقة ::: ""
موازى --wd -S الخادم الأشخاص ذوي الإعاقة ::: ""
--انتظر انتظر حتى تكتمل جميع الأوامر.
يدل - صور.
انظر أيضا رجل بدون.
-X استبدل الحجج المتعددة مع السياق. أدخل العديد من الوسائط مثل الأمر
تصاريح طول الخط. إذا تم تشغيل العديد من المهام بشكل متوازٍ: فقم بتوزيع ملف
الحجج بالتساوي بين الوظائف. يستخدم -j1 لتجنب هذا.
If {} لا يتم استخدام الوسائط سيتم إلحاقها بالسطر. لو {} مستعمل ك
جزء من كلمة (مثل الموافقة المسبقة عن علم {}. jpg) ثم تتكرر الكلمة كاملة. لو {} is
تستخدم عدة مرات لكل منهما {} سيتم استبداله بالحجج.
عادة -X سيفعل الشيء الصحيح ، بينما -m يمكن أن يعطي نتائج غير متوقعة إذا {}
يستخدم كجزء من كلمة.
دعم لل -X مع --Sshlogin محدودة وقد تفشل.
انظر أيضا -m.
--خروج
-x اخرج إذا كان الحجم (انظر ملف -s الخيار) تم تجاوزه.
--xapply اقرأ مصادر إدخال متعددة مثل com.xapply. إذا تم إعطاء مصادر إدخال متعددة ، واحد
ستتم قراءة الحجة من كل مصدر من مصادر الإدخال. يمكن أن تكون الحجج
الوصول إليها في الأمر باسم 1 {} .. {n}، وبالتالي 1 {} سيكون سطرًا من الإدخال الأول
المصدر و 6 {} سيشير إلى السطر الذي له نفس رقم السطر من السادس
مصدر الإدخال.
قارن هذين:
صدى مواز {1} {2} ::: 1 2 3 ::: abc
مواز - صدى xapply {1} {2} ::: 1 2 3 ::: abc
سيتم إعادة استخدام الوسيطات إذا كان أحد مصادر الإدخال يحتوي على وسيطات أكثر من
الآخرين:
مواز - صدى xapply {1} {2} {3} ::: 1 2 ::: I II III ::: abcdefg
انظر أيضا - رأس.
EXAMPLE: العمل as com.xargs -ن1. حجة إلحاق
جنو موازى يمكن أن تعمل على غرار com.xargs -ن1.
لضغط جميع ملفات html باستخدام GZIP يركض:
جد . -اسم '*.لغة البرمجة' | موازى GZIP --أفضل
إذا كانت أسماء الملفات قد تحتوي على استخدام سطر جديد -0. استبدل FOO BAR بـ FUBAR في جميع الملفات
في هذا الدر و subdirs:
جد . من نوع f -طباعة 0 | موازى -q0 بيرل -i -نفس في / FOO بار / فوبار / ز '
ملاحظات -q مطلوب بسبب المساحة الموجودة في "FOO BAR".
EXAMPLE: القراءة الحجج تبدأ من أمر خط
جنو موازى يمكن أن تأخذ الحجج من سطر الأوامر بدلاً من stdin (الإدخال القياسي).
لضغط جميع ملفات html في الدليل الحالي باستخدام GZIP يركض:
موازى GZIP --أفضل ::: *.لغة البرمجة
لتحويل * .wav إلى * .mp3 باستخدام LAME يقوم بتشغيل عملية واحدة لكل تشغيل أساسي لوحدة المعالجة المركزية:
موازى مشلول {} -o {.}. mp3 ::: *
EXAMPLE: إدراج متعدد الحجج
عند نقل الكثير من الملفات مثل هذا: mv .LOG * دزدير سوف تحصل في بعض الأحيان على الخطأ:
سحق: / بن / مف: حجة الإدارية جدا التداول الطويل
نظرًا لوجود عدد كبير جدًا من الملفات. يمكنك بدلاً من ذلك القيام بما يلي:
ls | البقرى -E "\ .log $" | موازى mv {} دزدير
هذا سوف يعمل mv لكل ملف. يمكن القيام به بشكل أسرع إذا mv يحصل على العديد من الحجج
سوف يتناسب مع الخط:
ls | البقرى -E "\ .log $" | موازى -m mv {} دزدير
EXAMPLE: السياق يحل محل
لإزالة الملفات pict0000.jpg .. pict9999.jpg يمكنك أن تفعل:
يليها -w 0 9999 | موازى rm الصورة {}. jpg
يمكنك أيضًا القيام بما يلي:
يليها -w 0 9999 | بيرل -نفس 's /(.*)/ pict $ 1.jpg /' | موازى -m rm
الأول سوف يعمل rm 10000 مرة ، في حين أن الأخيرة لن تعمل إلا rm عدة مرات
حافظ على طول سطر الأوامر قصيرًا بما يكفي لتجنب ذلك حجة الإدارية جدا التداول الطويل (عادة
يعمل 1-2 مرات).
يمكنك أيضًا تشغيل:
يليها -w 0 9999 | موازى -X rm الصورة {}. jpg
هذا أيضا سوف يعمل فقط rm عدد المرات اللازمة للحفاظ على طول سطر الأوامر قصير
بما فيه الكفاية.
EXAMPLE: إحصاء كثيف وظائف الاستبدال
إذا تم تثبيت ImageMagick ، فسيؤدي ذلك إلى إنشاء صورة مصغرة لملف jpg:
تحول -الهندسة 120 foo.jpg Thumb_foo.jpg
سيتم تشغيل هذا مع عدد من وظائف وحدة المعالجة المركزية بالتوازي مع جميع ملفات jpg في الدليل:
ls * .JPG | موازى تحول -الهندسة 120 {} إبهام_{}
للقيام بذلك بشكل متكرر استخدم جد:
جد . -اسم "* .jpg" | موازى تحول -الهندسة 120 {} {} _thumb.jpg
لاحظ كيف يجب أن تبدأ الحجة {} as {} سيشمل المسار (على سبيل المثال الجري تحول
-الهندسة 120 ./foo/bar.jpg Thumb_./foo/bar.jpg من الواضح أنه سيكون خطأ). الأمر سوف
إنشاء ملفات مثل ./foo/bar.jpg_thumb.jpg.
استعمل {.} لتجنب إضافة .jpg في اسم الملف. سيؤدي هذا الأمر إلى إنشاء ملفات مثل
./foo/bar_thumb.jpg:
جد . -اسم "* .jpg" | موازى تحول -الهندسة 120 {} {.} _ thumb.jpg
EXAMPLE: الاستبدال إعادة توجيه
سيؤدي هذا إلى إنشاء نسخة غير مضغوطة من ملفات .gz بجوار ملف .gz:
موازى زكات {} ">"{.} ::: * .gz
الاقتباس من> ضروري لتأجيل إعادة التوجيه. حل آخر هو اقتباس
الأمر كله:
موازى "زكات {} >{.} " ::: * .gz
يجب أيضًا وضع أحرف shell الخاصة الأخرى (مثل * ؛ $> <| >> <<) بين علامتي اقتباس ،
كما قد تفسرها الصدفة ولا تُعطى لجنو موازى.
EXAMPLE: تتألف الأوامر
يمكن أن تتكون الوظيفة من عدة أوامر. سيؤدي ذلك إلى طباعة عدد الملفات في كل منها
دليل:
ls | موازى 'صدى صوت -n {} " "; ls {} | مرحاض -l '
لوضع الإخراج في ملف يسمى .dir:
ls | موازى '(صدى صوت -n {} " "; ls {} | مرحاض -ل) > {} .dir '
حتى نصوص الصدف الصغيرة يمكن تشغيلها بواسطة جنو موازى:
جد . | موازى 'أ = {} ؛ الاسم = $ {a ## * /} ؛ العلوي = $ (echo "اسم $" | tr "[:أدنى:]"
"[: العلوي:]") ؛ صدى "اسم $ - $ العلوي ""
ls | موازى 'mv {} "$ (صدى {} | tr "[: العلوي:]" "[:أدنى:]")"'
بالنظر إلى قائمة عناوين URL ، قم بإدراج جميع عناوين URL التي فشل تنزيلها. اطبع رقم السطر و
URL.
قط urlfile | موازى "wget {} 2>/ ديف / لاغية || البقرى -n {} ملف url "
قم بإنشاء دليل معكوس بنفس أسماء الملفات باستثناء أن جميع الملفات والروابط الرمزية فارغة
الملفات.
cp -رس / المصدر / dir مرآة_دير. جد مرآة_دير من نوع l | موازى -m rm {} "&&" تواصل
{}
ابحث عن الملفات في قائمة غير موجودة
قط file_list | موازى 'لو [ ! -e {} ] ; then صدى {} ؛ فاي
EXAMPLE: دعوة سحق وظائف
إذا كان الأمر المكوّن أطول من سطر ، يصبح من الصعب قراءته. في باش تستطيع
استخدام الوظائف. فقط تذكر أن تصدير -f الوظيفة.
افعلها() {
صدى القيام بذلك مقابل 1 دولار
النوم 2
تم إجراء صدى بمبلغ 1 دولار
}
تصدير -f doit
القيام بالتوازي ::: 1 2 3
مضاعفة ذلك() {
صدى القيام بذلك مقابل 1 دولار 2
النوم 2
تم إجراء صدى بمبلغ $ 1 $ 2
}
تصدير -f مزدوج
مضاعفة متوازية ::: 1 2 3 ::: أب
للقيام بذلك على الخوادم البعيدة ، تحتاج إلى نقل الوظيفة باستخدام --env:
متوازي - env doit -S server doit ::: 1 2 3
موازية - env doubleit -S server doubleit ::: 1 2 3 ::: ab
إذا كانت بيئتك (الأسماء المستعارة والمتغيرات والوظائف) صغيرة يمكنك نسخها بالكامل
البيئة دون الحاجة إلى ذلك تصدير -f أي شئ. فقط قم بتشغيل هذا أولاً:
env_parallel () {
تصدير متوازي_bash_environment = '() {
'"$ (echo" shopt -s expand_aliases 2> / dev / null "؛ alias؛ typeet -p | grep -vFf <(للقراءة فقط ؛ echo GROUPS ؛ echo FUNCNAME ؛ echo DIRSTACK ؛ echo _ ؛ صدى PIPESTATUS ؛ صدى اسم المستخدم) | grep -v BASH_ ؛ typeet -f) ""
}'
# تشغيل كـ: env_parallel_bash_environment "2> / dev / null؛" ...
`أي موازي`" $ @ "
unsetallel_bash_environment
}
ثم اتصل على النحو التالي:
فعل env_parallel:: 1 2 3
env_parallel doubleit ::: 1 2 3 ::: ab
خادم env_parallel -S يفعل ::: 1 2 3
env_parallel -S server doubleit ::: 1 2 3 ::: ab
EXAMPLE: الوظيفة فاحص
لاختبار برنامج بمعلمات مختلفة:
فاحص () {
إذا (Eval "$ @")> & / dev / null؛ ثم
perl -e 'printf "\ 033 [30؛ 102m [OK] \ 033 [0mARGV \ n"' "$ @"
آخر
perl -e 'printf "\ 033 [30؛ 101m [FAIL] \ 033 [0mARGV \ n"' "$ @"
fi
}
تصدير -f اختبار
اختبار متوازي my_program ::: arg1 arg2
خروج اختبار مواز ::: 1 0 2 0
If برنامجي يفشل ، ستتم طباعة خطأ أحمر متبوعًا بالأمر الفاشل ؛ خلاف ذلك
ستتم طباعة موافق أخضر متبوعًا بالأمر.
EXAMPLE: إزالة ملف تمديد متى معالجة ملفات
عند معالجة الملفات ، قم بإزالة امتداد الملف باستخدام {.} غالبًا ما يكون مفيدًا.
قم بإنشاء دليل لكل ملف مضغوط وفك ضغطه في هذا الدليل:
موازى 'مكدير {.} ؛ cd {.} ؛ بفك ../ {} " ::: * الرمز البريدي
أعد ضغط جميع ملفات .gz في الدليل الحالي باستخدام bzip2 تشغيل وظيفة واحدة لكل نواة وحدة المعالجة المركزية في
موازي:
موازى "زكات {} | bzip2 >{.}. bz2 && rm {} " ::: * .gz
قم بتحويل جميع ملفات WAV إلى MP3 باستخدام LAME:
جد com.sounddir من نوع f -اسم "* .wav" | موازى مشلول {} -o {.}. mp3
ضع كل ما تم تحويله في نفس الدليل:
جد com.sounddir من نوع f -اسم "* .wav" | موازى مشلول {} -o ميدير / {/.} .mp3
EXAMPLE: إزالة اثنان ملف اضافات المتصفح متى معالجة ملفات
إذا كان لديك دليل يحتوي على ملفات tar.gz وتريد استخراجها في dir المقابل
(على سبيل المثال ، سيتم استخراج foo.tar.gz في dir foo) يمكنك القيام بما يلي:
موازى --زائد 'مكدير {..} ؛ قطران -C {..} -xf {} ' ::: * .tar.gz
EXAMPLE: تحميل 10 صور لـ كل of هيه الماضي 30 أيام
لنفترض أن موقع الويب يخزن صورًا مثل:
http://www.example.com/path/to/YYYYMMDD_##. jpg
حيث YYYYMMDD هو التاريخ و ## هو الرقم 01-10. سيؤدي هذا إلى تنزيل الصور لملف
الثلاثين يومًا الماضية:
موازى مجلد مشترك http://www.example.com/path/to/'$ (التاريخ -d "اليوم - {1} أيام"
+٪ Y٪ m٪ d) _ {2} .jpg ' ::: $ (seq 30) ::: $ (seq -w 10)
$ (التاريخ -d "اليوم - {1} أيام" +٪ Y٪ m٪ d) ستقدم التواريخ في YYYYMMDD بـ {1} يوم
مطروح.
EXAMPLE: نسخ ملفات as آخر تم التعديل تاريخ (ايزو 8601) مع وأضاف عشوائية الأرقام
جد . | موازى 'cp {} ../destdir/{= $a = كثافة العمليات (10000 * راند) ؛ $_ = التاريخ -r "$ _"
+٪ FT٪ T "$ a" `؛ اقضم بصوت عالي. =} '
EXAMPLE: ديجيتال ساعة حائط مع "رمش العين" :
يومض: في الساعة الرقمية. لجعل كل سطر آخر ":" والباقي "أ"
يستخدم تعبير perl للنظر في مصدر الإدخال الثالث. إذا كانت قيمة modudo 3 هي 2: استخدم
":" استخدم "":
موازى -k صدى {1} '{= 3 $ _ = $ _٪ 2؟ ":": " "=}" {2} {3} ::: {0. 12} ::: {0. 5} ::: {0. 9}
EXAMPLE: التجميع محتوى of ملفات
هذا:
متوازي --header: echo x {X} y {Y} z {Z} \> x {X} y {Y} z {Z} \
::: X {1..5} ::: Y {01..10} ::: Z {1..5}
سوف تولد الملفات x1y01z1 .. x5y10z5. إذا كنت ترغب في تجميع تجميع الإخراج
في x و z ، يمكنك القيام بذلك:
الموازية Eval 'cat {= s / y01 / y * / =}> {= s / y01 // =}' ::: * y01 *
لجميع قيم x و z ، يتم تشغيل أوامر مثل:
القط x1y * z1> x1z1
لذلك ينتهي بك الأمر بـ x1z1 .. x1z5 يحتوي كل منها على محتوى جميع قيم y.
EXAMPLE: اتساع أول موازى الويب الزاحف / المرآة
سيقوم هذا البرنامج النصي أدناه بالزحف إلى عنوان URL وعكسه بشكل متوازٍ. يقوم بتنزيل الصفحات الأولى التي
نقرة واحدة لأسفل ، ثم نقرتين لأسفل ، ثم 1 ؛ بدلاً من العمق الطبيعي أولاً ، حيث
يتم جلب رابط الارتباط الأول في كل صفحة أولاً.
تشغيل مثل هذا:
الموازية = -j100 ./parallel-crawl http://gatt.org.yeslab.org/
إزالة مجلد مشترك جزء إذا كنت تريد فقط متتبع ارتباطات الويب.
إنه يعمل عن طريق جلب صفحة من قائمة عناوين URL والبحث عن روابط في تلك الصفحة
تقع ضمن نفس عنوان URL للبدء ولم يتم رؤيتها بالفعل. هذه الروابط
تمت إضافته إلى قائمة انتظار جديدة. عند الانتهاء من جميع الصفحات من القائمة ، يتم نقل قائمة الانتظار الجديدة إلى
قائمة عناوين URL والعملية تبدأ من جديد حتى لا يتم العثور على روابط غير مرئية.
#!/ بن / باش
# على سبيل المثال http://gatt.org.yeslab.org/
URL = 1 دولار
# البقاء داخل دير البداية
BASEURL = $ (echo $ URL | perl -pe 's: #. * ::؛ s: (//.* /) [^ /] *: $ 1: ')
URLLIST = $ (mktemp urllist.XXXX)
URLLIST2 = $ (mktemp urllist.XXXX)
SEEN = $ (تمت مشاهدة mktemp.XXXX)
# العنكبوت للحصول على عناوين المواقع
صدى $ URL> $ URLLIST
cp $ URLLIST $ SEEN
بينما [-s $ URLLIST] ؛ يفعل
القط $ URLLIST |
الوشق المتوازي - قائمة فقط - روابط_صورة - تفريغ {} \ ؛ wget -qm -l1 -Q1 {} \ ؛ صدى النظر: {} \> \ & 2 |
perl -ne 's /#.*//؛ s / \ s + \ d +. \ s (\ S +) $ / $ 1 / ونفّذ {$ see {$ 1} ++ or print} '|
grep -F $ BASEURL |
grep -v -x -F -f $ شوهد | tee -a $ SEEN> $ URLLIST2
mv $ URLLIST2 $ URLLIST
فعل
rm -f $ URLLIST $ URLLIST2 $ SEEN
EXAMPLE: طريقة عملنا ملفات تبدأ من a قطران ملف في حين تفريغ
إذا كانت الملفات المراد معالجتها في ملف tar ، فقم بتفريغ ملف واحد ومعالجته
على الفور أسرع من تفريغ جميع الملفات أولاً.
قطران الخامس عشر foo.tgz | بيرل -نعم 'مطبعة $ l؛ $ l = $ _؛ END {print $ l} ' | موازى صدى
هناك حاجة إلى Perl one-liner لتجنب حالة السباق.
EXAMPLE: إعادة كتابة a لحلقة a أثناء القراءة حلقة
للحلقات مثل هذا:
(بالنسبة إلى x في "قائمة القطط" ؛ افعل
do_something $ x
انتهى) | عملية_خرج
وحلقات أثناء القراءة مثل هذا:
قائمة القط | (بينما تقرأ x ؛ افعل
do_something $ x
انتهى) | عملية_خرج
يمكن كتابتها على هذا النحو:
قط الإدارية | موازى قم بعمل ما | عملية_خرج
على سبيل المثال: ابحث عن اسم المضيف في القائمة الذي يحتوي على عنوان IP 1.2.3 4:
قط hosts.txt | موازى -P 100 مضيف | البقرى 1.2.3.4
إذا كانت المعالجة تتطلب المزيد من الخطوات ، فإن الحلقة for-loop مثل هذه:
(بالنسبة إلى x في "قائمة القطط" ؛ افعل
no_extension = $ {x٪. *} ؛
do_something $ x scale $ no_extension.jpg
do_step2 <$ x $ no_extension
انتهى) | عملية_خرج
و while-loops مثل هذا:
قائمة القط | (بينما تقرأ x ؛ افعل
no_extension = $ {x٪. *} ؛
do_something $ x scale $ no_extension.jpg
do_step2 <$ x $ no_extension
انتهى) | عملية_خرج
يمكن كتابتها على هذا النحو:
قط الإدارية | موازى "قم بعمل ما {} مقياس {.}. jpg ; do_step2 <{} {.} " | عملية_خرج
EXAMPLE: إعادة كتابة متداخلة للحلقات
حلقات متداخلة مثل هذا:
(لـ x في `cat xlist` ؛ افعل
لـ y في "cat ylist" ؛ يفعل
do_something $ x $ y
فعل
انتهى) | عملية_خرج
يمكن كتابتها على هذا النحو:
موازى قم بعمل ما 1 {} 2 {} :::: com.xlist ylist | عملية_خرج
حلقات متداخلة مثل هذا:
(للجنس في MF ؛ افعل
للحجم في SML XL XXL ؛ يفعل
صدى $ الجنس $ size
فعل
انتهى) | نوع
يمكن كتابتها على هذا النحو:
موازى صدى 1 {} 2 {} ::: M F ::: S M L XL XXL | sort
EXAMPLE: العثور على هيه أدنى فرق ما بين ملفات
فرق مفيد للعثور على الاختلافات في الملفات النصية. فرق | wc -l يعطي دلالة على
حجم الاختلاف. للعثور على الاختلافات بين جميع الملفات الموجودة في الملف الحالي
فعل:
موازى --بطاقة شعار فرق 1 {} 2 {} | wc -l ' ::: * ::: * | sort -nk3
بهذه الطريقة يمكن معرفة ما إذا كانت بعض الملفات أقرب إلى الملفات الأخرى.
EXAMPLE: للحلقات مع عمود أسماء
عند القيام بعدة حلقات for متداخلة ، قد يكون من الأسهل تتبع متغير الحلقة
إذا تم تسميته بدلاً من مجرد وجود رقم. يستخدم - رأس : للسماح للحجة الأولى
يكون اسمًا مستعارًا لسلسلة الاستبدال الموضعي:
متوازي - العنوان: صدى {الجنس} {الحجم} ::: النوع MF ::: الحجم SML XL XXL
يعمل هذا أيضًا إذا كان ملف الإدخال عبارة عن ملف به أعمدة:
cat addressbook.tsv | متوازي --colsep '\ t' --header: echo {Name} {E-mail address}
EXAMPLE: العد التنازلي هيه الخلافات ما بين الكل ملفات in a دير
باستخدام --نتائج يتم حفظ النتائج في / tmp / diffcount *.
متوازي --results / tmp / diffcount "diff -U 0 {1} {2} | tail -n +3 | grep -v '^ @' | wc -l" ::: * ::: *
لمعرفة الفرق بين الملف A والملف B ، انظر إلى الملف '/ tmp / diffcount / 1 / A / 2 / B'.
EXAMPLE: سريع up بسرعة وظائف
يستغرق بدء عمل على الجهاز المحلي حوالي 10 مللي ثانية. يمكن أن يكون هذا عبئًا كبيرًا إذا كان ملف
المهمة تستغرق بضعة مللي ثانية للتشغيل. في كثير من الأحيان يمكنك تجميع المهام الصغيرة معًا باستخدام -X والتي سوف
جعل النفقات العامة أقل أهمية. قارن بين سرعة هذه:
seq -w 0 9999 | صورة اللمس المتوازي {}. jpg
seq -w 0 9999 | صورة لمس متوازية- X {}. jpg
إذا كان برنامجك لا يمكنه أخذ عدة وسيطات ، فيمكنك استخدام GNU موازى لتفرخ
متعددة جنو موازىs:
seq -w 0 999999 | متوازي -j10 - أنبوب متوازي -j0 صورة لمس {}. jpg
If -j0 ينتج عادة 252 وظيفة ، ثم سيحاول ما سبق إنتاج 2520 وظيفة. بشكل طبيعي
نظام GNU / Linux يمكنك إنتاج 32000 وظيفة باستخدام هذه التقنية دون مشاكل. للتمويل
زيادة حد 32000 وظيفة / proc / sys / kernel / pid_max ل4194303.
EXAMPLE: باستخدام قذيفة المتغيرات
عند استخدام متغيرات الصَدَفة ، تحتاج إلى اقتباسها بشكل صحيح لأنها قد تنقسم بخلاف ذلك
على المساحات.
لاحظ الفرق بين:
V = (سجلات "أخي 12 \" تساوي <\ $ \ $ \ $> "'!' Foo Bar)
صدى متوازي ::: $ {V [@]} # ربما لا يكون هذا ما تريده
و:
V = (سجلات "أخي 12 \" تساوي <\ $ \ $ \ $> "'!' Foo Bar)
صدى متوازي ::: "$ {V [@]}"
عند استخدام المتغيرات في الأمر الفعلي الذي يحتوي على أحرف خاصة (مثل المسافة)
يمكنك الاقتباس منها باستخدام "" $ VAR "" أو باستخدام "s و -q:
V = "هنا اثنان"
صدى موازٍ "'$ V'" ::: مسافات
موازية -q صدى "$ V" ::: مسافات
EXAMPLE: تجمع الناتج خطوط
عند تشغيل المهام التي تُخرج البيانات ، غالبًا لا تريد إخراج مهام متعددة
نركض معا. جنو موازى افتراضات لتجميع ناتج كل وظيفة ، وبالتالي فإن الناتج هو
طبع عند انتهاء المهمة. إذا كنت تريد طباعة سطور كاملة أثناء المهمة
يمكنك تشغيل يمكنك استخدامها - الخط العازلة. إذا كنت تريد طباعة الإخراج في أسرع وقت ممكن
يمكنك استخدام -u.
قارن ناتج:
موازى متتبع ::: foss.org.my debian.org freenetproject.org
إلى إخراج:
موازى - الخط العازلة متتبع ::: foss.org.my debian.org freenetproject.org
و:
موازى -u متتبع ::: foss.org.my debian.org freenetproject.org
EXAMPLE: بطاقة الناتج خطوط
جنو موازى يقوم بتجميع خطوط الإخراج ، ولكن قد يكون من الصعب معرفة مكان الوظائف المختلفة
ابدأ. --بطاقة شعار يهيئ الحجة لجعل ذلك أكثر وضوحًا:
موازى --بطاقة شعار متتبع ::: foss.org.my debian.org freenetproject.org
--بطاقة شعار يعمل مع - الخط العازلة ولكن ليس مع -u:
موازى --بطاقة شعار - الخط العازلة متتبع ::: foss.org.my debian.org freenetproject.org
تحقق من وقت تشغيل الخوادم في ~ /. Parallel / sshloginfile:
موازى --بطاقة شعار -S .. - نونال شغالة
EXAMPLE: احتفظ طلب of الناتج نفسه as طلب of إدخال
عادةً ما تتم طباعة إخراج المهمة بمجرد اكتمالها. في بعض الأحيان تريد
ترتيب الإخراج ليظل كما هو ترتيب الإدخال. هذا غالبا
مهم ، إذا تم استخدام الإخراج كمدخل لنظام آخر. -k سوف تتأكد من الطلب
سيكون من المخرجات بنفس ترتيب الإدخال حتى إذا انتهت المهام اللاحقة قبل الوظائف السابقة.
إلحاق سلسلة بكل سطر في ملف نصي:
قط ملف نصي | موازى -k صدى {} append_string
إذا قمت بإزالة -k قد تظهر بعض الخطوط بترتيب خاطئ.
مثال آخر هو متتبع:
موازى متتبع ::: foss.org.my debian.org freenetproject.org
سيعطي traceroute لـ foss.org.my و debian.org و freenetproject.org ، لكنه سيكون
مرتبة وفقًا للوظيفة المكتملة أولاً.
للحفاظ على الأمر كما هو الحال مع تشغيل الإدخال:
موازى -k متتبع ::: foss.org.my debian.org freenetproject.org
سيؤدي هذا إلى التأكد من طباعة مسار التتبع إلى foss.org.my أولاً.
مثال أكثر تعقيدًا قليلاً هو تنزيل ملف ضخم في أجزاء متوازية: بعض الإنترنت
ستوفر الاتصالات المزيد من البيانات إذا قمت بتنزيل الملفات بالتوازي. للتحميل
على التوازي ، راجع: "مثال: تنزيل 10 صور لكل يوم من الثلاثين يومًا الماضية". لكن اذا
أنت تقوم بتنزيل ملف كبير يمكنك تنزيل الملف في أجزاء بالتوازي.
لتنزيل بايت 10000000-19999999 يمكنك استخدام حليقة:
حليقة -r 10000000-19999999 http://example.com/the/big/file > file.part
لتنزيل ملف 1 غيغابايت ، نحتاج إلى تنزيل 100 قطعة بحجم 10 ميغابايت ودمجها بشكل صحيح
النظام.
يليها 0 99 | موازى -k حليقة -r \
{} 0000000 - {} 9999999 http://example.com/the/big/file > ملف
EXAMPLE: موازية البقرى
البقرى -r greps بشكل متكرر من خلال الدلائل. على وحدات المعالجة المركزية متعددة النواة GNU موازى يمكن في كثير من الأحيان
تسريع هذا.
جد . من نوع f | موازى -k -ج 150٪ -n 1000 -m البقرى -H -n STRING {}
سيؤدي هذا إلى تشغيل 1.5 وظيفة لكل نواة ، وإعطاء 1000 وسيطة لـ البقرى.
EXAMPLE: جريبينج n خطوط لـ m منتظم التعبيرات.
أبسط حل لـ grep ملف كبير للعديد من regexps هو:
grep -f regexps.txt bigfile
أو إذا كانت regexps عبارة عن سلاسل ثابتة:
grep -F -f regexps.txt bigfile
هناك عاملان محددان: وحدة المعالجة المركزية (CPU) و I / O (إدخال / إخراج القرص). وحدة المعالجة المركزية سهلة القياس: إذا أخذ grep
> 90٪ من وحدة المعالجة المركزية (على سبيل المثال عند التشغيل في الأعلى) ، فإن وحدة المعالجة المركزية هي عامل مقيد ، والتوازي
سوف يسرع هذا. إذا لم يكن الأمر كذلك ، فإن إدخال / إخراج القرص هو العامل المحدد ، ويعتمد ذلك على ملف
نظام القرص قد يكون موازاة أسرع أو أبطأ. الطريقة الوحيدة لمعرفة اليقين هي
لقياس.
إذا كانت وحدة المعالجة المركزية هي العامل المحدد ، فيجب إجراء موازاة على regexps:
القط regexp.txt | موازية - أنبوب - L1000 - جولة روبن grep -f - ملف كبير
إذا تطابق سطر مع عدة regexps ، فقد يتكرر السطر. سيبدأ الأمر واحدًا
grep لكل وحدة معالجة مركزية وقراءة bigfile مرة واحدة لكل وحدة معالجة مركزية ، ولكن نظرًا لأن ذلك يتم بالتوازي ، فإن الكل يقرأ
باستثناء الأول سيتم تخزينه مؤقتًا في ذاكرة الوصول العشوائي. اعتمادًا على حجم regexp.txt ، قد يكون
أسرع في الاستخدام - بلوك 10 م بدلاً من -L1000. إذا كان ملف regexp.txt أكبر من أن يتناسب مع ذاكرة الوصول العشوائي ،
إزالة - حول روبن وضبط -L1000. سيؤدي هذا إلى قراءة ملف bigfile مرات أكثر.
تعمل بعض أنظمة التخزين بشكل أفضل عند قراءة أجزاء متعددة على التوازي. هذا صحيح
لبعض أنظمة RAID وبعض أنظمة ملفات الشبكة. لموازاة قراءة
الملف الكبير:
متوازي - pipepart - block 100M -a bigfile -k grep -f regexp.txt
سيؤدي هذا إلى تقسيم الملف الكبير إلى أجزاء بحجم 100 ميغا بايت وتشغيل grep على كل من هذه الأجزاء. ل
قم بموازنة كل من قراءة ملف bigfile و regexp.txt واجمع الاثنين باستخدام --fifo:
متوازي - pipepart - بلوك 100M - ملف كبير - fifo قطة regexp.txt \
\ | متوازي - ماسورة - L1000 - جولة-روبن grep -f - {}
إذا تطابق سطر مع عدة regexps ، فقد يتكرر السطر.
EXAMPLE: باستخدام عن بعد أجهزة الكمبيوتر
لتشغيل الأوامر على جهاز كمبيوتر بعيد ، يجب إعداد SSH ويجب أن تكون قادرًا على تسجيل الدخول
دون إدخال كلمة مرور (الأوامر سه-نسخة معرف سه وكيل قد تساعدك على القيام بذلك).
إذا كنت بحاجة إلى تسجيل الدخول إلى مجموعة كاملة ، فلن ترغب عادةً في قبول مفتاح المضيف
لكل مضيف. تريد قبولهم في المرة الأولى وأن يتم تحذيرك إذا كانوا كذلك
تغير. للقيام بذلك:
# أضف الخوادم إلى ملف sshloginfile
(echo servera؛ echo serverb)> .parallel / my_cluster
# تأكد من وجود .ssh / config
المس .ssh / config
cp .ssh / config .ssh / config.backup
# تعطيل StrictHostKeyChecking مؤقتًا
(echo 'Host *'؛ echo StrictHostKeyChecking no) >> .ssh / config
متوازي - slf my_cluster - غير صحيح
# قم بإزالة تعطيل StrictHostKeyChecking
mv .ssh / config.backup .ssh / config
الخوادم في .parallel / my_cluster تمت إضافتها الآن في .ssh / known_hosts.
يهرب صدى on server.example.com:
seq 10 | متوازي - sshlogin server.example.com صدى
لتشغيل الأوامر على أكثر من كمبيوتر بعيد ، قم بتشغيل:
seq 10 | متوازي - sshlogin server.example.com ، server2.example.net صدى
أو:
تسلسل 10 | متوازي - sshlogin server.example.com \
--sshlogin server2.example.net صدى
إذا كان اسم المستخدم لتسجيل الدخول هو فو on server2.example.net استعمال:
تسلسل 10 | متوازي - sshlogin server.example.com \
--Sshlogin [البريد الإلكتروني محمي] صدى
إذا كانت قائمة المضيفين الخاصة بك server1-88.example.net مع تسجيل الدخول فو:
seq 10 | متوازي --Sfoo @ server {1..88} .example.net صدى
لتوزيع الأوامر على قائمة بأجهزة الكمبيوتر ، قم بإنشاء ملف أجهزة الكمبيوتر الخاصة بي مع كل
أجهزة الكمبيوتر:
server.example.com
[البريد الإلكتروني محمي]
server3.example.com
ثم اركض:
seq 10 | متوازي - sshloginfile mycomputers صدى
لتضمين الكمبيوتر المحلي ، أضف sshlogin الخاص ':' إلى القائمة:
server.example.com
[البريد الإلكتروني محمي]
server3.example.com
:
جنو موازى سيحاول تحديد عدد أنوية وحدة المعالجة المركزية على كل جهاز تحكم عن بعد
أجهزة الكمبيوتر ، وقم بتشغيل وظيفة واحدة لكل نواة وحدة المعالجة المركزية - حتى لو لم يكن لدى أجهزة الكمبيوتر البعيدة
نفس العدد من أنوية وحدة المعالجة المركزية.
إذا لم يتم تحديد عدد مراكز وحدة المعالجة المركزية على أجهزة الكمبيوتر البعيدة بشكل صحيح ، فإن الرقم
يمكن إضافة نوى وحدة المعالجة المركزية في المقدمة. هنا يحتوي الكمبيوتر على 8 نوى لوحدة المعالجة المركزية.
seq 10 | متوازي - shlogin 8 / server.example.com صدى
EXAMPLE: نقل of ملفات
لإعادة ضغط الملفات المضغوطة بتنسيق gzip بامتداد bzip2 باستخدام تشغيل الكمبيوتر عن بعد:
البحث عن السجلات / -name '* .gz' | \
متوازي - sshlogin server.example.com \
- نقل "zcat {} | bzip2 -9> {.}. bz2"
سيؤدي هذا إلى سرد ملفات .gz في ملف الجذوع الدليل وجميع الدلائل أدناه. ثم ستفعل
نقل الملفات إلى server.example.com إلى الدليل المقابل في $ HOME / سجلات. على
server.example.com سيتم إعادة ضغط الملف باستخدام زكات bzip2 مما أدى إلى
الملف المقابل مع .gz تم استبداله ب . Bz2.
إذا كنت تريد نقل ملف bz2 الناتج مرة أخرى إلى الكمبيوتر المحلي ، أضف
--إرجاع {.}. bz2:
البحث عن السجلات / -name '* .gz' | \
متوازي - sshlogin server.example.com \
--transfer --return {.}. bz2 "zcat {} | bzip2 -9> {.}. bz2"
بعد الانتهاء من إعادة الضغط . Bz2- يتم نقل الملف مرة أخرى إلى الكمبيوتر المحلي
ووضعها بجانب الأصل .gz-ملف.
إذا كنت تريد حذف الملفات المنقولة على الكمبيوتر البعيد ، أضف --تنظيف. هذا
سيزيل كل من الملف المنقول إلى الكمبيوتر البعيد والملفات المنقولة
من الكمبيوتر البعيد:
البحث عن السجلات / -name '* .gz' | \
متوازي - sshlogin server.example.com \
--transfer --return {.}. bz2 --cleanup "zcat {} | bzip2 -9> {.}. bz2"
إذا كنت تريد التشغيل على عدة أجهزة كمبيوتر ، أضف أجهزة الكمبيوتر إلى --Sshlogin إما باستخدام "أو" أو
متعدد --Sshlogin:
البحث عن السجلات / -name '* .gz' | \
متوازي - sshlogin server.example.com ، server2.example.com \
--sshlogin server3.example.com \
--transfer --return {.}. bz2 --cleanup "zcat {} | bzip2 -9> {.}. bz2"
يمكنك إضافة الكمبيوتر المحلي باستخدام --Sshlogin :. سيؤدي هذا إلى تعطيل إزالة و
نقل للكمبيوتر المحلي فقط:
البحث عن السجلات / -name '* .gz' | \
متوازي - sshlogin server.example.com ، server2.example.com \
--sshlogin server3.example.com \
- تسجيل الدخول: \
--transfer --return {.}. bz2 --cleanup "zcat {} | bzip2 -9> {.}. bz2"
غالبا --نقل, --إرجاع --تنظيف تستخدم معا. يمكن تقصيرها إلى
- TRC:
البحث عن السجلات / -name '* .gz' | \
متوازي - sshlogin server.example.com ، server2.example.com \
--sshlogin server3.example.com \
- تسجيل الدخول: \
--trc {.}. bz2 "zcat {} | bzip2 -9> {.}. bz2"
مع الملف أجهزة الكمبيوتر الخاصة بي تحتوي على قائمة أجهزة الكمبيوتر تصبح:
البحث عن السجلات / -name '* .gz' | متوازي - sshloginfile mycomputers \
--trc {.}. bz2 "zcat {} | bzip2 -9> {.}. bz2"
إذا كان الملف ~ /. Parallel / sshloginfile يحتوي على قائمة أجهزة الكمبيوتر الخاصة المختصرة
-S .. من الممكن استخدامه:
البحث عن السجلات / -name '* .gz' | موازية- S .. \
--trc {.}. bz2 "zcat {} | bzip2 -9> {.}. bz2"
EXAMPLE: توزيع العمل إلى محلي عن بعد أجهزة الكمبيوتر
قم بتحويل * .mp3 إلى * .ogg بتشغيل عملية واحدة لكل مركز معالج على الكمبيوتر المحلي والخادم 2:
متوازي - TRC {.}. ogg -S server2 ،: \
'mpg321 -w - {} | oggenc -q0 - -o {.}. ogg '::: * .mp3
EXAMPLE: الركض هيه نفسه أمر on عن بعد أجهزة الكمبيوتر
لتشغيل الأمر شغالة على أجهزة الكمبيوتر البعيدة ، يمكنك القيام بما يلي:
موازى --بطاقة شعار - نونال -S الخادم 1 ، الخادم 2 شغالة
- نونال لا يقرأ الحجج. إذا كانت لديك قائمة بالوظائف التي تريد تشغيلها على كل جهاز كمبيوتر لديك
يمكن القيام به:
موازى --بطاقة شعار --على العموم -S الخادم 1 ، الخادم 2 صدى ::: 1 2 3
حذف --بطاقة شعار إذا كنت لا تريد إضافة sshlogin قبل الإخراج.
إذا كان لديك الكثير من المضيفين ، فاستخدم "-j0" للوصول إلى المزيد من المضيفين بالتوازي.
EXAMPLE: بالتوازي رسينك
رسينك أداة رائعة ، لكنها في بعض الأحيان لن تملأ النطاق الترددي المتاح. هذا هو
غالبًا ما تكون مشكلة عند نسخ عدة ملفات كبيرة عبر اتصالات عالية السرعة.
ما يلي سيبدأ واحد رسينك لكل ملف كبير بتنسيق src-dir إلى مصير دير على الخادم
فوسفير:
cd src-dir جد . من نوع f -بحجم 100000+ | موازى -v سه فوسفير مكدير -p
/ dest-dir / {//} \؛ rsync -s -هافيش {} fooserver: / dest-dir / {}
قد ينتهي الأمر بالأذونات التي تم إنشاؤها بأذونات خاطئة ولا يتم إنشاء ملفات أصغر
نقل. لإصلاح تلك المدى رسينك مرة أخيرة:
رسينك -هافيش src-dir / fooserver: / dest-dir /
إذا كنت غير قادر على دفع البيانات ، ولكنك بحاجة إلى سحبها وتسمى الملفات digits.png
(مثل 000000.png) قد تتمكن من القيام بما يلي:
يليها -w 0 99 | موازى رسينك -هافيش fooserver: src-path / * {}. png Destdir /
EXAMPLE: استعمل متعدد المدخلات in صورة واحدة؟ أمر
انسخ ملفات مثل foo.es.ext إلى foo.ext:
ls * .es. * | بيرل -نفس 'مطبعة؛ s /. es // ' | موازى -N2 cp 1 {} 2 {}
يقوم الأمر perl بإخراج سطرين لكل إدخال. جنو موازى يأخذ مدخلين (باستخدام -N2)
ويستبدل {1} و {2} بالمدخلات.
العد بالثنائي:
موازى -k صدى ::: 0 1 ::: 0 1 ::: 0 1 ::: 0 1 ::: 0 1 ::: 0 1
اطبع الرقم على الجوانب المتقابلة لنرد من ستة جوانب:
موازى --xapply -a <(seq 6) -a <(seq 6 -1 1) صدى
موازى --xapply صدى :::: <(seq 6) <(seq 6 -1 1)
قم بتحويل الملفات من جميع الملفات الفرعية إلى ملفات PNG بأرقام متتالية (مفيدة في إنشاء ملفات
إدخال PNG لـ فمبيج):
موازى --xapply -a <(بحث . من نوع f | نوع) -a <(seq $ (بحث . من نوع و | مرحاض -ل)) تحول
1 {} {2} png
نسخة بديلة:
جد . من نوع f | sort | موازى تحول {} {#}.بي إن جي
EXAMPLE: استعمل a جدول as إدخال
محتوى table_file.tsv:
فو حاجِز
باز كو
يهرب:
cmd -o بار -i foo
cmd -o quux -i baz
يمكنك الجري:
موازى -a table_file.tsv - كولسب "\ t" كمد -o 2 {} -i 1 {}
ملاحظة: الافتراضي لـ GNU موازى هو إزالة المسافات حول الأعمدة. للحفاظ على
المساحات:
موازى -a table_file.tsv --تقليم n - كولسب "\ t" كمد -o 2 {} -i 1 {}
EXAMPLE: يجري هيه نفسه أمر 10 مرات
إذا كنت تريد تشغيل نفس الأمر بنفس الوسيطات 10 مرات بالتوازي ، يمكنك ذلك
فعل:
يليها 10 | موازى -ن0 الامر الخاص بى my_args
EXAMPLE: العمل as قط | ش. مورد غير مكلف وظائف تقييم
جنو موازى يمكن أن تعمل على غرار قط | sh.
وظيفة الموارد غير المكلفة هي وظيفة تتطلب القليل جدًا من وحدة المعالجة المركزية (CPU) وإدخال / إخراج القرص وإدخال / إخراج الشبكة.
Ping هو مثال على وظيفة غير مكلفة للموارد. wget أيضًا - إذا كانت صفحات الويب صغيرة.
محتوى ملف jobs_to_run:
ping -c 1
مجلد مشترك http://example.com/status.cgi؟ ip = 10.0.0.1
ping -c 1
مجلد مشترك http://example.com/status.cgi؟ ip = 10.0.0.2
ping -c 1
مجلد مشترك http://example.com/status.cgi؟ ip = 10.0.0.255
لتشغيل 100 عملية في وقت واحد ، قم بما يلي:
موازى -j 100 < وظائف_to_run
حيث لا يوجد ملف أمر سيتم تقييم الوظائف بواسطة shell.
EXAMPLE: اﻟﻤﻌﺎﻟﺠﺔ a كبير ملف استخدام الأكثر من ذلك النوى
لمعالجة ملف كبير أو بعض المخرجات التي يمكنك استخدامها --يضخ لتقسيم البيانات إلى كتل
ووضع الكتل في برنامج المعالجة.
إذا كان البرنامج GZIP -9 يمكنك ان تفعل:
قط كبير | موازى --يضخ --أعادة '' -k GZIP -9 >bigfile.gz
هذا سوف ينقسم كبير إلى كتل من 1 ميغابايت ومرر ذلك إلى GZIP -9 بالتوازي. واحد GZIP
سيتم تشغيله لكل نواة وحدة المعالجة المركزية. ناتج GZIP -9 سيتم حفظها بالترتيب وحفظها في
bigfile.gz
GZIP يعمل بشكل جيد إذا تم إلحاق الإخراج ، لكن بعض المعالجة لا تعمل على هذا النحو -
على سبيل المثال الفرز. لهذا جنو موازى يمكن وضع إخراج كل أمر في ملف.
سيؤدي هذا إلى فرز ملف كبير بالتوازي:
قط كبير | موازى --يضخ - ملفات sort | موازى -Xj1 sort -m {} "؛" rm {}
>bigfile.sort
هنا كبير مقسم إلى كتل بحجم 1 ميغابايت تقريبًا ، كل كتلة تنتهي بـ "\ n" (وهو ملف
الافتراضي ل --أعادة). يتم تمرير كل كتلة إلى sort والإخراج من sort يتم حفظها في
الملفات. يتم تمرير هذه الملفات إلى الثانية موازى الذي يدير sort -m على الملفات من قبل
يزيل الملفات. يتم حفظ الإخراج في bigfile.sort.
جنو موازى's --يضخ بحد أقصى 100 ميغا بايت / ثانية لأنه يجب نسخ كل بايت
من خلال GNU موازى. لكن اذا كبير هو ملف حقيقي (يمكن البحث عنه) جنو موازى يمكن أن تمر
نسخ الأجزاء وإرسالها مباشرة إلى البرنامج:
موازى --pipepart --منع 100m -a كبير - ملفات sort | موازى -Xj1 sort -m {} "؛" rm
{} >bigfile.sort
EXAMPLE: الركض الأكثر من ذلك من 250 وظائف الحل
إذا كنت بحاجة إلى تشغيل عدد هائل من الوظائف بالتوازي ، فمن المحتمل أن تصل إلى
حد معالجة الملفات والذي غالبًا ما يكون حوالي 250 وظيفة. إذا كنت مستخدمًا متميزًا ، فيمكنك رفع مستوى
يحد في /etc/security/limits.conf ولكن يمكنك أيضًا استخدام هذا الحل. مقبض الملف
الحد لكل عملية. هذا يعني أنك إذا أنتجت المزيد من غنو موازىثم كل من
يمكنهم تشغيل 250 وظيفة. سيؤدي هذا إلى إنتاج ما يصل إلى 2500 وظيفة:
قط مدخلاتي | موازى --يضخ -N 50 - جولة روبن -j50 موازى -j50 your_prg
سيؤدي ذلك إلى إنتاج ما يصل إلى 62500 مهمة (استخدم بحذر - تحتاج إلى ذاكرة وصول عشوائي بسعة 64 جيجابايت للقيام بذلك ، و
قد تحتاج إلى زيادة / proc / sys / kernel / pid_max):
قط مدخلاتي | موازى --يضخ -N 250 - جولة روبن -j250 موازى -j250 your_prg
EXAMPLE: العمل as مزامنة عد الملوحة جهاز
الامر بدون هو اسم مستعار ل موازى - صور.
تسمح إشارة العد بالبدء في عدد معين من الوظائف في الخلفية.
عندما يكون عدد الوظائف قيد التشغيل في الخلفية ، فإن GNU بدون سينتظر أحد هؤلاء
لإكمال قبل بدء أمر آخر. بدون --انتظر سوف تنتظر جميع الوظائف
اكتمال.
قم بتشغيل 10 وظائف بشكل متزامن في الخلفية:
لأني في * .log ؛ يفعل
صدى $ أنا
sem -j10 gzip $ i "؛" صدى القيام به
فعل
سم - انتظر
كائن المزامنة هو إشارة عد تسمح بتشغيل وظيفة واحدة فقط. سيؤدي هذا إلى تحرير الملف
ملفي ويقوم بإلحاق الملف بأسطر بها الأرقام من 1 إلى 3.
seq 3 | موازية sem sed -i -e 'i {}' myfile
As ملفي يمكن أن يكون كبيرًا جدًا ، فمن المهم أن تقوم عملية واحدة فقط بتحرير الملف في نفس الوقت
مرة.
قم بتسمية الإشارة بحيث يتم تنشيط عدة إشارات مختلفة في نفس الوقت:
seq 3 | موازية sem --id mymutex sed -i -e 'i {}' myfile
EXAMPLE: آبدأ رئيس التحرير مع أسماء تبدأ من ستدين (اساسي إدخال)
يمكنك استخدام GNU موازى لبدء برامج تفاعلية مثل emacs أو vi:
قط قائمة الملفات | موازى - tty -X ايماكس
قط قائمة الملفات | موازى - tty -X vi
إذا كان هناك عدد من الملفات أكثر مما يتناسب مع سطر أوامر واحد ، فسيتم بدء تشغيل المحرر
مرة أخرى مع الملفات المتبقية.
EXAMPLE: الركض سودو
سودو يتطلب كلمة مرور لتشغيل الأمر كجذر. إنه يخزن الوصول مؤقتًا ، لذلك ما عليك سوى
لإدخال كلمة المرور مرة أخرى إذا لم تكن قد استخدمتها سودو لفترة وجيزة.
الامر:
موازية sudo echo ::: هذه فكرة سيئة
ليس جيدًا ، حيث ستتم مطالبتك بكلمة مرور sudo لكل وظيفة. أنت تستطيع
إما أن تفعل:
sudo صدى هذا
موازية sudo echo ::: فكرة جيدة
أو:
sudo المتوازي echo ::: هذه فكرة جيدة
بهذه الطريقة عليك فقط إدخال كلمة مرور sudo مرة واحدة.
EXAMPLE: جنو موازية as طابور النظام / الدفعة مدير
جنو موازى يمكن أن يعمل كنظام قائمة انتظار بسيط أو مدير دفعة. الفكرة هي أن تضع
الوظائف في ملف ولديها جنو موازى اقرأ من ذلك باستمرار. مثل GNU موازى
سيتوقف عند نهاية الملف الذي نستخدمه ذيل لمواصلة القراءة:
صحيح >وظيفة; ذيل -n + 0 -f وظيفة | موازى
لتقديم وظائفك إلى قائمة الانتظار:
صدى الامر الخاص بى my_arg >> وظيفة
يمكنك بالطبع استخدام -S لتوزيع المهام على أجهزة الكمبيوتر البعيدة:
صحيح >وظيفة; ذيل -f وظيفة | موازى -S ..
هناك مشكلة صغيرة عند استخدام جنو موازى كنظام قائمة الانتظار / مدير الدُفعات: لديك
لتقديم عدد وظائف JobSlot قبل أن تبدأ ، وبعد ذلك يمكنك إرسال واحدة
في كل مرة ، وستبدأ الوظيفة على الفور إذا توفرت فترات زمنية مجانية. الإخراج من
يتم تأجيل المهام الجارية أو المكتملة وستتم طباعتها فقط عند المزيد من مهام JobSlots
(ما لم تستخدم --ungroup أو -u ، في هذه الحالة الإخراج من الوظائف
تتم طباعتها على الفور). على سبيل المثال ، إذا كان لديك 10 وظائف ثم الناتج من الأول
ستتم طباعة المهمة المكتملة فقط عند بدء المهمة 11 ، وإخراج الثانية
ستتم طباعة المهمة المكتملة فقط عند بدء المهمة 12.
لاستخدام - هوف لجعل GNU موازى خروج، ذيل يحتاج أيضًا إلى إجباره على الخروج:
الذيل -n + 0 -f command-list.txt |
(متوازي --eof = EXIT {} ؛ صدى متوازي الآن ؛
(seq 1000 >> command-list.txt &) ؛
صدى تم إلحاق بيانات وهمية لإجبار الذيل على الخروج)
EXAMPLE: جنو موازية as دير المعالج
إذا كان لديك دليل يقوم فيه المستخدمون بإسقاط الملفات التي تحتاج إلى المعالجة ، فيمكنك القيام بذلك
جنو / لينكس (إذا كنت تعرف ماذا com.inotifywait يتم استدعاء تقرير خطأ في الأنظمة الأساسية الأخرى):
com.inotifywait -q -m -r -e انتقل الى -e إغلاق_الكتابة --صيغة ٪ w٪ f my_dir | موازى -u صدى
سيؤدي هذا إلى تشغيل الأمر صدى على كل ملف وضع فيه my_dir أو subdirs من my_dir.
يمكنك بالطبع استخدام -S لتوزيع المهام على أجهزة الكمبيوتر البعيدة:
com.inotifywait -q -m -r -e انتقل الى -e إغلاق_الكتابة --صيغة ٪ w٪ f my_dir | موازى -S .. -u
صدى
إذا كانت الملفات المراد معالجتها في ملف tar ، فقم بتفريغ ملف واحد ومعالجته
على الفور أسرع من تفريغ جميع الملفات أولاً. قم بإعداد معالج dir كملف
أعلاه وتفريغ في دير.
استخدام GNU Parallel كمعالج dir له نفس قيود استخدام GNU Parallel مثل
نظام الطابور / مدير الدُفعات.
الاقتباس
جنو موازى هو ليبرالي جدا في الاقتباس. ما عليك سوى اقتباس الشخصيات التي لديها
معنى خاص في القشرة:
() $ "" <>؛ | \
واعتمادًا على السياق ، يجب اقتباس هذه أيضًا:
~ & #! ؟ فضاء * {
لذلك لن يحتاج معظم الناس أبدًا إلى اقتباس أكثر من وضع "\" أمام
شخصيات خاصة.
في كثير من الأحيان يمكنك ببساطة وضع \ "حول كل":
perl -ne '/ ^ \ S + \ s + \ S + $ / وطباعة $ ARGV ، ملف "\ n" "
يمكن أن يقتبس:
متوازي perl -ne \ '' / ^ \ S + \ s + \ S + $ / وطباعة $ ARGV، "\ n" '\' ::: ملف
ومع ذلك ، عندما تريد استخدام متغير shell ، فأنت بحاجة إلى اقتباس علامة $ -sign. هنا ملف
مثال باستخدام $ PARALLEL_SEQ. تم تعيين هذا المتغير بواسطة GNU موازى نفسها ، لذلك فإن
تقييم $ يجب أن يتم بواسطة الغلاف الفرعي الذي بدأه GNU موازى:
يليها 10 | موازى -N2 صدى seq: \ $ PARALLEL_SEQ arg1: {1} arg2: {2}
إذا تم تعيين المتغير قبل GNU موازى يبدأ يمكنك القيام بذلك:
VAR = this_is_set_before_starting
صدى تجربه بالعربي | موازى صدى {} حكم الفيديو المساعد
مطبوعات: تجربه بالعربي this_is_set_before_starting
يكون الأمر أكثر صعوبة إذا كان المتغير يحتوي على أكثر من مسافة واحدة على التوالي:
VAR = "اثنان المساحات ما بين كل كلمة"
صدى تجربه بالعربي | موازى صدى {} \ '"$ VAR" \'
مطبوعات: تجربه بالعربي اثنان المساحات ما بين كل كلمة
إذا كان يجب ألا يتم تقييم المتغير بواسطة shell الذي يبدأ GNU موازى ولكن يجب
تم تقييمه بواسطة الغلاف الفرعي الذي بدأه GNU موازى، فأنت بحاجة إلى الاقتباس منه:
صدى تجربه بالعربي | موازى VAR = this_is_set_after_starting \; صدى {} \ $ VAR
مطبوعات: تجربه بالعربي this_is_set_after_starting
يكون الأمر أكثر صعوبة إذا كان المتغير يحتوي على مساحة:
صدى تجربه بالعربي | موازى VAR = '"اثنان المساحات ما بين كل كلمة"' صدى {} \ '"$ VAR" \'
مطبوعات: تجربه بالعربي اثنان المساحات ما بين كل كلمة
$$ هو متغير shell الذي يحتوي على معرف عملية الغلاف. سيؤدي ذلك إلى طباعة ملف
معرّف العملية للقذيفة التي تشغل GNU موازى:
يليها 10 | موازى صدى $$
وهذا سيطبع معرفات العمليات للأغلفة الفرعية التي بدأها جنو موازى.
يليها 10 | موازى صدى \ $ \ $
إذا كان يجب عدم تقييم الأحرف الخاصة بواسطة الغلاف الفرعي ، فأنت بحاجة إلى ذلك
حمايته من التقييم من كل من بدء تشغيل GNU موازى والقشرة الفرعية:
صدى تجربه بالعربي | موازى صدى {} \\\ $ VAR
مطبوعات: تجربه بالعربي حكم الفيديو المساعد
جنو موازى يمكن أن تحمي من التقييم بواسطة الغلاف الفرعي باستخدام -q:
صدى تجربه بالعربي | موازى -q صدى {} \ $ VAR
مطبوعات: تجربه بالعربي حكم الفيديو المساعد
هذا مفيد بشكل خاص إذا كان لديك الكثير من الاقتباس. إذا كنت تريد تشغيل برنامج نصي بيرل
مثله:
بيرل -نعم '/ ^ \ S + \ s + \ S + $ / طباعة ARGV دولار ، "\ n" " ملف
يجب أن يقتبس مثل هذا:
ls | موازى بيرل -نعم '/ ^ \\ S + \\ s + \\ S + \ $ / \ و\ مطبعة\ \ $ ARGV ، \ "\\ n \" " ls | موازى بيرل
-نعم \ '' / ^ \ S + \ s + \ S + $ / طباعة ARGV دولار ، "\ n" "\"
لاحظ كيف يجب اقتباس المسافات و \ 's و \ "و $. جنو موازى يمكن أن تفعل الاقتباس عن طريق
باستخدام الخيار -q:
ls | موازى -q بيرل -نعم '/ ^ \ S + \ s + \ S + $ / طباعة ARGV دولار ، "\ n" "
ومع ذلك ، هذا يعني أنه لا يمكنك جعل الغلاف الفرعي يفسر الأحرف الخاصة. ل
سبيل المثال بسبب -q هذا لن يعمل:
ls * .gz | موازى -q "زكات {} >{.} "
ls * .gz | موازى -q "زكات {} | bzip2 >{.}. bz2 "
لأن> و | يجب أن يفسرها الغلاف الفرعي.
إذا حصلت على أخطاء مثل:
sh: -c: سطر 0: خطأ في بناء الجملة بالقرب من رمز غير متوقع
sh: خطأ في بناء الجملة: سلسلة مقتبسة لم يتم إنهاؤها
sh: -c: السطر 0: EOF غير متوقع أثناء البحث عن مطابقة ""
sh: -c: السطر 1: خطأ في بناء الجملة: نهاية غير متوقعة للملف
ثم يمكنك محاولة استخدام -q.
إذا كنت تستخدم سحق عملية استبدال مثل <(قطة فو) ثم يمكنك المحاولة -q
قيد الانتظار أمر مع سحق -c:
ls | موازى -q سحق -c 'مرحاض -c <(صدى {}) '
أو لاستبدال الإخراج:
ls | موازى -q سحق -c 'قطران c {} | نقطة الإنطلاق >(gzip >{} .tar.gz) | bzip2 >{} .tar.bz2 "
وفي الختام: لتجنب التعامل مع مشاكل الاقتباس ، قد يكون من الأسهل كتابة أ
نص صغير أو وظيفة (تذكر أن تصدير -f الوظيفة) ولديها جنو موازى دعوة
أن.
قائمة الركض و المشي وظائف
إذا كنت تريد قائمة الوظائف قيد التشغيل حاليًا ، فيمكنك تشغيل:
اقتل الكل -USR1 موازى
جنو موازى سيقوم بعد ذلك بطباعة المهام قيد التشغيل حاليًا على stderr (خطأ قياسي).
كامل الركض و المشي وظائف لكن DO لا إبدأ جديد وظائف
إذا ندمت على بدء الكثير من الوظائف ، يمكنك ببساطة كسر غنو موازى، ولكن إذا كنت ترغب في ذلك
تأكد من عدم وجود وظائف نصف مكتملة يجب عليك إرسال الإشارة سيغرم إلى GNU
موازى:
اقتل الكل -مصطلح موازى
هذا سيخبر جنو موازى لعدم بدء أي وظائف جديدة ، ولكن انتظر حتى الوقت الحالي
يتم الانتهاء من تشغيل المهام قبل الخروج.
البيئة المتغيرات
PARALLEL_PID دولار
تم تعيين متغير البيئة $ PARALLEL_PID بواسطة GNU موازى ويكون مرئيًا لـ
بدأت الوظائف من جنو موازى. هذا يجعل من الممكن للوظائف
التواصل مباشرة مع جنو موازى. تذكر أن تقتبس من $ ، حتى تحصل عليه
تم تقييمه بواسطة الغلاف الصحيح.
على سبيل المثال: إذا اختبرت كل وظيفة حلاً ووجدت إحدى الوظائف الحل
يمكن للوظيفة أن تخبر جنو موازى عدم بدء المزيد من الوظائف من خلال: قتل -مصطلح
PARALLEL_PID دولار. هذا يعمل فقط على الكمبيوتر المحلي.
$ PARALLEL_SHELL (اختبار ألفا)
استخدم shell shell للأوامر التي يديرها GNU Parallel:
· $ PARALLEL_SHELL. في حالة الاستخدام غير المحدد:
· الصدفة التي بدأت تشغيل GNU Parallel. إذا تعذر تحديد ذلك:
· شل دولار. في حالة الاستخدام غير المحدد:
· / بن / ش
PARALLEL_SEQ دولار
سيتم تعيين $ PARALLEL_SEQ على الرقم التسلسلي للمهمة قيد التشغيل. تذكر أن
اقتبس $ ، بحيث يتم تقييمها من خلال الصدفة الصحيحة.
على سبيل المثال:
يليها 10 | موازى -N2 صدى seq: '$' PARALLEL_SEQ arg1: {1} arg2: {2}
دليل TMPDIR $ للملفات المؤقتة. يرى: --تمبدير.
موازية $
سيتم استخدام متغير البيئة $ PARALLEL كخيارات افتراضية لـ GNU
موازى. إذا كان المتغير يحتوي على أحرف صدفة خاصة (مثل $ أو * أو مسافة)
ثم هذه يجب أن تهرب مع \.
على سبيل المثال:
قط الإدارية | موازى -j1 -k -v ls
يمكن كتابتها على النحو التالي:
قط الإدارية | موازية = "- kvj1" موازى ls
قط الإدارية | موازى -j1 -k -v -S "myssh مستخدم @ الخادم " ls
يمكن كتابتها على النحو التالي:
قط الإدارية | موازية = '- kvj1 -S myssh \ مستخدم @ الخادم " موازى صدى
لاحظ أن \ في المنتصف مطلوب لأن "myssh" و "user @ server" يجب أن يكونا كذلك
حجة واحدة.
DEFAULT الملف الشخصي (تكوين ملف)
ملف التكوين العام / etc /allel / config ، متبوعًا بملف تكوين المستخدم
~ /. Parallel / config (المعروفة سابقًا باسم .parallelrc) ستتم قراءتها بدورها إذا كانت موجودة.
سيتم تجاهل الأسطر التي تبدأ بـ "#". يمكن أن يتبع التنسيق تنسيق البيئة
متغير $ PARALLEL ، ولكن غالبًا ما يكون من الأسهل وضع كل خيار في السطر الخاص به.
الخيارات الموجودة في سطر الأوامر لها الأسبقية ، متبوعة بمتغير البيئة
$ موازية ، ملف تكوين المستخدم ~ /. Parallel / config، وأخيرًا العالمية
ملف التكوين / etc /allel / config.
لاحظ أنه لا يجوز لأي ملف تتم قراءته للحصول على خيارات ، ولا متغير البيئة $ PARALLEL
تحتوي على خيارات متقاعدة مثل - تولليف.
الملف الشخصي FILES
If --الملف الشخصي مجموعة ، جنو موازى سيقرأ الملف الشخصي من هذا الملف بدلاً من الملف العام
أو ملفات تكوين المستخدم. يمكن أن يكون لديك عدة ملفات --مظهر.
مثال: ملف تعريف لتشغيل أمر على كل sshlogin في ~ / .ssh / sshlogins والكرامة
الإخراج باستخدام sshlogin:
صدى - علامة - S .. - غير الكل> ~ /. متوازي / ن
موازية -Jn الجهوزية
مثال: ملف تعريف لتشغيل كل أمر بامتداد -ج -1 رحلة جميلة
صدى -j-1 لطيف> ~ /. Parallel / nice_profile
موازية -J nice_profile bzip2 -9 ::: *
مثال: ملف تعريف لتشغيل برنامج نصي perl قبل كل أمر:
صدى "perl -e '\ $ a = \ $ \ $؛ print \ $ a، \" \ "،' \ $ PARALLEL_SEQ '، \" \ "؛'؛" > ~ /. Parallel / pre_perl
موازٍ -J pre_perl صدى ::: *
لاحظ كيف أن $ و "يجب أن يتم اقتباسهما باستخدام \.
مثال: ملف تعريف لتشغيل المهام الموزعة باستخدام رحلة جميلة على أجهزة الكمبيوتر البعيدة:
صدى -S .. لطيف> ~ /. Parallel / dist
متوازي -J dist --trc {.}. bz2 bzip2 -9 ::: *
EXIT الوضع
If --هالت عند الخطأ 0 أو غير محدد:
0 ركضت جميع الوظائف بدون أخطاء.
1-253 فشلت بعض الوظائف. تعطي حالة الخروج عدد المهام الفاشلة
254 فشل أكثر من 253 مهمة.
255 خطأ آخر.
If --هالت عند الخطأ 1 أو 2: حالة الخروج من الوظيفة الفاشلة.
اختلافات بين جنو موازية لأي لبس ALTERNATIVES
هناك الكثير من البرامج مع بعض وظائف جنو موازى. جنو موازى
تسعى جاهدة لتضمين أفضل الوظائف دون التضحية بسهولة الاستخدام.
ملخص الجدول
الميزات التالية موجودة في بعض الأدوات المماثلة:
المدخلات
أنا 1. يمكن قراءة الحجج من stdin
أنا 2. يمكن قراءة الحجج من ملف
I3. يمكن قراءة الحجج من ملفات متعددة
I4. يمكن قراءة الحجج من سطر الأوامر
I5. يمكن قراءة الحجج من الجدول
أنا 6. يمكن قراءة الحجج من نفس الملف باستخدام #! (كوخ)
I7. الإدخال الموجه للسطر كإعداد افتراضي (لا يلزم اقتباس أحرف خاصة)
التلاعب في المدخلات
م 1. أمر مؤلف
م 2. يمكن أن تملأ الوسائط المتعددة سطر التنفيذ
م 3. يمكن وضع الحجج في أي مكان في سطر التنفيذ
م 4. يمكن وضع وسائط متعددة في أي مكان في سطر التنفيذ
م 5. يمكن استبدال الحجج بالسياق
م 6. يمكن التعامل مع المدخلات كسطر تنفيذ كامل
النواتج
O1. تجميع الإخراج بحيث لا يختلط الإخراج من الوظائف المختلفة
O2. أرسل stderr (خطأ معياري) إلى stderr (خطأ معياري)
O3. إرسال stdout (الإخراج القياسي) إلى stdout (الإخراج القياسي)
O4. يمكن أن يكون ترتيب الإخراج هو نفسه ترتيب الإدخال
O5. يحتوي Stdout فقط على stdout (الإخراج القياسي) من الأمر
O6. يحتوي Stderr فقط على stderr (خطأ قياسي) من الأمر
التنفيذ
ه 1. تشغيل الوظائف بالتوازي
ه 2. قائمة الوظائف الجارية
ه 3. قم بإنهاء تشغيل الوظائف ، لكن لا تبدأ وظائف جديدة
ه 4. يمكن أن يعتمد عدد المهام الجارية على عدد وحدات المعالجة المركزية
ه 5. قم بإنهاء تشغيل الوظائف ، ولكن لا تبدأ وظائف جديدة بعد الفشل الأول
ه 6. يمكن تعديل عدد المهام الجارية أثناء التشغيل
التنفيذ عن بعد
R1. يمكن تشغيل الوظائف على أجهزة الكمبيوتر البعيدة
R2. يمكن نقل ملفات الأساس
R3. يمكن نقل ملفات الوسيطة
R4. يمكن نقل الملفات الناتجة
R5. تنظيف الملفات المنقولة
R6. لا حاجة لملفات التكوين
R7. لا تقم بتشغيل أكثر مما تستطيع MaxStartups SSHD التعامل معها
R8. أمر SSH قابل للتكوين
R9. أعد المحاولة إذا انقطع الاتصال من حين لآخر
الملوحة جهاز
S1. إمكانية العمل ككائن
S2. إمكانية العمل كإشارة عد
أسطورة
- = لا
س = لا ينطبق
المعرف = نعم
نظرًا لأن كل إصدار جديد من البرامج لم يتم اختباره ، فقد يكون الجدول قديمًا. يرجى تقديم ملف
تقرير خطأ إذا وجدت أخطاء (انظر الإبلاغ عن الأخطاء).
متوازي: I1 I2 I3 I4 I5 I6 I7 M1 M2 M3 M4 M5 M6 O1 O2 O3 O4 O5 O6 E1 E2 E3 E4 E5 E6 R1 R2
R3 R4 R5 R6 R7 R8 R9 S1 S2
xargs: I1 I2 - - - - - - - M2 M3 - - - - O2 O3 - O5 O6 E1 - - - - - - - - -
- س - - - - - -
العثور على -exec: - - - x - x - - M2 M3 - - - - - O2 O3 O4 O5 O6 - - - - - - -
- - - - - - - - - - xx
صنع -j: - - - - - - - - - - - - - O1 O2 O3 - x O6 E1 - - - E5 - - - -
- - - - - - - -
ppss: I1 I2 - - - - I7 M1 - M3 - - M6 O1 - - x - - E1 E2؟ E3 E4 - - R1 R2 R3 R4
- -؟ R7؟ ؟ - -
بيكسيك: I1 I2 - I4 I5 - - M1 - M3 - - M6 O1 O2 O3 - O5 O6 E1 - - E4 - E6 R1 - -
- - ر6 - - - س1 -
xjobs: TODO - يرجى تقديم تقرير خطأ إذا كنت تعرف الميزات التي يدعمها xjobs (انظر
الإبلاغ عن الأخطاء).
prll: TODO - يرجى تقديم تقرير بالأخطاء إذا كنت تعرف الميزات التي يدعمها prll (انظر
الإبلاغ عن الأخطاء).
dxargs: TODO - يرجى تقديم تقرير خطأ إذا كنت تعرف الميزات التي يدعمها dxargs (انظر
الإبلاغ عن الأخطاء).
mdm / middelman: TODO - الرجاء تقديم تقرير خطأ إذا كنت تعرف ما هي الميزات mdm / middelman
يدعم (انظر الإبلاغ عن البق).
xapply: TODO - يرجى تقديم تقرير بالأخطاء إذا كنت تعرف الميزات التي يدعمها xapply (انظر
الإبلاغ عن الأخطاء).
paexec: TODO - يرجى تقديم تقرير خطأ إذا كنت تعرف الميزات التي يدعمها paexec (انظر
الإبلاغ عن الأخطاء).
ladon: TODO - يرجى تقديم تقرير بالأخطاء إذا كنت تعرف الميزات التي يدعمها ladon (انظر
الإبلاغ عن الأخطاء).
ClusterSSH: TODO - يرجى تقديم تقرير خطأ إذا كنت تعرف الميزات التي يدعمها ClusterSSH
(انظر الإبلاغ عن البق).
اختلافات بين com.xargs لأي لبس جنو موازية
com.xargs يقدم بعض من نفس الاحتمالات مثل جنو موازى.
com.xargs يتعامل بشكل سيء مع الأحرف الخاصة (مثل مسافة ، "و"). لمشاهدة المشكلة ، حاول
هذه:
المس ملف هام
المس "not important_file"
ليس * | xargs جمهورية مقدونيا
mkdir -p "سجلات أخي 12 \"
ls | xargs رمدير
يمكنك تحديد -0 or -d "\ن"، ولكن لم يتم تحسين العديد من مولدات الإدخال للاستخدام NUL
كفاصل ولكن تم تحسينه ل خط جديد كفاصل. على سبيل المثال رئيس, ذيل, AWK, ls, صدى,
عطش, قطران -v, بيرل (-0 و \ 0 بدلاً من \ n) ، حدد (يتطلب استخدام -0), جد (يتطلب
استخدام -طباعة 0), البقرى (يتطلب استخدام المستخدم -z or -Z), sort (يتطلب استخدام -z).
إذن جنو موازىيمكن محاكاة فصل السطر الجديد الخاص بـ:
قط | com.xargs -d "\ن" -ن1 أمر
com.xargs يمكنه تشغيل عدد معين من الوظائف بالتوازي ، ولكن ليس لديه دعم لعدد التشغيل-
من وظائف cpu-corees بالتوازي.
com.xargs ليس لديه دعم لتجميع المخرجات ، لذلك قد يتم تشغيل الإخراج معًا ، على سبيل المثال
النصف الأول من السطر من عملية والنصف الأخير من السطر من عملية أخرى
عملية. المثال موازية البقرى لا يمكن أن يتم بشكل موثوق به مع com.xargs و لهذا. ل
شاهد هذا في العمل جرب:
متوازي perl -e '\ $ a = \ "1 {} \" x10000000 \؛ print \ \ $ a، \ "\\ n \"' '>' {} ::: abcdef
ls -labcdef
متوازي- kP4 -n1 grep 1> out.par ::: abcdef
صدى abcdef | xargs -P4 -n1 grep 1> out.xargs-unsuf
صدى abcdef | xargs -P4 -n1 grep --line-buffered 1> out.xargs-linebuf
صدى abcdef | xargs -n1 grep 1> out.xargs-serial
ls -l خارج *
md5sum خرج *
com.xargs ليس لديه دعم للحفاظ على ترتيب الإخراج ، لذلك إذا كانت الوظائف قيد التشغيل في
بالتوازي باستخدام com.xargs لا يمكن تأجيل إخراج الوظيفة الثانية حتى الوظيفة الأولى
تم.
com.xargs ليس لديه دعم لتشغيل المهام على أجهزة الكمبيوتر البعيدة.
com.xargs ليس لديه دعم لاستبدال السياق ، لذلك سيكون عليك إنشاء الحجج.
إذا كنت تستخدم سلسلة استبدال في com.xargs (-I) لا يمكنك القوة com.xargs لاستخدام أكثر من واحد
جدال.
نقلا في com.xargs يعمل مثل -q في جنو موازى. هذا يعني الأوامر المركبة و
تتطلب إعادة التوجيه استخدام سحق -c.
ls | موازى "مرحاض {} > {}.مرحاض"
يصبح (على افتراض أن لديك 8 نوى)
ls | com.xargs -d "\ن" - ص 8 -I {} سحق -c "مرحاض {} > {}.مرحاض"
ls | موازى "صدى صوت {} ؛ ls {} | مرحاض "
يصبح (على افتراض أن لديك 8 نوى)
ls | com.xargs -d "\ن" - ص 8 -I {} سحق -c "صدى صوت {} ؛ ls {} | مرحاض "
اختلافات بين جد إكسيك لأي لبس جنو موازية
جد إكسيك تقدم بعض من نفس الاحتمالات مثل جنو موازى.
جد إكسيك يعمل فقط على الملفات. لذا فإن معالجة المدخلات الأخرى (مثل المضيفين أو عناوين URL) ستفعل
تتطلب إنشاء هذه المدخلات كملفات. جد إكسيك ليس لديه دعم لتشغيل الأوامر في
موازى.
اختلافات بين جعل -j لأي لبس جنو موازية
جعل -j يمكنه تشغيل الوظائف بالتوازي ، ولكنه يتطلب Makefile معدًا للقيام بذلك. أن النتائج
في الاقتباس الإضافي للحصول على اسم ملف يحتوي على سطر جديد للعمل بشكل صحيح.
جعل -j ليس لديه دعم لتجميع المخرجات ، لذلك قد يتم تشغيل الإخراج معًا ، على سبيل المثال
النصف الأول من السطر من عملية والنصف الأخير من السطر من عملية أخرى
عملية. المثال موازية البقرى لا يمكن أن يتم بشكل موثوق به مع جعل -j و لهذا.
(إصدارات قديمة جدًا من جنو موازى تم تنفيذها بالصدفة باستخدام جعل -j).
اختلافات بين ppss لأي لبس جنو موازية
ppss هي أيضًا أداة لتشغيل المهام بالتوازي.
إخراج ppss هي معلومات الحالة وبالتالي فهي غير مفيدة لاستخدامها كمدخلات لـ
أمر آخر. يتم وضع مخرجات المهام في ملفات.
لا يمكن تغيير سلسلة استبدال الوسيطة ($ ITEM). يجب اقتباس الحجج - هكذا
الوسيطات التي تحتوي على أحرف خاصة (مسافة '"&! *) قد تسبب مشاكل. أكثر من واحدة
الحجة غير معتمدة. لا تتم معالجة أسماء الملفات التي تحتوي على أسطر جديدة بشكل صحيح.
عند قراءة المدخلات من ملف لا يمكن استخدام القيمة الفارغة كمنهي. ppss يحتاج إلى قراءة
ملف الإدخال بالكامل قبل البدء في أي عمل.
يتم تخزين معلومات الإخراج والحالة في ppss_dir وبالتالي تتطلب التنظيف عند
مكتمل. إذا لم يتم إزالة الدير قبل الجري ppss مرة أخرى قد لا يسبب أي شيء
يحدث ك ppss يعتقد أن المهمة قد تم بالفعل. جنو موازى عادة لا تحتاج
التنظيف إذا كان يعمل محليًا وسيحتاج فقط إلى التنظيف إذا تم إيقافه بشكل غير طبيعي و
تشغيل عن بعد (--تنظيف قد لا تكتمل إذا توقفت بشكل غير طبيعي). المثال موازية
البقرى سيتطلب معالجة لاحقة إضافية إذا كتب باستخدام ppss.
بالنسبة للأنظمة البعيدة ، تتطلب PPSS 3 خطوات: التكوين والنشر والبدء. جنو موازى فقط
يتطلب خطوة واحدة.
أمثلة من عند ppss MANUAL
هنا أمثلة من ppssصفحة دليل المستخدم مع ما يعادلها باستخدام GNU موازى:
1 ./ppss.sh standalone -d / path / to / files -c "gzip"
1 البحث / المسار / إلى / الملفات - النوع و | موازية gzip
2 ./ppss.sh standalone -d / path / to / files -c 'cp "$ ITEM" / destination / dir'
2 البحث / المسار / إلى / الملفات - النوع و | متوازي cp {} / destination / dir
3 ./ppss.sh قائمة بذاتها -f list-of-urls.txt -c 'wget -q'
3 متوازي - قائمة من urls.txt wget -q
4 ./ppss.sh مستقل -f list-of-urls.txt -c 'wget -q "$ ITEM"'
4 متوازي-قائمة-urls.txt wget -q {}
5 ./ppss config -C config.cfg -c 'encode.sh' -d / source / dir -m 192.168.1.100 -u ppss -k
ppss-key.key -S ./encode.sh -n nodes.txt -o / some / output / dir --upload --download ؛ ./ppss
نشر -C config.cfg ؛ ./ppss start -C config
5 # المتوازي لا يستخدم التكوينات. إذا كنت تريد اسم مستخدم مختلفًا ، فضعه في nodes.txt:
user @ hostname
5 البحث عن المصدر / dir -type f | متوازي - sshloginfile nodes.txt --trc {.}. mp3 lame -a {} -o
{.}. mp3 - قياسي - هادئ
6 ./ppss stop -C config.cfg
6 killall -TERM موازية
7 ./ppss وقفة -C config.cfg
7 اضغط: CTRL-Z أو killall -SIGTSTP بالتوازي
8 ./ppss متابعة -C config.cfg
8 أدخل: fg or killall -SIGCONT بالتوازي
9 حالة ./ppss.sh -C config.cfg
9 killall -SIGUSR2 بالتوازي
اختلافات بين بيكسيك لأي لبس جنو موازية
بيكسيك هي أيضًا أداة لتشغيل المهام بالتوازي.
أمثلة من عند بيكسيك MANUAL
هنا أمثلة من بيكسيكصفحة المعلومات مع ما يعادلها باستخدام GNU موازى:
1 pexec -o sqrt-٪ s.dat -p "$ (seq 10)" -e NUM -n 4 -c - \
'echo "scale = 10000؛ sqrt ($ NUM)" | قبل الميلاد'
1 seq 10 | متوازي -j4 'echo "scale = 10000 ؛ sqrt ({})" | bc> sqrt - {}. dat '
2 pexec -p "$ (ls myfiles * .ext)" -i٪ s -o٪ s.sort - فرز
2 ls myfiles * .ext | فرز متوازي {} "> {}. فرز"
3 pexec -f image.list -n auto -e B -u star.log -c - \
"fistar $ B. يناسب -f 100 -F id ، x ، y ، flux -o $ B.star ''
3 متوازي - صورة. قائمة \
'fistar {} .fits -f 100 -F id، x، y، flux -o {} .star' 2> star.log
4 pexec -r * .png -e IMG -c -o - - \
تحويل $ IMG $ {IMG٪ .png} .jpeg؛ "صدى $ IMG: تم" "
4 ls * .png | متوازي 'تحويل {} {.}. jpeg؛ صدى {}: تم
5 pexec -r * .png -i٪ s -o٪ s.jpg -c 'pngtopnm | pnmtojpeg '
5 ls * .png | موازية 'pngtopnm <{} | pnmtojpeg> {} .jpg '
6 لـ p in * .png ؛ صدى $ {p٪ .png}؛ تم | \
pexec -f - -i٪ s.png -o٪ s.jpg -c 'pngtopnm | pnmtojpeg '
6 ls * .png | موازية 'pngtopnm <{} | pnmtojpeg> {.}. jpg '
7 LIST = $ (لـ p in * .png ؛ قم بالتردد $ {p٪ .png} ؛ تم)
pexec -r $ LIST -i٪ s.png -o٪ s.jpg -c 'pngtopnm | pnmtojpeg '
7 ls * .png | موازية 'pngtopnm <{} | pnmtojpeg> {.}. jpg '
8 pexec -n 8 -r * .jpg -y unix -e IMG -c \
'pexec -j -m blockread -d $ IMG | \
جبغتوبنم | مقياس pnm 0.5 | بمتوجج | \
pexec -j -m blockwrite -s th_ $ IMG '
8 الجمع بين GNU موازى وجنو بدون.
8 ls * jpg | متوازي -j8 'sem --id blockread cat {} | jpegtopnm | ' \
'pnmscale 0.5 | pnmtojpeg | sem --id blockwrite cat> th_ {} '
8 إذا تمت القراءة والكتابة على نفس القرص ، فقد يكون هذا أسرع كعملية واحدة فقط
ستكون إما القراءة أو الكتابة:
8 ls * jpg | متوازي -j8 'sem --id diskio cat {} | jpegtopnm | ' \
'pnmscale 0.5 | pnmtojpeg | sem --id diskio cat> th_ {} '
اختلافات بين com.xjobs لأي لبس جنو موازية
com.xjobs هي أيضًا أداة لتشغيل المهام بالتوازي. انها تدعم فقط تشغيل المهام على الخاص بك
الكمبيوتر المحلي.
com.xjobs يتعامل بشكل سيء مع الشخصيات الخاصة تمامًا مثل com.xargs. انظر القسم اختلافات
بين com.xargs لأي لبس جنو موازية.
هنا أمثلة من com.xjobsصفحة الدليل الخاصة بـ مع ما يعادلها باستخدام GNU موازى:
1 ls -1 * .zip | xjobs بفك ضغط
1 ls * .zip | بالتوازي بفك الضغط
2 ls -1 * .zip | xjobs -n بفك ضغط
2 ls * .zip | فك الضغط المتوازي> / dev / null
3 يجد . -name '* .bak' | xjobs gzip
3 يجد . -name '* .bak' | موازية gzip
4 ls -1 * .jar | sed 's / \ (. * \) / \ 1> \ 1.idx /' | xjobs جرة tf
4 ls * .jar | جرة متوازية tf {} '>' {} .idx
5 xjobs النصي
5 نص القط | موازي
6 mkfifo / var / run / my_apped_pipe ؛ xjobs -s / var / run / my_itled_pipe & echo unzip 1.zip >>
/ var / run / my_igned_pipe؛ echo tar cf /backup/myhome.tar / home / me >> / var / run / my_apped_pipe
6 mkfifo / var / run / my_apped_pipe ؛ قطة / فار / تشغيل / my_igned_pipe | متوازي وصدى بفك ضغط 1.zip
>> / var / run / my_igned_pipe ؛ echo tar cf /backup/myhome.tar / home / me >>
/ var / run / my_igned_pipe
اختلافات بين prll لأي لبس جنو موازية
prll هي أيضًا أداة لتشغيل المهام بالتوازي. لا يدعم تشغيل الوظائف على
أجهزة الكمبيوتر البعيدة.
prll يشجع على استخدام الأسماء المستعارة BASH ووظائف BASH بدلاً من البرامج النصية. جنو موازى
لن يدعم تشغيل الأسماء المستعارة أبدًا (انظر لماذا
http://www.perlmonks.org/index.pl؟ node_id = 484296). ومع ذلك ، فإن النصوص والأوامر المكونة أو
الوظائف المصدرة مع تصدير -f تعمل بشكل جيد.
prll يولد الكثير من معلومات الحالة على stderr (خطأ معياري) مما يجعله
من الصعب استخدام إخراج stderr (خطأ معياري) للوظيفة مباشرة كمدخل لمدخل آخر
برنامج.
هنا مثال من prllصفحة الدليل الخاصة بـ مع ما يعادلها باستخدام GNU موازى:
prll -s 'mogrify -flip $ 1' * .jpg
موازية mogrify -flip ::: * .jpg
اختلافات بين دكسارجس لأي لبس جنو موازية
دكسارجس هي أيضًا أداة لتشغيل المهام بالتوازي.
دكسارجس لا يتعامل بشكل جيد مع وظائف متزامنة أكثر من MaxStartups SSHD. دكسارجس is
مصمم فقط لمهام التشغيل عن بُعد ، ولكنه لا يدعم نقل الملفات.
اختلافات بين mdm / وسيط لأي لبس جنو موازية
وسيط(mdm) هي أيضًا أداة لتشغيل المهام بالتوازي.
فيما يلي نصوص قذائف http://mdm.berlios.de/usage.html استدار إلى جنو موازى:
يليها 19 | موازى بوفون -o - | sort -n > نتيجة
قط ملفات | موازى كمد
جد دير - execdir بدون كمد {} \;
اختلافات بين com.xapply لأي لبس جنو موازية
com.xapply يمكن تشغيل الوظائف بالتوازي على الكمبيوتر المحلي.
هنا أمثلة من com.xapplyصفحة الدليل الخاصة بـ مع ما يعادلها باستخدام GNU موازى:
1 xapply '(cd٪ 1 && make all)' * /
1 متوازي 'cd {} && make all' ::: * /
2 بيان xapply -f 'diff٪ 1 ../version5/٪1' | أكثر
2 فرق متوازي {} ../ الإصدار 5 / {} <بيان | أكثر
3 xapply -p / dev / null -f 'diff٪ 1٪ 2' قائمة التحقق 1
3 موازٍ - xapply diff {1} {2} :::: manifest1 checklist1
4 xapply "مسافة بادئة" * .c
4 مسافة بادئة متوازية ::: * .c
5 البحث عن ~ ksb / bin -type f! -طباعة -111 | xapply -f -v 'chmod a + x' -
5 البحث عن ~ ksb / bin -type f! -طباعة -111 | متوازي- v chmod a + x
6 تجد * / -... | fmt 960 1024 | xapply -f -i / dev / tty "vi" -
6 sh <(بحث * / -... | موازٍ لـ 1024 صدى vi)
6 تجد * / -... | متوازي- s 1024 -Xuj1 سادسا
7 تجد ... | xapply -f -5 -i / dev / tty 'vi' - - - - -
7 sh <(بحث ... | متوازي n5 صدى السادس)
7 تجد ... | متوازي n5 -uj1 vi
8 xapply -fn "" / الخ / باسود
8 صدى مواز -k / الخ / باسود
9 tr ': "\ 012" / الخ / باسود | xapply -7 -nf 'chown٪ 1٪ 6' - - - - - - -
9 tr ': "\ 012" / الخ / باسود | متوازي- N7 تشون {1} {6}
10 xapply '[-d٪ 1 / RCS] || صدى٪ 1 '* /
10 موازية '[-d {} / RCS] || صدى صوت {}' ::: */
11 xapply -f '[-f٪ 1] && echo٪ 1' List | ...
11 متوازي '[-f {}] && echo {}' <قائمة | ...
اختلافات بين باكسيك لأي لبس جنو موازية
باكسيك يمكن تشغيل الوظائف بالتوازي على كل من أجهزة الكمبيوتر المحلية والبعيدة.
باكسيك يتطلب أوامر لطباعة سطر فارغ كإخراج أخير. هذا يعني أنك ستفعل
يجب أن تكتب غلافًا لمعظم البرامج.
باكسيك لديه تسهيلات تبعية للوظيفة ، لذا يمكن أن تعتمد الوظيفة على وظيفة أخرى ليتم تنفيذها
بنجاح. نوع من رجل فقير جعل.
هنا أمثلة من باكسيككتالوج المثال الخاص بـ GNU مع ما يعادله
موازى:
1_div_X_run:
../../paexec -s -l -c "` pwd` / 1_div_X_cmd "-n +1 <
صدى مواز {} '|' "pwd" / 1_div_X_cmd <
all_substr_run:
../../paexec -lp -c "` pwd` / all_substr_cmd "-n +3 <
صدى مواز {} '|' "pwd" / all_substr_cmd <
cc_wrapper_run:
../../paexec -c "env CC = gcc CFLAGS = -O2` pwd` / cc_wrapper_cmd "\
-n 'host1 host2' \
-t '/ البيرة / بن / ssh -x '<
صدى مواز {} '|' "env CC = gcc CFLAGS = -O2` pwd` / cc_wrapper_cmd "\
-S host1 ، host2 <
# هذا ليس هو نفسه تمامًا ، ولكنه يتجنب الغلاف
متوازي دول مجلس التعاون الخليجي -O2 -c -o {.}. o {} \
-S host1 ، host2 <
toupper_run:
../../paexec -lp -c "` pwd` / toupper_cmd "-n +10 <
صدى مواز {} '|' ./toupper_cmd <
# بدون الغلاف:
صدى مواز {} '| awk {print \ toupper \ (\ $ 0 \)} '<
اختلافات بين رسم خريطة لأي لبس جنو موازية
رسم خريطة يراها كميزة تحتوي على ميزات أقل وفي القيام بذلك ، فإنه يتعامل أيضًا مع الزاوية
الحالات بشكل غير صحيح. الكثير من غنو موازىهو رمز التعامل مع حالات الزاوية بشكل صحيح في
كل منصة ، لذلك لن تحصل على مفاجأة سيئة إذا قام المستخدم على سبيل المثال بحفظ ملف
اتصل: My الإخوة 12 " السجلات. txt
رسم خريطةمثال يوضح كيفية التعامل مع فشل الأحرف الخاصة على الأحرف الخاصة:
صدى "العلاج"> سجلات \ 12 \ "\ أخي
ls | الخريطة 'echo -n `gzip <"٪ "| مرحاض -c` ؛ صدى -n '* 100 /' ؛ wc -c <"٪" '| قبل الميلاد
إنه يعمل مع جنو موازى:
ls | موازية 'echo -n `gzip <{} | مرحاض -c` ؛ صدى -n '* 100 /' ؛ wc -c <{} '| قبل الميلاد
ويمكنك أيضًا إضافة اسم الملف مسبقًا:
ls | متوازي --tag '(echo -n `gzip <{} | wc -c`' * 100 / '؛ wc -c <{}) | قبل الميلاد'
رسم خريطة ليس لديه دعم للتجميع. لذا فإن هذا يعطي نتائج خاطئة دون أي تحذيرات:
متوازي perl -e '\ $ a = \ "1 {} \" x10000000 \؛ print \ \ $ a، \ "\\ n \"' '>' {} ::: abcdef
ls -labcdef
متوازي- kP4 -n1 grep 1> out.par ::: abcdef
map -p 4 'grep 1' abcdef> out.map-unsuf
map -p 4 'grep --line-buffered 1' abcdef> out.map-linebuf
map -p 1 'grep --line-buffered 1' abcdef> out.map-serial
ls -l خارج *
md5sum خرج *
توضح الوثائق حلاً بديلًا ، ولكن ليس فقط هذا المزيج stdout (الإخراج القياسي)
مع stderr (خطأ معياري) ، فإنه يفشل أيضًا تمامًا في وظائف معينة (وقد يكون كذلك
تعتبر أقل قابلية للقراءة):
صدى مواز -n {} ::: 1 2 3
map -p 4 'echo -n٪ 2> & 1 | sed -e "s / ^ / $$: /" '1 2 3 | فرز | قص -f2- -d:
رسم خريطة لا يمكن التعامل مع الخيارات المجمعة: رسم خريطة -VP 0 صدى فشل
رسم خريطة لا يحتوي على فاصل وسيطة في سطر الأوامر ، ولكنه يستخدم الوسيطة الأولى
كأمر. هذا يجعل الاقتباس أكثر صعوبة مما قد يؤثر مرة أخرى على قابلية القراءة. يقارن:
map -p 2 perl \\\ -ne \\\ \\\ '/ ^ \\\\ S + \\\\ s + \\\\ S + \\\ $ / \\\ و \\\ print \\\ \\\ $ ARGV ، \\\ "\\\\ n \\\" \\\' *
متوازي -q perl -ne '/ ^ \ S + \ s + \ S + $ / واطبع $ ARGV، "\ n"' ::: *
رسم خريطة يمكنه عمل وسيطات متعددة مع استبدال السياق ، ولكن ليس بدون سياق استبدال:
متوازي - xargs صدى 'BEGIN {' {} '} END' ::: 1 2 3
رسم خريطة لا يحدد قيمة الخروج وفقًا لفشل إحدى الوظائف:
موازية خطأ ::: 1 || فشل صدى المهمة
خريطة خاطئة 1 || صدى أبدا تشغيل
رسم خريطة يتطلب Perl v5.10.0 مما يجعل استخدامه أكثر صعوبة على الأنظمة القديمة.
رسم خريطة ليس لديه طريقة لاستخدام٪ في الأمر (GNU Parallel has -I to تحديد آخر
سلسلة الاستبدال من {}).
من تصمبم رسم خريطة هو الخيار غير متوافق مع com.xargs، ليس لديها تنفيذ عمل عن بعد ، أ
طريقة منظمة لحفظ النتائج ، مصادر إدخال متعددة ، مؤشر تقدم ، قابل للتكوين
محدد السجل (محدد المجال فقط) ، تسجيل الوظائف مع إمكانية الاستئناف ،
الاحتفاظ بالإخراج بنفس ترتيب الإدخال ، ومعالجة الأنابيب ، وديناميكيًا
المهلات.
اختلافات بين ادون لأي لبس جنو موازية
ادون يمكن تشغيل وظائف متعددة على الملفات بالتوازي.
ادون يعمل فقط على الملفات والطريقة الوحيدة لتحديد الملفات هي استخدام سلسلة glob المقتبسة
(مثل \ *. jpg). لا يمكن سرد الملفات يدويًا.
كسلاسل بديلة تستخدم FULLPATH DIRNAME BASENAME EXT RELDIR RELPATH
يمكن محاكاة هذه باستخدام GNU موازى من خلال وضع هذا ~ /. Parallel / config:
--rpl 'FULLPATH $ _ = :: shell_quote ($ _) ؛ اقضم بصوت عالي ($ _ = qx {readlink -f $ _}) ؛'
--rpl 'DIRNAME $ _ = :: shell_quote (:: dirname ($ _)) ؛ chomp ($ _ = qx {readlink -f $ _}) ؛'
--rpl 'BASENAME s:. * / ::؛ s: \. [^/.] + $ ::؛ '
--rpl 'EXT s:. * \. ::'
--rpl 'RELDIR $ _ = :: shell_quote ($ _) ؛ اقضم بصوت عالي (($ _، $ c) = qx {readlink -f $ _؛ pwd})؛ s: \ Q $ c / \ E ::؛ $ _ = :: dirname ($ _)؛'
--rpl 'RELPATH $ _ = :: shell_quote ($ _) ؛ اقضم بصوت عالي (($ _، $ c) = qx {readlink -f $ _؛ pwd})؛ s: \ Q $ c / \ E ::؛'
ادون يتعامل بشكل سيء مع أسماء الملفات التي تحتوي على "وسطر جديد ، ويفشل في إخراج أكبر
من 200 ألف:
ladon '*' - seq 36000 | مرحاض
أمثلة من عند ادون MANUAL
من المفترض أن يتم وضع "--rpl's أعلاه ~ /. Parallel / config وأنه يتم تشغيله
تحت القشرة التي تدعم الخفقان "**" (مثل zsh):
1 ladon "** / *. txt" - صدى RELPATH
1 صدى مواز RELPATH ::: ** / *. txt
2 لادون "~ / المستندات /** / *. pdf "- shasum FULLPATH> hashes.txt
2 موازي شاسوم كامل ::: ~ / المستندات /** / *. pdf> hashes.txt
3 ladon -m thumbs / RELDIR "** / *. jpg" loading = "lazy" - تحويل FULLPATH -thumbnail 100x100 ^-Gravity
مركز - تيار 100x100 إبهام / RELPATH
3 موازية mkdir -p الابهام / RELDIR \ ؛ تحويل FULLPATH - صورة مصغرة 100x100 ^ - مركز الجاذبية
-نسبة 100x100 إبهام / RELPATH ::: ** / *. jpg
4 لادون "~ / موسيقى /* .wav "- lame -V 2 FULLPATH DIRNAME / BASENAME.mp3
4 متوازي عرجاء -V 2 FULLPATH DIRNAME / BASENAME.mp3 ::: ~ / موسيقى /*
اختلافات بين الكتلة لأي لبس جنو موازية
ClusterSSH يحل مشكلة مختلفة عن GNU موازى.
يفتح ClusterSSH نافذة طرفية لكل كمبيوتر وباستخدام نافذة رئيسية يمكنك تشغيلها
نفس الأمر على جميع أجهزة الكمبيوتر. يستخدم هذا عادةً لإدارة العديد
أجهزة كمبيوتر متطابقة تقريبًا.
جنو موازى يدير نفس الأوامر (أو مختلفة) مع وسيطات مختلفة على التوازي
ربما باستخدام أجهزة الكمبيوتر البعيدة للمساعدة في الحوسبة. إذا تم إدراج أكثر من جهاز كمبيوتر في
-S جنو موازى يجوز فقط استخدام واحدة من هذه (على سبيل المثال ، إذا كان هناك 8 وظائف ليتم تشغيلها وواحدة
يحتوي الكمبيوتر على 8 نوى).
جنو موازى يمكن استخدامها كإصدار فقير من ClusterSSH:
موازى - نونال -S الخادم أ ، الخادم ب افعل اشياء فو شريط
استخدم خدمات onworks.net الموازية على الإنترنت