คำถามติดแท็ก gnu-parallel

10
Bash FOR Loop
ฉันพยายามขนานสคริปต์ต่อไปนี้โดยเฉพาะอย่างยิ่งสำหรับอินสแตนซ์วนรอบทั้งสามของ FOR โดยใช้ GNU Parallel แต่ไม่สามารถทำได้ คำสั่ง 4 คำสั่งที่อยู่ในการวนซ้ำแบบ FOR ทำงานเป็นลำดับแต่ละลูปใช้เวลาประมาณ 10 นาที #!/bin/bash kar='KAR5' runList='run2 run3 run4' mkdir normFunc for run in $runList do fsl5.0-flirt -in $kar"deformed.nii.gz" -ref normtemp.nii.gz -omat $run".norm1.mat" -bins 256 -cost corratio -searchrx -90 90 -searchry -90 90 -searchrz -90 90 -dof 12 fsl5.0-flirt -in $run".poststats.nii.gz" …

1
GNU parallel vs & (ฉันหมายถึงพื้นหลัง) vs xargs -P
ฉันสับสนเกี่ยวกับความแตกต่างหรือข้อได้เปรียบ (ถ้ามี) ของการใช้งานชุดหนึ่งใน.shสคริปต์โดยใช้GNU parallel คำตอบของEg Ole Tange : parallel ./pngout -s0 {} R{} ::: *.png &แทนที่จะพูดบ่วงผ่านพวกเขาวางไว้ในพื้นหลัง คำตอบของFrostschutzเช่น: #copied from the link for illustration for stuff in things do ( something with stuff ) & done wait # for all the something with stuff ในระยะสั้นพวกเขามีเพียง syntactically หรือจริงแตกต่างกันอย่างไร และถ้าแตกต่างกันจริงเมื่อฉันควรใช้แต่ละ

6
rsync แบบขนานโดยใช้ GNU Parallel
ฉันใช้rsyncสคริปต์เพื่อซิงโครไนซ์ข้อมูลที่โฮสต์หนึ่งกับข้อมูลที่โฮสต์อื่น ข้อมูลมีไฟล์ขนาดเล็กจำนวนมากที่มีส่วนร่วมเกือบ 1.2TB เพื่อซิงค์ไฟล์เหล่านั้นฉันใช้rsyncคำสั่งดังต่อไปนี้: rsync -avzm --stats --human-readable --include-from proj.lst /data/projects REMOTEHOST:/data/ เนื้อหาของ proj.lst มีดังนี้: + proj1 + proj1/* + proj1/*/* + proj1/*/*/*.tar + proj1/*/*/*.pdf + proj2 + proj2/* + proj2/*/* + proj2/*/*/*.tar + proj2/*/*/*.pdf ... ... ... - * จากการทดสอบฉันเลือกสองโครงการ (ข้อมูล 8.5GB) และฉันดำเนินการคำสั่งด้านบน เป็นกระบวนการต่อเนื่องมันเครื่องมือ 14 นาที 58 วินาทีให้เสร็จสมบูรณ์ ดังนั้นสำหรับข้อมูล …

6
การใช้ขนานเพื่อประมวลผลไฟล์อินพุตเฉพาะไปยังไฟล์เอาต์พุตที่ไม่ซ้ำกัน
ฉันมีปัญหาการเขียนสคริปต์เชลล์ซึ่งฉันได้รับไดเรกทอรีที่เต็มไปด้วยไฟล์อินพุต (ไฟล์แต่ละไฟล์มีหลายบรรทัดอินพุต) และฉันจำเป็นต้องประมวลผลเป็นรายบุคคลโดยเปลี่ยนเส้นทางผลลัพธ์แต่ละไฟล์ไปเป็นไฟล์ที่ไม่ซ้ำกัน (aka, file_1.input ที่จะถูกจับใน file_1.output และอื่น ๆ ) พรีขนานฉันจะทำซ้ำแต่ละไฟล์ในไดเรกทอรีและดำเนินการคำสั่งของฉันในขณะที่ทำเทคนิคการจับเวลา / การเรียงลำดับบางอย่างเพื่อไม่เอาชนะโปรเซสเซอร์ (สมมติว่าแต่ละกระบวนการมีรันไทม์คงที่) อย่างไรก็ตามฉันรู้ว่ามันไม่ได้เป็นอย่างนั้นเสมอไปดังนั้นการใช้ "แบบขนาน" อย่างโซลูชันดูเหมือนจะเป็นวิธีที่ดีที่สุดในการรับเชลล์สคริปต์แบบมัลติเธรดโดยไม่ต้องเขียนโค้ดที่กำหนดเอง ในขณะที่ฉันคิดว่าจะใช้วิธีใดวิธีหนึ่งในการจัดการไฟล์เหล่านี้ (และทำให้ฉันสามารถจัดการคอร์ได้อย่างมีประสิทธิภาพ) พวกเขาทั้งหมดดูเหมือนแฮ็ค ฉันมีสิ่งที่ฉันคิดว่าเป็นกรณีการใช้งานที่ค่อนข้างง่ายดังนั้นฉันต้องการให้มันสะอาดที่สุดเท่าที่จะเป็นไปได้ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม! ตัวอย่างไดเรกทอรีอินพุต: > ls -l input_files/ total 13355 location1.txt location2.txt location3.txt location4.txt location5.txt สคริปต์: > cat proces_script.sh #!/bin/sh customScript -c 33 -I -file [inputFile] -a -v 55 …

2
ทำไม (GNU) ขนานกันล้มเหลวอย่างเงียบ ๆ และฉันจะแก้ไขได้อย่างไร
ในสคริปต์ที่ใหญ่กว่าเพื่อประมวลผลข้อมูลการจำลองบางอย่างฉันมีบรรทัดต่อไปนี้: 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ในระบบของฉันให้: …



4
การใช้ GNU Parallel พร้อม Split
ฉันกำลังโหลดไฟล์ขนาดมหึมาไปยังฐานข้อมูล postgresql การทำเช่นนี้ผมใช้งานครั้งแรกsplitในแฟ้มที่จะได้รับไฟล์ขนาดเล็ก (30GB) และแล้วผมโหลดแต่ละไฟล์ขนาดเล็กเพื่อใช้ฐานข้อมูลและGNU Parallelpsql copy ปัญหาคือว่าจะใช้เวลาประมาณ 7 ชั่วโมงในการแบ่งไฟล์แล้วจึงเริ่มโหลดไฟล์ต่อหนึ่งคอร์ สิ่งที่ฉันต้องการคือวิธีที่จะบอกsplitให้พิมพ์ชื่อไฟล์ไปยังเอาต์พุต std ทุกครั้งที่มันเสร็จสิ้นการเขียนไฟล์เพื่อที่ฉันจะได้ไพพ์ไปParallelและมันก็เริ่มโหลดไฟล์ในเวลาที่splitเขียนมันเสร็จ บางสิ่งเช่นนี้ split -l 50000000 2011.psv carga/2011_ | parallel ./carga_postgres.sh {} ฉันอ่านsplitman pages แล้วและฉันไม่พบอะไรเลย มีวิธีการทำเช่นนี้กับsplitหรือเครื่องมืออื่น ๆ ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.