여러 프로세스를 병렬로 실행 중이고 각 프로세스가 동일한 파일을 병렬로 읽습니다. 프로세스 수를 15 개 이상으로 늘리면 일부 프로세스가 파일의 손상된 버전을 보는 것처럼 보입니다. 그러한 시나리오를 처리하기 위해 권장되는 방법은 무엇입니까?여러 프로세스에서 병렬로 파일 읽기
자세한 내용 : 병렬로 읽히는 파일은 실제로 perl 스크립트입니다. 다중 작업은 파이썬 프로세스이며, 각각은 다른 입력 매개 변수로이 perl 스크립트를 독립적으로 시작합니다. 작업 수가 증가하면 이러한 작업 중 일부는 perl 스크립트의 구문이 잘못되었습니다 (사실이 아님) 오류가 발생합니다. 따라서 필자는 이러한 작업 중 일부가 손상된 Perl 스크립트를 읽은 것으로 의심합니다.
저는 32core 머신에서이 모든 것을 실행하고 있습니다.
"프로세스 중 일부에서 손상된 파일 버전이있는 것 같습니다."- 2 가지 : (1) 동기화 논리에 버그가있을 수 있습니다. (2) 여러 프로세스가있는 파일을 읽을 가능성이 거의 없으면 속도가 빨라집니다. 속도가 느려질 수 있습니다. –
동기화 로직이 전혀 없습니다. 제가 말했듯이,이 파일은 병렬로 실행되는 펄 스크립트입니다. 그래, 각 펄 프로세스가 독립적 인 데이터 세트에서 작업하기 때문에 더 빠를 것이다 – slash90
"동기화 로직이 없다"- 문제가있다! (나는 많이 생각했다). 내가 다시 한 말을 읽어라. 나는 아마도 당신의 복잡한 프로세싱이 더 빠르지 않을 것이라고 말하지 않았다. "여러 프로세스를 가진 파일을 읽는 것이 매우 빠를 것입니다. (즉, 파일 읽기 부분)" –