파일로 출력하려는 특정 결과를 찾는 GNU Parallel을 통해 병렬화된 Python 스크립트가 있습니다. 현재는 표준 Python 파일 IO를 통해 이 작업을 수행합니다. 문제는 이 파일을 각 병렬 스레드에서 열었는데, 쓰면서 스레드들이 서로 발끝을 밟고 있다는 점입니다. FIFO 세마포어를 구현하고 싶고 그것이 GNU 병렬 스크립트에 있어야 한다고 생각하지만 Python에서 파일에 액세스하는 경우 이를 수행하는 방법을 잘 모르겠습니다. 내 현재 스크립트는 다음과 같습니다
#!/bin/bash
time parallel -j$(nproc) -N0 python3 ./polynomial_generator.py ::: {1..10} --progress echo {} >/tmp/out
답변1
출력을 stdout으로 보내도록 Python 스크립트를 변경한 후 다음을 수행합니다.
parallel -N0 --progress --results res/ python3 ./polynomial_generator.py ::: {1..10}
이제 출력이 res/*/*
.