GNU/Linux >> Belajar Linux >  >> Linux

Gnu Paralel Vs &(Maksudku Latar Belakang) Vs Xargs -p?

Saya bingung tentang perbedaan atau keuntungan (jika ada) menjalankan serangkaian tugas di .sh skrip menggunakan GNU parallel

Misalnya. Jawaban Ole Tange:

parallel ./pngout -s0 {} R{} ::: *.png

daripada mengatakan perulangan melalui mereka menempatkan mereka di latar belakang & .

Misalnya. jawaban frostschutz:

#copied from the link for illustration
for stuff in things
do
( something
  with
  stuff ) &
done
wait # for all the something with stuff

Singkatnya, apakah mereka hanya berbeda secara sintaksis atau praktis? Dan jika praktis berbeda kapan saya harus menggunakan masing-masing?

Jawaban yang Diterima:

Menempatkan banyak pekerjaan di latar belakang adalah cara yang baik untuk menggunakan banyak inti dari satu mesin. parallel namun, memungkinkan Anda untuk menyebarkan pekerjaan di beberapa server jaringan Anda. Dari man parallel :

GNU parallel adalah alat shell untuk menjalankan pekerjaan secara paralel menggunakan
satu atau lebih komputer . Masukan tipikal adalah daftar
file, daftar host , daftar pengguna, daftar URL, atau daftar tabel.

Bahkan saat dijalankan di satu komputer, parallel memberi Anda kendali yang jauh lebih besar atas bagaimana pekerjaan Anda diparalelkan. Ambil contoh ini dari man halaman:

   To convert *.wav to *.mp3 using LAME running one process per CPU core
   run:

   parallel lame {} -o {.}.mp3 ::: *.wav

Oke, Anda bisa melakukan hal yang sama dengan

   for i in *wav; do lame "$i" -o "${i%.wav}.mp3" & done

Namun, itu lebih lama dan lebih rumit dan, yang lebih penting, akan meluncurkan pekerjaan sebanyak .wav file. Jika Anda menjalankan ini pada beberapa ribu file, kemungkinan akan membuat laptop biasa bertekuk lutut. parallel di sisi lain, akan meluncurkan satu pekerjaan per inti CPU dan menjaga semuanya tetap bagus dan rapi.

Pada dasarnya, parallel menawarkan Anda kemampuan untuk menyesuaikan bagaimana pekerjaan Anda dijalankan dan berapa banyak sumber daya yang tersedia yang harus mereka gunakan. Jika Anda benar-benar ingin melihat kekuatan alat ini, bacalah manualnya atau, paling tidak, contoh yang ditawarkannya.

Latar belakang sederhana benar-benar tidak memiliki tingkat kecanggihan yang bisa dibandingkan dengan paralel. Adapun cara parallel berbeda dari xargs , kerumunan GNU memberikan perincian yang bagus di sini. Beberapa poin yang lebih menonjol adalah:

  • xargs berurusan dengan karakter khusus (seperti spasi, ‘ dan “).
  • xargs dapat menjalankan sejumlah tugas tertentu secara paralel, tetapi tidak memiliki dukungan untuk menjalankan tugas dengan jumlah inti CPU secara paralel.
  • xargs tidak memiliki dukungan untuk mengelompokkan output, oleh karena itu output dapat berjalan bersama, mis. setengah baris pertama berasal dari satu proses dan setengah baris terakhir berasal dari proses lain.
  • xargs tidak memiliki dukungan untuk menjaga urutan output, oleh karena itu jika menjalankan pekerjaan secara paralel menggunakan xargs, output dari pekerjaan kedua tidak dapat ditunda hingga pekerjaan pertama selesai.
  • xargs tidak memiliki dukungan untuk menjalankan tugas di komputer jarak jauh.
  • xargs tidak mendukung penggantian konteks, jadi Anda harus membuat argumen.
Terkait:Apakah rangkaian RLC Paralel jika ada sumber tegangan di antara kapasitor dan induktor?
Linux
  1. Bg, Fg, &, Ctrl-Z – 5 Contoh Mengelola Pekerjaan Latar Belakang Unix

  2. Proses Linux di latar belakang - Berhenti bekerja?

  3. Apa arti titik setelah bit izin file?

  1. Paralel rsync menggunakan GNU Paralel

  2. Paralel GNU - dua parameter dari array sebagai parameter

  3. xargs yang dipisahkan baris baru

  1. Cara Mengelola Pekerjaan Latar Belakang Linux dengan Perintah fg dan bg

  2. Linux - Argumen Pasangan Paralel Gnu Dengan Argumen Input File?

  3. Cara menyalin file ke banyak direktori menggunakan perintah gnu cp