2012-05-04 6 views
3

5Gb에서 35Gb 크기의 큰 fastq 파일을 처리하기 위해 짧은 파이썬 스크립트를 작성했습니다. 나는 많은 코어를 가진 리눅스 서버에서 스크립트를 실행 중이다. 스크립트는 전혀 병렬로 작성되지 않으며 평균적으로 단일 파일에 대해 약 10 분 정도 소요됩니다.여러 번 실행하면 평행하게됩니까?

내가 과정을 다시 밀어 & 기호를 사용하여

$ python my_script.py file1 & 
$ python my_script.py file2 & 
$ python my_script.py file3 & 

같은 여러 파일에서 동일한 스크립트를 실행합니다.

해당 스크립트를 병렬로 실행하면 시간이 절약됩니까?

프로세서 사용량을 확인하기 위해 최상위 명령을 사용하고 새로운 실행을 추가 할 때 각각의 사용량이 떨어지거나 어딘가 가까운 100 %를 사용해서는 안되기 때문에 나에게는 안 보인다.

그래서 병렬로 실행되지 않는 경우 os를 병렬로 실행하는 방법이 있습니까? 답변

답변

3

명령에 대한

덕분에 참으로 병렬로 실행합니까이 방법을 실행. CPU 시간의 100 %를 사용하지 않는 이유는 CPU에 바인딩 된 것이 아니라 I/O 바인딩 때문일 수 있습니다. 스크립트가 수행하는 작업에 대한 설명 ("5GB에서 35Gb까지의 큰 fastq 파일")은 이것이 사실 일 수 있음을 암시합니다. 당신이 ps에 의해 주어진 프로세스 목록을 보면

,하지만 당신은 거기에 세 python 과정을 볼 수 - 그들 중 하나 이상이 ps을 실행 시간에 의해 종료 된 경우가 아니면.

+0

감사합니다. 정확하게 사례입니다. – svural

2

I/O 작업을 대기하는 데 소요되는 시간은 다른 종류의 CPU 사용으로 계산되며 일반적으로 %wa입니다. 아마 %us (사용자 CPU 시간)을보고있을 것입니다.