이 꽤 정직 : GNM 병렬을 사용하는 SPMD에서 가장 작은 파일을 가장 효율적으로 처리하고 있습니까?
내가 어떤 실행./proc
를 통해 처리 할 수있는 폴더
data/
에 많은 파일을 말한다. 효율성을 극대화하는 가장 간단한 방법은 무엇입니까? I이 일부 효율성을 획득하고있다 : 크기에 따라 데이터를 나열
는
ls --sort=size data/* | tac | parallel ./proc
다음 tac
(cat
의 역)은 작은 크기의 파일을 먼저 처리되도록 출력 순서를 튀긴다. 이것이 가장 효율적인 솔루션입니까? 그렇지 않다면 어떻게 효율성을 향상시킬 수 있습니까? (간단한 솔루션 선호)?
큰 작업이 파이프 라인을 차단하지 않기 때문에 효율성이 향상된다는 것을 기억합니다. 예를 제외하고는이 배후의 이론을 찾거나 기억할 수 없으므로 참조가 크게 도움이 될 것입니다.
'SIMD'와'SPMD'를 혼동하는 것 같아요. –
당신이 맞아요. 감사합니다. –
나는 또한 당신이 c라고 생각합니다. 불쾌한 "효율성"과 "진실의 환상". N 작업을 처리하는 데 가장 작은 작업을 처리하는 데 M 초가 걸린다면 가장 큰 작업을 처리하는 데 M 초가 걸리는 것보다 더 효율적이거나 덜 효율적입니다. 다른 점은 처음에 더 많은 진전이 이루어지고있는 것 같습니다. 긴 작업은 여전히 개별적인 기준으로 마무리하는 데 시간이 오래 걸립니다. GNU 병렬은 주어진 순서대로 처리 스트림의 지정된 수를 유지하면서 합리적으로 좋은 일을합니다 ... – twalberg