9 คะแนน โดย GN⁺ 2023-08-22 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • GNU Parallel มีประโยชน์สำหรับการรันการทดสอบ E2E แบบขนาน
  • ผู้เขียนต้องการเก็บสถิติเกี่ยวกับอัตราการผ่าน/ไม่ผ่านของชุดทดสอบที่ใช้เวลารันนาน กับบริการจริงที่ให้บริการผ่าน HTTP ตลอดช่วงเวลาที่ยาวนาน
  • ในตอนแรก ผู้เขียนใช้ลูปซ้อนใน bash เพื่อรันการทดสอบ แต่เพราะแต่ละการทดสอบใช้เวลานาน วิธีนี้จึงช้า
  • หลังจากนั้นจึงใช้ GNU Parallel เพื่อรันการทดสอบแบบขนาน ทำให้ทั้งประสิทธิภาพและความสามารถดีขึ้นมากด้วยโค้ดที่น้อยลง
  • ใน GNU Parallel สามารถระบุให้คำสั่งรันแบบขนานได้ และตัวแทนค่า ({1}, {2} เป็นต้น) จะถูกแทนที่ด้วยค่าอินพุต
  • อินพุตของคำสั่งจะถูกระบุหลังโอเปอเรเตอร์ ::: และจะถูกส่งให้คำสั่งในทุกชุดค่าผสมที่เป็นไปได้
  • GNU Parallel มีตัวเลือกสำหรับควบคุมความพร้อมกันและหลีกเลี่ยงการแย่งทรัพยากร เช่น จำกัดจำนวนงานที่รันพร้อมกัน หรือหน่วงเวลาเริ่มต้นของแต่ละงาน
  • เครื่องมือนี้ยังสามารถส่งออกไฟล์ CSV ที่มีผลลัพธ์เมื่อจบงานได้ด้วย: ระยะเวลา, exit code, และ stdout/stderr ที่จับไว้
  • ผู้เขียนแนะนำหนังสือของ Ole Tange ผู้สร้าง GNU Parallel เพื่อศึกษาความสามารถของเครื่องมือเชิงลึกยิ่งขึ้น เช่น การกระจายงานไปยังโฮสต์อื่นด้วย SSH, การติดตามเวลาที่งานเสร็จ, การลองรันงานที่มีโอกาสล้มเหลวสูงซ้ำ, การทำงานต่อจากจุดเดิมเมื่อการรันแบบขนานถูกขัดจังหวะกลางคัน, หรือการจำกัดความพร้อมกันของงานตามอัตราการใช้ CPU

1 ความคิดเห็น

 
GN⁺ 2023-08-22
ความคิดเห็นจาก Hacker News
  • ชี้ให้เห็นทั้งประโยชน์ใช้สอยและข้อจำกัดของ GNU Parallel พร้อมเสนอทางเลือกอย่าง YSH, Nushell และ Fish
  • ความเห็นของผู้ใช้ที่มองว่าความสามารถด้านการประมวลผลแบบขนานของคอมพิวเตอร์ปัจจุบันยังมีข้อจำกัด และเสนอว่าควรมีคอร์มากขึ้นรวมถึงหน่วยความจำแบบ content-addressed ภายในเครื่อง
  • ผู้ใช้หลายคนแบ่งปันประสบการณ์เชิงบวกกับ GNU Parallel เช่น การสร้างข้อมูลทดสอบ การส่งถ่ายข้อมูล งานจำนวนมากใน HPC และไปป์ไลน์ที่มีการพึ่งพาข้อมูลแบบเรียบง่าย
  • ผู้ใช้เปรียบเทียบ GNU Parallel กับ xargs, task spooler และเครื่องมืออื่น ๆ โดยชี้ว่า GNU Parallel มีประโยชน์กับงานบางประเภท แต่ในแง่ความเร็วอาจช้ากว่าได้
  • ผู้ใช้บางคนแสดงความกังวลเกี่ยวกับประเด็นการอ้างอิงที่เกี่ยวข้องกับ GNU Parallel รวมถึงคำขอจากผู้สร้างให้มีการอ้างอิงเครื่องมือหรือชำระค่าใช้งาน
  • ผู้ใช้แบ่งปันกรณีใช้งานที่ GNU Parallel ช่วยประหยัดเวลาได้มาก เช่น การบีบอัดไฟล์ jpeg จำนวนมากแบบชุดให้เป็นไฟล์ webp ขนาดเล็ก
  • ผู้ใช้รายหนึ่งกล่าวถึง GNU Parallel เวอร์ชันที่เป็นเชลล์สคริปต์ซึ่งสามารถนำไปใช้กับงานใน CI/CD pipeline ได้
  • ผู้ใช้แบ่งปันประสบการณ์กับ ForEach-Object cmdlet ของ PowerShell ที่มีพารามิเตอร์ -parallel พร้อมเน้นเสน่ห์ของการทำงานแบบขนานผ่านเครื่องมือบรรทัดคำสั่ง