9P by neo 2023-08-22 | favorite | 댓글 1개
  • GNU Parallel은 E2E 테스트를 병렬로 실행하는데 유용
  • 저자가 HTTP를 통한 라이브 서비스에 대해 오랜 시간 동안 실행되는 테스트 세트의 합격/불합격 비율에 대한 통계를 수집하려고 함
  • 처음에는 저자가 bash에서 중첩 루프를 사용하여 테스트를 실행했지만, 각 테스트의 실행 시간이 길어서 이 방법은 느렸음
  • 그 후 GNU Parallel을 사용하여 테스트를 병렬로 실행, 성능과 기능이 적은 코드로 크게 향상됨
  • GNU Parallel에서는 명령이 병렬로 실행되도록 지정되며, 플레이스홀더 ({1}, {2} 등)는 입력 값으로 대체됨
  • 명령에 대한 입력은 ::: 연산자 다음에 지정되며, 가능한 모든 조합으로 명령에 제공됨
  • GNU Parallel은 동시 작업 수를 제한하거나 각 작업의 시작을 지연시키는 등, 동시성을 제어하고 리소스 경합을 피하는 옵션을 제공함
  • 이 도구는 작업 완료 결과를 포함한 CSV 파일을 출력하는 기능도 제공함: 지속 시간, 종료 코드, 캡처된 stdout/stderr 포함
  • 저자는 GNU Parallel의 저자 Ole Tange의 책을 추천함: SSH를 사용하여 다른 호스트에 작업을 분배하거나, 작업 완료 시간을 모니터링하거나, 실패 가능성이 높은 작업을 재시도하거나, 병렬 실행이 중간에 중단된 경우 작업을 재개하거나, CPU 사용률에 기반한 작업 동시성을 제한하는 등의 도구 기능을 더 깊게 탐색하기 위해
Hacker News 의견
  • GNU Parallel의 유용성과 한계를 지적하며, YSH, Nushell, Fish 등의 대안도 제안
  • 병렬 기능 활용에 대한 현재 컴퓨터의 한계를 주장하는 사용자의 의견, 더 많은 코어와 로컬 콘텐츠 주소 지정 메모리 필요성 제안
  • GNU Parallel을 활용한 긍정적인 경험을 공유하는 여러 사용자들, 테스트 데이터 생성, 데이터 전송, HPC에서의 많은 작업, 간단한 데이터 의존성이 있는 파이프라인 등의 작업
  • GNU Parallel과 xargs, task spooler 등 다른 도구를 비교하는 사용자들, 특정 작업에는 GNU Parallel이 유용하지만 속도 면에서는 느릴 수 있다는 지적
  • GNU Parallel과 관련된 인용 문제에 대해 우려를 표현하는 몇몇 사용자들, 도구를 인용하거나 비용을 지불하라는 저자의 요청
  • GNU Parallel이 큰 시간 절약을 가능하게 한 사용 사례를 공유하는 사용자들, 대량의 jpeg 이미지를 작은 webp 파일로 일괄 압축하는 등
  • CI/CD 파이프라인 작업에 사용할 수 있는 GNU Parallel의 쉘 스크립트 버전을 언급하는 사용자
  • -parallel 매개변수를 가진 PowerShell의 ForEach-Object cmdlets에 대한 경험을 공유하는 사용자, 명령 줄 도구를 사용한 병렬화의 매력 강조