9 điểm bởi GN⁺ 2023-08-22 | 1 bình luận | Chia sẻ qua WhatsApp
  • GNU Parallel rất hữu ích để chạy kiểm thử E2E song song
  • Tác giả muốn thu thập thống kê về tỷ lệ pass/fail của một bộ kiểm thử chạy trong thời gian dài đối với một dịch vụ đang hoạt động qua HTTP
  • Ban đầu, tác giả dùng các vòng lặp lồng nhau trong bash để chạy kiểm thử, nhưng do thời gian chạy của từng bài kiểm thử dài nên cách này khá chậm
  • Sau đó, tác giả dùng GNU Parallel để chạy kiểm thử song song, giúp cải thiện đáng kể cả hiệu năng lẫn tính năng với ít mã hơn
  • Trong GNU Parallel, bạn chỉ định lệnh sẽ được chạy song song, và các placeholder ({1}, {2} v.v.) sẽ được thay bằng các giá trị đầu vào
  • Đầu vào cho lệnh được chỉ định sau toán tử ::: và sẽ được truyền vào lệnh theo mọi tổ hợp có thể
  • GNU Parallel cung cấp các tùy chọn để kiểm soát mức độ đồng thời và tránh tranh chấp tài nguyên, chẳng hạn như giới hạn số lượng tác vụ đồng thời hoặc trì hoãn thời điểm bắt đầu của từng tác vụ
  • Công cụ này cũng có khả năng xuất tệp CSV chứa kết quả hoàn tất tác vụ: thời lượng, mã thoát, và cả stdout/stderr đã được ghi lại
  • Tác giả khuyến nghị cuốn sách của Ole Tange, tác giả GNU Parallel, để tìm hiểu sâu hơn các tính năng của công cụ như phân phối tác vụ sang các máy khác qua SSH, theo dõi thời gian hoàn tất tác vụ, thử lại các tác vụ dễ thất bại, tiếp tục các tác vụ nếu quá trình chạy song song bị gián đoạn, hoặc giới hạn mức độ đồng thời của tác vụ dựa trên mức sử dụng CPU

1 bình luận

 
GN⁺ 2023-08-22
Ý kiến trên Hacker News
  • Chỉ ra tính hữu dụng và những giới hạn của GNU Parallel, đồng thời đề xuất các lựa chọn thay thế như YSH, Nushell, Fish
  • Ý kiến của một người dùng cho rằng việc tận dụng khả năng song song hiện bị giới hạn bởi máy tính ngày nay, và đề xuất cần nhiều lõi hơn cùng bộ nhớ định địa chỉ theo nội dung cục bộ
  • Nhiều người dùng chia sẻ trải nghiệm tích cực khi sử dụng GNU Parallel cho các công việc như tạo dữ liệu kiểm thử, truyền dữ liệu, xử lý nhiều tác vụ trong HPC, và các pipeline có phụ thuộc dữ liệu đơn giản
  • Người dùng so sánh GNU Parallel với xargs, task spooler và các công cụ khác; cho rằng GNU Parallel hữu ích cho một số tác vụ nhất định nhưng có thể chậm hơn về tốc độ
  • Một số người dùng bày tỏ lo ngại về vấn đề trích dẫn liên quan đến GNU Parallel, trước yêu cầu của tác giả rằng phải trích dẫn công cụ hoặc trả phí
  • Người dùng chia sẻ các trường hợp sử dụng mà GNU Parallel giúp tiết kiệm rất nhiều thời gian, chẳng hạn nén hàng loạt số lượng lớn ảnh jpeg thành các tệp webp nhỏ hơn
  • Một người dùng nhắc đến phiên bản shell script của GNU Parallel có thể dùng cho các tác vụ trong pipeline CI/CD
  • Người dùng chia sẻ trải nghiệm với các cmdlet ForEach-Object của PowerShell có tham số -parallel, nhấn mạnh sức hấp dẫn của việc song song hóa bằng các công cụ dòng lệnh