여러 파일에서 Python 함수를 실행하기 위해 반복하는 것보다 더 빠른 방법이 있습니까?

여러 파일에서 Python 함수를 실행하기 위해 반복하는 것보다 더 빠른 방법이 있습니까?

아래와 같이 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를 통해 이를 사용하는 것도 가능해야 하지만 아직 시도한 적이 없습니다.

관련 정보