아래와 같이 for 루프를 사용하여 100개의 파일에 대해 Python 함수를 실행하려고 합니다. 이 과정이 매우 느린 것 같습니다. GPU가 탑재된 HPC 컴퓨터를 사용하고 있기 때문에 이 프로세스를 더 빠르게 할 수 있는 방법이 있는지 궁금합니다.
#!/usr/bin/env bash
FILES="/directory_with_files/*.ply"
for i in $FILES;
do python3 function.py -file $i --odir /output_directory --verbose; done
답변1
프로그램 자체가 이미 GPU를 사용하지 않는 한 GPU는 도움이 되지 않습니다. 하지만 제가 주로 사용하는 도구는GNU 병렬. 많은 플래그가 있지만 귀하의 명령은 다음과 같을 것이라고 생각합니다.
$ find /directory_with_files -name '*.ply' | parallel "python3 function.py -file {} --odir /output_directory --verbose"
기본적으로 코어당 하나씩, 적합하다고 판단되는 모든 작업을 병렬로 실행합니다.
소문은있다원격 작업을 실행하기 위해 SSH를 통해 이를 사용하는 것도 가능해야 하지만 아직 시도한 적이 없습니다.