나는 많은 독립적 인 작업을 수행하고 있으며 병렬 시스템으로 배포하여 각 프로세서가 동일한 작업을 수행하고 효율성을 극대화하고 싶습니다.병렬 작업 배포를위한 균등 로딩
이 문제에 대한 해결책을 찾는 일반적인 방법이 있는지, 아니면 정확한 문제에 대한 올바른 해결책이 있는지 알고 싶습니다.
저는 T = 150 개의 작업을 실행하고 각 작업에 걸리는 시간은 t = T입니다. 즉, task1은 1 단위 시간이 걸리고, task2는 2 단위 시간이 걸립니다. task150은 150 단위 시간이 걸립니다. 내가 n = 12 프로세서라고 가정 할 때, 작업을 시작하고 정리하는 데 걸리는 시간은 거의 없다고 가정 할 때 작업 부하를 작업자로 나누는 가장 좋은 방법은 무엇입니까? @ HighPerformanceMark의 독창적 인 접근 방식에 대한 내 최초의 열정에도 불구하고
사용하는 언어는 무엇입니까? – bc004346
이것이 * Bin Packing Problem *이라고 생각합니다. https://en.wikipedia.org/wiki/Bin_packing_problem 아마 가장 긴 직업에서 시작하여 점차적으로 짧은 직업을 시작한다고 생각합니다. 그렇지 않으면 하나만 제외하고 모두 끝낼 수 있습니다. 가장 길다는 것을 발견 할 수 있습니다. –
작업 1과 150을 프로세서 1 (작업 시간은 151 시간)으로 지정하고, 작업 2와 149를 프로세서 2 (작업 시간은 151 시간)에 할당하고, 12 개의 프로세서 각각에서 6 개의 이러한 청크를 얻습니다 6 개의 거의 동일한 작업 (작업 73 - 78)이 종료됩니다. 각 프로세서에 하나씩 부여하십시오. 그것은 진술 된 것과 같이 빈 포장 문제가 아니거나,있는 경우에, 해결하기 아주 쉬운 것이다. –