멀티 스레드 명령을 병렬화 GNU 평행을 사용 각각에 대한 명령의 목록 (commands.list) :난 그냥 멀티 스레딩, 같은 것을 포함하는 파이썬 스크립트를 작성
python myScript.py -cpu_n 5 -i input_file1
python myScript.py -cpu_n 5 -i input_file2
python myScript.py -cpu_n 5 -i input_file3
...
내가 명령 '병렬'세 가지 다른 기계의 10 개의 CPU로 일정을 시도하고있다 :
parallel -S 10/$server1 -S 10/$server2 -S 10/$server3 < commands.list
제 질문은 병렬 명령으로 각 서버에서 사용할 수있는 최대 CPU 수는 얼마입니까? 그것은 5 * 10 = 50입니까 아니면 10 cpus입니까? man parallel
에서
코드없이 말하기가 어렵습니다. –
첫째, * CPU *와 * 코어 *를 구분할 때주의하십시오. 단일 CPU에는 8 개 이상의 코어가있을 수 있습니다. 둘째, * 작업 * 및 * 코어 *에 대해주의해야합니다. - 다른 시간에 다른 코어에서 돌아 다니고 다른 코어에서 실행될 수있는 작업을 하나 만들 수 있습니다. "CPU/코어 친 화성"*을 고려하십시오. 하나의 작업은 이론적으로 10 개의 CPU 각각의 수명 단계에서 실행할 수 있습니다. –
commands.list가 너무 단순하다면 GNU Parallel에서 생성 할 수 있습니다 : parallel python myScript.py -cpu_n 5 -i ::: input_file *; 명령이 매우 복잡한 경우 bash 함수를 사용하십시오. https://www.gnu.org/software/parallel/man.html#EXAMPLE:Calling-Bash-functions –