다음 기능을 사용하고 싶습니다GNU 병렬명령과 입력 목록을 병렬로 실행하고 완료되면 내보낼 수 있지만 모든 서버에 GNU를 병렬로 설치하고 싶지는 않습니다.
아니면 병렬 버전일까요 xargs
?
GNU 병렬 기능의 ksh 구현이 있습니까? 이 경우 모든 출력을 파이프로 연결하거나 저장할 수 있는 한 GNU Parallel에서처럼 순차적으로 수행할 필요는 없습니다. 또한 임시 파일 사용을 피하고 싶습니다.
답변1
멀티 코어 시스템에서 병렬화하려면 (GNU) 를 사용할 수 있습니다 xargs
. 예를 들면 다음과 같습니다.
echo seq_[0-9][0-9].gz | xargs -n 1 -P 16 ./crunching
의미: 각각 stdin의 토큰 1개를 사용하여 xargs
최대 16개의 프로세스를 병렬로 시작합니다 ../crunching
split
xargs와 함께 사용할 수도 있습니다 .
또는 작업 실행 및 호출을 위한 간단한 Makefile을 생성할 수 있습니다 make -f mymf -j $CORES
(이 솔루션에는 임시 파일이 필요함).
첨부된:GNU 병렬 핸드북에는 다음을 포함한 다른 도구와의 비교도 포함되어 있습니다.매개변수그리고만들다, 흥미롭게도 그들은 다음과 같이 썼습니다.
(GNU 병렬화의 초기 버전은 make -j를 사용하여 구현되었습니다).
답변2
parallel --embed
사용하는 것과 동일한 쉘 스크립트에 GNU Parallel을 포함하는 것이 무엇인지 확인하십시오 .
parallel --embed > new_script
그런 다음 new_script를 편집하십시오.