ทำไม (GNU) ขนานกันล้มเหลวอย่างเงียบ ๆ และฉันจะแก้ไขได้อย่างไร


15

ในสคริปต์ที่ใหญ่กว่าเพื่อประมวลผลข้อมูลการจำลองบางอย่างฉันมีบรรทัดต่อไปนี้:

parallel bnzip2 -- *.bz2

ซึ่งถ้าฉันเข้าใจparallelอย่างถูกต้อง (และฉันอาจไม่) ควรเรียกใช้เธรด n-core ของโปรแกรมผ่านไฟล์ทั้งหมดที่มีนามสกุลที่ระบุ bunzip2คุณอาจสังเกตเห็นว่าผมสะกดผิดคำสั่ง ฉันคาดหวังว่าจะมีคำเตือนหรือข้อความแสดงข้อผิดพลาดที่นี่ แต่ล้มเหลวอย่างเงียบ ๆ สิ่งนี้ตั้งใจหรือไม่ ฉันจะไม่ได้รับบิตนี้ในอนาคตได้อย่างไร

ปรับปรุง:

เป็นไปได้ว่าฉันparallelติดตั้งแตกต่างจากที่ฉันคิด:

> parallel --version`


parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
    for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
    run specified commands in parallel

หน้าคนของparallelในระบบของฉันให้:

 parallel(1)                                                        parallel(1)
NAME
       parallel - run programs in parallel
....
AUTHOR
   Tollef Fog Heen

ซึ่งดูเหมือนว่านี่ไม่ใช่รุ่น GNU


พิมพ์ข้อผิดพลาดบนระบบของฉัน สิ่งที่ไม่parallel --versionพูด? $ parallel bnzip2 -- * sh: bnzip2: command not found
มิเคล

GNU ขนานคือ "ลิขสิทธิ์ (C) 2010,2011,2012 Ole Tange, ole.tange.dkและมูลนิธิซอฟต์แวร์เสรี, Inc. " (ผู้แต่งคนเดียวกันตั้งแต่เริ่มก่อตั้ง)
Mat

คำตอบ:


20

คุณได้รับผลกระทบจากความสับสนกับโทลเลฟคู่ขนานจากสิ่งอื่น ๆ อีกมากมาย ดูhttps://www.gnu.org/software/parallel/history.html

คุณสามารถติดตั้ง GNU Parallel ได้ง่ายๆโดย:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

ดูวิดีโอแนะนำสำหรับ GNU Parallel เพื่อเรียนรู้เพิ่มเติม: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1


1
ทุกอย่างสมเหตุสมผลแล้ว! สำหรับเร็กคอร์ดบน Ubuntu 12 ตอนนี้apt-get install parallelจะดึง Tollef ของขนานไม่ใช่เวอร์ชั่น GNU ของคุณ ขอขอบคุณที่กรอกข้อมูลให้ฉัน
ติดยาเสพติด


12

(ฉันจะทำให้ความคิดเห็นนี้ แต่ฉันไม่มีสิทธิ์)

parallel --gnuคุณยังสามารถอาจจะเพียงแค่ใช้ คุณบอกว่า Ubuntu 12 (.04?) ใช้เวอร์ชันของ Tollef แต่จริง ๆ แล้วเป็นการใช้งาน gnu มันเป็นเพียงค่าเริ่มต้นของไวยากรณ์ของ Tollef โดยค่าเริ่มต้นด้วยเหตุผลบางประการ

ฉันเพิ่มalias parallel='parallel --gnu'ไปยังสคริปต์การเข้าสู่ระบบของฉันดังนั้นฉันไม่ต้องยุ่งกับมันอีกต่อไป


2
คุณยังสามารถเพิ่ม--gnu$ HOME / .parallel / config
Thor

หมายเหตุ: คำตอบที่นี่คือการแสดงความคิดเห็นจาก @Hooked
nobar

ดูที่นี่สำหรับอีกวิธีหนึ่งบวกรายละเอียดเพิ่มเติมเกี่ยวกับบิตรุ่น: askubuntu.com/a/298598/11522
nobar

1
Fedora ยังใส่ --tollef ใน / etc / parallel / configด้วย ถ้าเป็นที่ไม่น่ารังเกียจพอ GNU ขนานตัวเองรายงานว่า --tollef จะถูกลบออกใน 20140222
musicinmybrain
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.