쉘스크립트

parallel 병렬처리 명령어

고요한하늘... 2011. 10. 20. 14:33


http://www.gnu.org/software/parallel/


쉘스크립트를 실행하다보면 굳이 순차적으로 실행이 필요없는 경우가 있다.

예를 들면

현재 디렉토리에 있는 *.txt 파일을 찾아서,

각 파일에서 특정 문자열을 검색하는 경우이다.

 

find ./ -name \*.txt | xargs grep "문자열"

처럼 명령어를 실행한다.


그러면 파이프라인을 통해 xargs로 파일명이 전달되고

grep "문자열" 파일1

grep "문자열" 파일2

grep "문자열" 파일3

grep "문자열" 파일4

처럼 파일 개수 만큼 순차적으로 grep이 실행된다.


그런데 [grep "문자열" 파일명]의 경우는

독립적인 실행이 보장되는 경우이기 때문에

요즘과 같이 멀티코어 서버가 대중화된 상황에서는 굳이 하나씩 연속적으로 실행할 필요가 없다.

코어마다 하나씩 처리를 하면 시간을 1/코어개수 만큼 절약할수 있다.


gun에 parallel이라는 프로젝트가 이런걸 가능하게 해준다.



설치는 파일을 다운로드 받아서(다운 받은 파일 parallel-20110822.tar.bz2)

bunzip2 parallel-20110822.tar.bz2

tar -xvf parallel-20110822.tar

./configure

make

su

make install



참고 동영상 : http://unethicalblogger.com/2010/11/11/gnu-parallel-changed-my-life.html


병렬처리로 이득을 얻기 위해서는 cpu작업이 많아야 한다.


'쉘스크립트' 카테고리의 다른 글

미리알았다면 좋았을 것들  (0) 2014.04.15
awk gsub  (0) 2012.02.29
bash 사용 예  (0) 2011.07.19
스크립트 실행 위치   (0) 2011.06.24
파일내부 vim설정  (0) 2010.12.28