![여러 파일에서 Python 함수를 실행하기 위해 반복하는 것보다 더 빠른 방법이 있습니까?](https://linux55.com/image/212792/%EC%97%AC%EB%9F%AC%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20Python%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EB%B0%98%EB%B3%B5%ED%95%98%EB%8A%94%20%EA%B2%83%EB%B3%B4%EB%8B%A4%20%EB%8D%94%20%EB%B9%A0%EB%A5%B8%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
아래와 같이 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를 통해 이를 사용하는 것도 가능해야 하지만 아직 시도한 적이 없습니다.