@Jinpeng은 구현이 아닌 GNU Parallel 과 함께 올바른 길을 가고있었습니다 .
예제 : 각 스레드가 프로그램을 한 번만 실행하면서 프로그램의 병렬 인스턴스 10 개를 실행하십시오.
parallel -j10 './myprog argument1 argument2 #' ::: {1..10}
예 : 10 개의 병렬 스레드를 실행하십시오. 각 스레드는 프로그램을 무한정 실행합니다.
parallel -j10 'while true ; do ./myprog argument1 argument2 ; done #' ::: {1..10}
10
내 예제에서 를 교체하여 수백 개의 스레드로 쉽게 확장 할 수 있습니다 .
parallel -j200 ... ::: {1..200}
프로그램이 stdout 메시지를 생성하고 메시지를 대조하는 기본값이 아닌 생성 된 메시지를 보려면 --ungroup
병렬 옵션이 유용 할 수 있습니다.
parallel --ungroup ...
워크 스테이션에서 많은 스레드를 실행 중이고 응답하지 않게 nice
하려면 실행시 전체 프로세스 서브 트리를 사용하십시오.
nice -n19 parallel ...
: 사이드 노트, GNU 병렬는 그래서 그냥 다른 패키지처럼 설치, 일반적으로 기본적으로 설치되지하지만 일반 패키지의 repos 보통이다 dnf install parallel
, apt-get install parallel
, brew install parallel
, 등
myprog
인스턴스 를 생성 하고 결과를 집계 하는 하나의 프로그램을 사용하는 것이 좋습니다.