GNU 병렬
GNU parallel| 개발자 | GNU 프로젝트 |
|---|---|
| 안정적 해제 | 20210422[1] / 2021년 4월 22일; 전 |
| 리포지토리 | |
| 기록 위치 | 펄 |
| 운영 체제 | GNU |
| 유형 | 효용 |
| 면허증 | GPLv3 |
| 웹사이트 | www |
GNU parallel은 리눅스 및 기타 유닉스 유사 운영 체제를 위한 명령줄 기반 유틸리티로, 사용자가 셸 스크립트나 명령을 병렬로 실행할 수 있다.GNU parallel은 Perl에서 Ole Tange에 의해 쓰여진 무료 소프트웨어다.그것은 GPLv3의 조건에 따라 이용할 수 있다.[2]
사용법
예를 들어 셸 루프를 교체하는 것이 가장 일반적인 사용법이다.
x를 읽는 동안; do_something "$x" do_down process_output의 형태로
< 병렬 do_something process_output그 파일이 있는 곳에list에 대한 인수를 포함함do_something그리고 어디에process_output비어 있을 수도 있다.
병렬을 사용하는 스크립트는 종종 pexec을 사용하는 스크립트보다 읽기 쉽다.
프로그램 병렬 기능도 제공됨
- 병렬 실행 작업의 출력이 함께 실행되지 않도록 표준 출력 및 표준 오류의 그룹화
- 입력과 동일한 순서로 유지되도록 출력 순서 유지
- 공백, 단일 따옴표, 이중 따옴표, 앰퍼샌드 및 UTF-8 인코딩 문자와 같은 특수 문자를 포함하는 파일 이름 처리
기본적으로 병렬은 CPU 코어가 있는 만큼 많은 작업을 병렬로 실행한다.
예
. -name "*.foo" 병렬 grep bar를 찾으십시오.위와 같은 평행은 다음과 같다.
. -name "*.foo" -exec grep bar {} +현재 디렉터리의 모든 파일 및 이름이 끝나는 하위 디렉터리에서 검색.foo문자열의 발생에 대해 bar. 파일 이름에 새 줄이 포함되지 않는 한 병렬 명령은 예상대로 작동한다.이러한 제한을 피하기 위해 다음을 사용할 수 있다.
. -name "*.foo" -print0 parallel -0 grep bar 찾기위의 명령은 null 문자를 사용하여 파일 이름을 구분한다.
. -name "*.foo" parallel -X mv {} /tmp/trash 찾기위의 명령은 확장된다.{}명령줄 길이가 허용하는 수만큼 인수를 사용하여 필요한 경우 병렬 작업 간에 인수를 균등하게 분산하십시오.이렇게 하면 실행 시간보다 완료하는 데 시간이 덜 걸리는 단명 명령의 프로세스 오버헤드를 줄일 수 있다.
. -maxdeep 1 -type f -name "*.ogg" 병렬 -X -r cp -v -p {} /home/media 찾기위의 명령은 다음과 같다.
cp -v -p *.ogg /home/media그러나, 이전 명령어는find/parallel/cp*.ggg의 확장이 쉘에 비해 너무 크면 더 효율적이며 오류로 중단되지 않는다.
| 위키미디어 커먼즈에는 GNU 병렬과 관련된 미디어가 있다. |
참고 항목
참조
- ^ Tange, Ole (22 Apr 2021). "GNU Parallel 20210422 ('Ever Given') released [stable]". parallel (Mailing list).
- ^ "GNU Parallel". GNU.org.
