ฉันจะบังคับให้ gnuparallel ดำเนินการคำสั่งตามลำดับได้อย่างไร


2

Gnu parallel เป็นเครื่องมืออันทรงพลังที่ฉันใช้เพื่อรันคำสั่ง BASH อิสระจำนวนมากเป็นชุดเดียวในแบบคู่ขนาน ฉันต้องการเรียกใช้คำสั่งเดียวกัน SEQUENTIALLY โดยไม่มีการเปลี่ยนแปลงคำสั่งที่ฉันใช้อย่างมีนัยสำคัญ ฉันรู้ว่ามีสวิตช์ที่บังคับให้ส่งออกที่จะถูกส่งกลับเป็น THOUGH ทำงานแบบเรียงลำดับ แต่ฉันต้องการให้ Gnuparallel RUN ทำงานจริงตามลำดับ เหตุผลของฉันคือเพื่อวัตถุประสงค์ในการทดสอบบนเครื่องที่มีแนวโน้มว่าจะร้อนเกินไปการแก้ปัญหาฮาร์ดแวร์ของฉันไม่ใช่ตัวเลือกนอกจากนี้เรายังสามารถจินตนาการถึงการทดสอบอื่น ๆ ที่ใช้ gnuparallel ตามลำดับจะเป็นประโยชน์

ดังนั้น. มีวิธีเรียกใช้ gnuparallel ตามลำดับหรือฉันต้องการแยกคำสั่ง gnuparallel ด้วยตนเองที่กำหนดไว้ในคำสั่งส่วนประกอบและเรียกใช้งานตามลำดับหรือไม่


หากวัตถุประสงค์ของโปรแกรมคือการใช้ประโยชน์จากการขนานของคอร์ / เธรดมันจะเอาชนะจุดเพื่อให้มันทำงานในลักษณะอนุกรม หากคุณต้องการคำสั่งที่จะดำเนินการในลักษณะอนุกรมแล้วพวกเขาก็สามารถสคริปต์โดยไม่ต้องใช้แบบขนาน
killermist

1
@ killermist หากคุณมีคำสั่งยาวที่คุณต้องการให้ ARG หนึ่งครั้ง แต่ต้องการเรียกใช้แบบอนุกรมในเวลาเดียวกันมันอาจจะสั้นกว่าในการสร้างคำสั่งโดยใช้ GNU Parallel
Ole Tange

หึ ฉันใช้ bash forloops เพื่อทำสิ่งนั้น for argument in this that other something; do /usr/bin/somecommand --flaghere "$argument" other_"$argument"; done ง่าย.
killermist

@OleTange มีความคิด หนึ่งอาจต้องการให้กระบวนการของพวกเขาทำงานตามลำดับ แต่ยังต้องการใช้ไวยากรณ์ที่มีประสิทธิภาพของ GNU Parallel
นายสีม่วง

@killermist ที่นี่โดยใช้ GNU Parallel: parallel /usr/bin/somecommand --flaghere {} other_{} ::: this that other something# ค่อนข้างสั้นและอ้างน้อย
Ole Tange

คำตอบ:


3

parallelหน้าคนบอกว่า--jobsตัวเลือก (เช่นเดียวกับ-j, --max-procsและ-P) ระบุจำนวนของงานที่ทำงานในแบบคู่ขนาน ดังนั้นการรันparallelด้วย--jobs 1ควรรันงานของคุณตามลำดับ


ฉันคิดว่าจะมีสวิตช์ แต่ไม่ได้ดูตัวเลือกจากมุมมองของคุณ โซลูชันนี้จะช่วยให้สามารถเลือกจำนวนของกระบวนการที่ทำงานพร้อมกันได้แบบไดนามิก มันตอบคำถามของฉันได้ดีกว่าที่ฉันหวังไว้
Mr Purple

1
สำหรับการใช้งานแบบไดนามิกพิเศษ-j fileและการเปลี่ยนแปลงเนื้อหาของfileในขณะที่ GNU Parallel กำลังทำงานอยู่
Ole Tange

อย่างไรก็ตามฉันสร้างประสบการณ์ที่-j1ไม่เพียง แต่ จำกัด จำนวนของงานแบบขนานเป็น 1 แต่ยัง จำกัด งานที่กำลังทำงานอยู่ในขณะนี้ให้เป็นแกนเดียว ขณะที่ใช้งานเดียวกันอยู่ภายในเครื่องคอมพิวเตอร์ของฉันจะใช้คอร์ที่มีอยู่ทั้งหมด ฉันสามารถบังคับใช้การดำเนินการตามลำดับ แต่อนุญาตให้แต่ละงานใช้หลายคอร์ในแบบคู่ขนานได้หรือไม่
CGFoX
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.