KR20100081341A - 복수의 작업을 복수의 컴퓨터에 분산시키기 위한 방법, 시스템 및 컴퓨터 프로그램 - Google Patents

복수의 작업을 복수의 컴퓨터에 분산시키기 위한 방법, 시스템 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20100081341A
KR20100081341A KR1020107010112A KR20107010112A KR20100081341A KR 20100081341 A KR20100081341 A KR 20100081341A KR 1020107010112 A KR1020107010112 A KR 1020107010112A KR 20107010112 A KR20107010112 A KR 20107010112A KR 20100081341 A KR20100081341 A KR 20100081341A
Authority
KR
South Korea
Prior art keywords
computer
temporary
distribution
resource
variance
Prior art date
Application number
KR1020107010112A
Other languages
English (en)
Inventor
파올로 데이다
파비오 베네데티
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20100081341A publication Critical patent/KR20100081341A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

바람직한 실시예는 복수의 후보 작업 부하 분산으로부터 최적의 작업 부하 분산을 결정하기 위한 메카니즘을 제공하고, 각각의 후보 작업 부하 분산은 작업 부하 스케줄링의 특정 특징을 최적화하도록 결정되어 왔다. 특히, 바람직한 실시예는 자원 선택 정책에 기초하여 작업 부하 분산을 결정한다. 이러한 작업 부하 분산으로부터, 바람직한 실시예는 작업 우선순위에 기초하여 작업 부하 분산을 선택적으로 결정한다. 상기 변수 중 하나 또는 모두로부터, 바람직한 실시예는 전체 우선순위화 가중치 변수에 기초하여 작업 부하 분산을 결정한다. 바람직한 실시예는 또한 이전에 결정된 후보 작업 부하 분산을 목표 분산에 정합시키려고 시도하는 작업 부하 분산을 결정한다. 유사하게, 바람직한 실시예는 작업 처리량을 최대화하려고 시도하는 추가적인 작업 부하 분산을 계산한다.

Description

복수의 작업을 복수의 컴퓨터에 분산시키기 위한 방법, 시스템 및 컴퓨터 프로그램{METHOD, SYSTEM AND COMPUTER PROGRAM FOR DISTRIBUTING A PLURALITY OF JOBS TO A PLURALITY OF COMPUTERS}
본 발명은 복수의 작업을 복수의 컴퓨터에 분산시키기 위한 방법, 시스템 및 컴퓨터 프로그램에 관한 것이다.
작업 부하 스케줄링(workload scheduling)은 IT 환경에서 점점 중요한 구성요소가 되어가고 있다. 사실, 많은 그리드 컴퓨팅 환경은 (예를 들면, 계산, 저장, 통신 능력, 소프트웨어 라이센스, 특별한 장치 등과 같은) 분산된 자원 세트에 걸쳐 작업 스케줄링에 의해 운영된다(driven). 대부분의 그리드 시스템은 사용자에 의해 제공되는 작업을 실행하는 기계를 위치시키기 위하여, 작업 스케줄러를 포함한다. 단순한 작업 스케줄러는, 작업의 요구(needs)에 정합하는 자원을 갖는 다음 이용가능한 기계에 작업을 할당한다. 그러나, 더 향상된 스케줄러는 작업 우선순위 시스템을 구현하는데, 더 높은 우선순위를 갖는 작업이 그리드 기계에 할당되는 것이 바람직하다. 스케줄러는 또한 (예를 들면, 그리드 작업이 하루의 특정 시간에 실행되는 것을 금지하는 것과 같은) 작업, 사용자, 및 자원 상의 다양한 제약을 제공하는 정책을 구현할 수 있다.
본질적으로, 스케줄링은, (예를 들면, CPU와 같은) 오직 하나의 자원 유형이 관련될 때 상당히 간단한(straightforward) 최적화 문제가 된다. 스케줄링 프로세스에 더 많은 자원 변수를 포함함으로써 추가적인 성능 향상이 달성될 수 있지만, 결과적인 다변수 최적화(resulting multivariate optimisation)는 어려운 수학 문제가 된다. 이 문제를 단순화하려는 시도에서, 선행 기술 작업 부하 분산 알고리즘은 일반적으로, 분산 문제가 실질적인 동종 작업을 실질적인 동종 환경에 배치하는 것 중 하나라는 것을 가정한다. 그러므로, 이러한 선행 기술 알고리즘은, 상이한 작업이 종종 상이한 자원 요구(resource requirements)를 갖는다는 것을 인식하는데에 실패한다. 유사하게, 선행 기술 알고리즘은 일반적으로, 주어진 작업 배치가 후속 작업에 영향을 미침으로써 시스템의 전체 작업 처리량에 어느 정도까지 영향을 줄 수 있는지를 인식하는데에 실패한다.
본 발명에 따라, 복수의 작업을 복수의 컴퓨터에 분산시키는 방법이 제공되고, 상기 방법은,
- 복수의 일시적 분산(provisional distributions)을 생성하기 위하여, 컴퓨터에 대한 작업의 모든 가능한 쌍을 결정하는 단계,
- 그들이 각각의 작업의 개별적인 요구를 어느 정도까지 충족시키는지에 따라서 일시적 분산의 순위를 매기는(ranking) 단계,
- 그들이 미리 정의된 분산(a predefined distribution)에 어느 정도까지 정합하는지에 따라서 일시적 분산의 순위를 매기는 단계,
- 일시적 분산이 컴퓨터의 처리량을 어느 정도까지 최대화하는지에 따라서 일시적 분산의 순위를 매기는 단계,
- 순위들로부터 최적의 분산을 결정하는 단계, 및
- 최적의 분산에 따라서 컴퓨터에 대하여 또는 컴퓨터 각각에 대하여 작업 또는 작업의 각각을 배치하는(deploying) 단계를 포함한다.
선행 기술 작업 부하 스케줄링 시스템과 대조적으로, 바람직한 실시예는 분산될 작업과 작업이 분산될 수 있는 자원의 상이한 특징(aspects)을 고려한다. 이 때문에, 바람직한 실시예의 근본적인 원리 중 하나는 각각의 작업이 상이한 특성을 갖고, 각각의 작업의 고유한 요구에 따라 개별적으로 최적화되어야 한다는 것이다.
게다가, 바람직한 실시예는 주어진 작업 분산이 다른 후속 작업의 동작에 미치는 영향을 인식한다는 점에 있어서 선행 기술 작업 부하 스케줄링 시스템과 다르다. 특히, 바람직한 실시예는, 주어진 자원으로의 작업의 배치(deployment)로 인해 자원이 작업에 의해 효과적으로 예약되게 함으로써 다른 후속 작업이 문제의(in question) 자원에 배치되는 것을 금지할 수 있다는 점을 인식한다.
본 발명의 실시예는 본 명세서에서 첨부된 도면을 참조하여 오직 예시를 위해 기술될 것이다.
도 1은 바람직한 실시예의 동작의 흐름도.
도 2는 바람직한 실시예에서의 복수의 작업의 예에 대한 자원 선택 정책의 표를 도시하는 도면.
도 3은 도 2에 도시되는 작업에 대한 바람직한 실시예에 의해 식별되는 자원의 표를 도시하는 도면.
도 4는 도 2에 도시되는 예에서의 작업에 대한 자원의 재배열된 표를 도시하는 도면.
도 5는 도 3에 열거되는 자원에 대한 바람직한 실시예에 의해 생성되는 정규화된 가중치(normalising weights)의 표를 도시하는 도면.
도 6은 도 2의 예에서 N개의 작업에 대한 가중치 기반 분산 객체(weight based distribution objective)의 표를 도시하는 도면.
도 7은 도 2의 예에서의 각 작업의 바람직한 자원에 대한 우선순위화된 가중치(prioritised weights)의 표를 도시하는 도면.
도 8은 일시적 문제(temporal issues)가 고려될 때에 대하여 호출되는(brought) 복수의 가능한 작업 부하 분산(workload distributions) 내에서의 작업 자원 쌍의 표를 도시하는 도면.
도 9는 도 8에 도시되는 작업 자원 쌍에 대한 전체 우선순위화된 가중치 값의 표를 도시하는 도면.
도 10은 바람직한 실시예의 이전 단계를 사용하여 결정되는 복수의 실제 작업 부하 분산 및 목표 분산(goal distribution)의 표를 도시하는 도면.
도 11은 도 10에 도시되는 작업, 자원 쌍에 대한 델타 제곱 분산 및 정규화된 델타 제곱 분산 값의 표를 도시하는 도면.
도 12는 복수의 작업 부하 분산 각각이 시스템의 작업 처리량(job throughput)에 얼마나 기여하는지에 대하여, 바람직한 실시예에 의해 결정되는 측정치의 표를 도시하는 도면.
도 13은 도 9 및 도 11에 도시되는 변수를 사용하여 바람직한 실시예에 의해 생성되는 최적화된 작업 부하 분산 값의 표를 도시하는 도면.
도 14는 바람직한 실시예가 동작하는 컴퓨터의 블록도.
A. 개요
바람직한 실시예는, 각각이 작업 부하 스케줄링 문제의 특정 특징을 최적화하도록 결정된 복수의 후보 작업 부하 분산(candidate workload distributions)으로부터, 최적 작업 부하 분산을 결정하기 위한 메카니즘을 제공한다. 보다 구체적으로, 도 1을 참조하면, 바람직한 실시예는 자원 선택 정책에 기초하여 작업 부하 분산 ((W(r k,jk)))을 결정한다(10). 이러한 작업 부하 분산 ((W(r k,jk)))으로부터, 바람직한 실시예는 선택적으로 작업 우선순위에 기초하여 작업 부하 분산 (PW(r k,jk))을 결정한다(12).
위의 변수들 중 하나 또는 모두로부터, 바람직한 실시예는 전체 우선순위화 가중치 변수(total prioritised weight parameter)에 기초하여 작업 부하 분산을 결정한다(14). 바람직한 실시예는 또한 이전에 결정된 후보 작업 부하 분산을 목표 분산에 정합시키려고 시도하는 작업 부하 분산을 결정한다(16). 유사하게, 바람직한 실시예는 작업 처리량(job throughput)을 최대화하려고 시도하는 추가적인 작업 부하 분산을 계산한다(18). 이러한 모든 작업 부하 분산으로부터, 바람직한 실시예는, 다음의 구성 요소를 효과적으로 고려하는 종합 최적 작업 부하 분산(an overall optimal workload distribution)을 계산한다(20).
- 각각의 작업의 자원 선택 정책,
- 작업 우선순위 (선택적),
- 업무 균형(work balancing), 및
- 작업 처리량
종합 최적 작업 부하 분산을 결정하는데 있어서, 바람직한 실시예는, {구간 [0-100]에서} 동종 값을 제공하고 모든 변수를 포함하는 목적 함수를 전개함으로써, 상기 변수에 기초하여 후보 작업 분산의 장점을 평가하고 비교한다.
예시를 위하여, 바람직한 실시예는 IBM 티볼리 동적 작업 부하 브로커(IBM Tivoli Dynamic Workload Broker; ITDWB)의 범위 내에서 기술된다. 그러나, 바람직한 실시예는 이러한 구현에 한정되는 것은 아니고, 대신 다양한 다른 소프트웨어 플랫폼으로 구현될 수 있다는 것이 이해될 것이다.
B. 상세한 설명
단계 1 : 자원 선택 정책에 기초하여 정규화된 독립적 작업 부하 분산을 결정
일반적으로 실행되는 작업은 (예를 들면, 이용가능한 디스크 공간, 메모리 등과 같은) 일련의 자원 제약을 갖고, 이러한 제약은 타겟(즉, "가능한" 자원)을 결정하며, 이 타겟으로 작업이 실행을 위해 배당될(submitted) 수 있다. 각각의 작업은 또한, 작업 요구를 충족시키는 가능한 자원의 순위를 매기는(ranks) 자원 선택 정책을 갖는다. 이러한 정책은 본래 가능한 자원의 특정 속성의 최대화 또는 최소화를 포함한다. 예를 들면, 많은 CPU 프로세싱을 요구하는 작업은 "CPU 사용율의 최소화(MINIMIZE CPU UTILIZATION)"를 자원 선택 정책으로 가질 수 있다. 이러한 경우, 적은 CPU 사용율을 갖는 가능한 자원이 선호된다. 유사하게, 많은 자유 메모리를 요구하는 작업은 "자유 메모리의 최대화(MAXIMIZE FREE MEMORY)"를 자원 선택 정책으로 가질 수 있다. 이러한 경우, 더 많은 자유 메모리를 갖는 가능 자원이 선호된다.
그러므로, 간결성을 위하여, 실행될 N개의 작업 J∈RN이 존재하고, 각각의 작업 jiJ 에 대한 m(i)개의 가능 자원 R i∈Rm(i)이 존재한다고 가정한다. 각각의 작업 ji는, RAttr이 최소화되거나 최대화되는 속성일 때, MIN|MAX RAttr(rip,ji) (i=1 에서 N, 및 p=1 에서 m(i)) 형식의 자원 선택 정책을 갖는다. 도 2를 참조하면, 예를 들어, 작업 j1이 최소 속성 값 RAttr(r1p, j1)를 갖는 자원을 선택하는 자원 선택 정책을 갖는다고 가정한다. 유사하게, 작업 j2가 최대 속성 값 RAttr(r2p, j2)를 갖는 가능 자원을 선택하는 자원 선택 정책을 갖고, 작업 j3가 최대 속성 값 RAttr(r3p, j3)를 갖는 가능 자원을 선택하는 자원 선택 정책을 갖는다고 가정한다. 보다 일반적으로, 작업 jn이 최대 속성 값 RAttr(rnp, jn)를 갖는 가능 자원을 선택하는 자원 선택 정책을 갖는다고 가정한다. 도 3을 참조하면, 예를 들어, 작업 j1, j2, j3, 및 jn에 대한 가능 자원을 r 1={r1,r2}, r 2={r1,r2,r3}, r 3={r2,r3,r4,r6}, 및 r n={r2,r5}로 가정한다. 바람직한 실시예는 작업의 자원 선택 정책 및 가능 자원의 관련 속성의 값에 기초하여 각각의 작업 ji의 가능 자원을 배열한다. 예를 들면, 만약 RAttr(r11, j1) > RAttr(r12, j1)이고 자원 선택 정책이 관련 속성의 최소화를 요구한다면, 작업 j1에 대해 배열된 자원 목록은 r2, r1이 될 것이다. 보다 일반적으로 도 4를 참조하면, 바람직한 실시예는 작업 j2에 대해 자원을 r1, r3, 및 r2로 재배열하고, 작업 j3에 대해 자원을 r2, r3, r6, 및 r4로 재배열하며, 작업 jn에 대해 자원을 r5 및 r2로 재배열하기 위해 도 2에 도시되는 자원 선택 정책을 사용한다.
이러한 배열 프로세스는 주어진 작업에 대한 최상의 가능 자원을 명시해주지만, 이는 최상의 가능 자원이 다른 가능 자원보다 얼마나 우월한지(excels)에 관한 어떠한 정보도 제공하지 않는다. 예를 들면, 바람직한 실시예는 10%의 CPU 사용율을 갖는 가능 자원이 11%의 CPU 사용율을 갖는 제1 다른 가능 자원 또는 90%의 CPU 사용율을 갖는 제2 다른 가능 자원보다 우월하다는 것을 결정할 수 있다. 그러나, 이는 최상의 가능 자원이 제1 다른 가능 자원보다 약간 우월하고, 제2 다른 가능 자원보다 훨씬 우월하다는 것을 나타내지 않는다. 유사한 문제가 자유 메모리와 같은 절대값을 갖는 자원 속성에 적용된다. 이러한 문제를 극복하기 위하여, 바람직한 실시예는 속성을 가중치로 0 - 100 범위에서 정규화한다. 예를 들면, 만약 작업 jk에 대한 자원 선택 정책이 최대화 동작(maximisation operation)을 포함한다면, 작업 jk에 대한 가능 자원 r k의 가중치 (W(r k, jk))는,
Figure pct00001
로 주어진다. 유사하게, 만약 작업 jk에 대한 자원 선택 정책이 최소화 동작(minimisation operation)을 포함한다면, 작업 jk에 대한 가능 자원 r k의 가중치 (W(r k, jk))는,
Figure pct00002
로 주어진다. 예를 들면, 만약 작업 j1에 대한 (CPU 사용율 10%, 11%, 및 90%를 갖는) 세 개의 가능 자원이 있고 자원 선택 정책이 최소화 동작을 포함한다면, 자원에 대한 정규화 가중치는,
W(r11,j1) = {(1/10)/(1/10+1/11+1/90)}*100
= {(1/10)/(0.20202)}*100 = 49.5
W(r21,j1) = {(1/11)/(1/10+1/11+1/90)}*100
= {(1/11)/(0.20202)}*100 = 45
W(r31,j1) = {(1/90)/(1/10+1/11+1/90)}*100
= {(1/90)/(0.20202)}*100 = 5.5 이다.
유사하게, 만약, 예를 들면, 작업 j1에 대해 1000Mb, 900Mb, 및 100Mb의 자유 메모리를 갖는 세 개의 자원이 존재하고, 작업의 자원 선택 정책이 최대화 동작을 포함한다면, 자원에 대한 정규화 가중치는,
W(r11,j1) = {(1000)/(1000+900+100)}*100
= {(1000)/(2000)}*100 = 50
W(r21,j1) = {(900)/(1000+900+100)}*100
= {(900)/(2000)}*100 = 45
W(r31,j1) = {(100)/(1000+900+100)}*100
= {(100)/(2000)}*100 = 5 이다.
도면 5를 참조하면, 이러한 프로세스는, 모든 이용가능한 자원에 걸친 일련의 작업 부하 분산으로 고려될 수 있는 비교가능한 선호 값 세트를 제공한다(작업의 어떤 요구와도 정합하지 않는 자원은 가중치로 0을 갖는다).
단계 2 : 작업 우선순위에 기초하여 독립적 작업 부하 분산을 결정
작업 부하 분산을 결정하기 위한 상기 메카니즘은 본래 이용가능한 자원의 상이한 속성을 평가하는 것에 초점을 맞춘다. 그러나, 작업 그 자체는 그들의 우선순위를 반영하여 상이한 속성을 갖는다. 바람직한 실시예는 각각의 작업의 각각의 가능한 자원에 대한 다음의 우선순위화 가중치(prioritized weight; PW)를 계산함으로써, 작업 부하 분산에 대한 작업 우선순위의 역할을 (선택적으로) 고려한다.
Figure pct00003
작업에 대한 결과적인 우선순위화 가중치는 도 7에 도시된다.
단계 3 : 전체 우선순위화 가중치 측정치를 계산
이전 단계는 임의의 주어진 시간에서 채택될 수 있는 특정 작업 부하 분산을 생성한다. 그러나, 이러한 단계는 자원 제약 및 예약의 일시적인 면(temporal aspects)을 고려하지 않는다. 도 8을 참조하면, 사실 이러한 특징이 고려될 때, 임의의 주어진 시간에 가능한 여러 상이한 작업 부하 분산이 존재할 수 있다는 것을 알 수 있다. 예를 들면, 만약 작업 j1 및 j2 모두가, 자원 r2가 아닌 자원 r1 전체를 소비하고 예약한다면(reserve), j1은 r1에 배치될 수 있고, j2는 r2에 배치될 수 있다. 이와 달리, j2는 r1에 배치될 수 있고, j1은 r2에 배치될 수 있거나, j1 및 j2가 r2에 배치될 수 있다.
간결성을 위하여, 그리고 이전 단계에서 결정된 작업 부하 분산과의 혼란을 피하기 위하여, 자원 제약 및 예약의 일시적인 면을 고려하여 생성된 작업 부하 분산은 지금부터 일시적 작업 부하 분산으로 알려질 것이다. 그러므로, 임의의 주어진 순간에서, n개의 가능한 일시적 작업 부하 분산 S가 존재하고, 각각의 S k(k=1에서 n)는 작업, 자원 쌍의 세트
Figure pct00004
(i=1에서 N)를 포함한다고 가정한다. 현재의 단계에서, 바람직한 실시예는 우선순위화 가중치에 기초하여 각각의 가능한 일시적 작업 부하 분산 S k의 장점을 평가한다. 이를 수행하기 위하여, 바람직한 실시예는 다음 식을 사용하여 각각의 일시적 작업 부하 분산 S k 의 모든 우선순위화 가중치
Figure pct00005
의 전체 우선순위화 가중치 값 TW(Sk)을 계산한다.
Figure pct00006
특히, 전체 우선순위화 가중치 TW(Sk) 값은 다음 식을 사용하여 0-100 범위에서 정규화된다.
Figure pct00007
전체 우선순위화 가중치 값 및 도 8의 일시적 작업 부하 분산의 정규화된 우선순위화 가중치 값은 도 9에 도시된다. 정규화된 전체 우선순위화 가중치 값은 각각의 개별적인 일시적 작업 부하 분산의 장점을 비교하기 위한 메트릭을 제공한다. 특히, 높은 값의 정규화된 전체 우선순위화 가중치는 좋은 일시적 작업 부하 분산을 나타낸다.
단계 4 : 목표 분산에 기초하여 분산 솔루션을 계산
많은 경우, 관리자는 이미 시스템에 대해 특정된 원하는 작업 부하 분산을 가질 수 있고, 원하는 작업 부하 분산은 목표 분산(goal distribution, GD)으로 알려진다. 예를 들면, 관리자는 작업 부하가 모든 자원에 걸쳐 동등하게 분산된다는 것을 특정해왔을 수 있다. 그러므로, 다섯 개의 자원이 주어질 때, 목표는 모든 자원에게 작업의 20%를 분산시키는 것이다. 그러나, 바람직한 실시예의 이전 단계가 이미 목표 분산(GD)와 다른 작업 부하 분산을 결과로 얻어왔을 수 있다. 이러한 문제를 해결하기 위하여, 바람직한 실시예는 델타 제곱 분산 합계(sum delta square distribution; ΔDk)를 계산하고, 이미 존재하는 분산(pre-existing distribution; PD) 및 후보 분산 Sk에 더해지면 이는 후보 분산을 목표 분산(GD)에 근접하게 한다. 따라서, 요컨대 바람직한 실시예는 후보 분산이 목표 분산을 어느 정도까지 달성하는 지에 대한 측정을 계산한다.
이미 존재하는 분산(PD)을 각각의 자원에 대해 이미 존재하는 작업의 수(Pre-existing Number of Jobs; PNJ)의 세트 {PNJ(R1), PNJ(R2), ..., PNJ(Rm)}로 정의한다고 가정하고, 이미 존재하는 작업의 수 PNJ는 알고리즘이 인커밍 작업에 기초하여 새로운 분산을 계산하는 것을 시작할 때 실행되는 작업의 수를 나타낸다. 게다가, 목표 분산(GD)이 각각의 자원에 대한 목표 분산(GD)의 세트 {GD(R1), GD(R2), ..., GD(Rm)} 로 정의된다고 가정한다. 분산 솔루션 Sk는 (주어진 시간 간격에서 시스템에 의해 수신되는) 복수의 인커밍 작업이 어떻게 유한한 수(m)의 자원에서 분산되는지에 관해 명시하는 것을 포함한다. 특히, 분산 솔루션 Sk은 일반적으로 각각의 이용가능한 자원에 분산되는 현재 작업의 수(current number of jobs; CNJk)의 세트로 기술될 수 있다(즉, Sk={CNJk(R1), CNJk(R2), .... CNJk(Rm)}). 예를 들어, 도 10을 참조하면, 세 개의 후보 분산 S1, S2, 및 S3 중에서 자원 R1에 분산되는 현재 작업의 수는 CNJ ( R 1 )={2,1,0}이다. 유사하게, 자원 R2에 분산되는 현재 작업의 수는 CNJ ( R 2 )={1,1,2}로 주어진다.
바람직한 실시예는, 아래의 식 (6)에 따라서 후보 분산(Sk) 및 이미 존재하는 분산(pre-existing distribution; PD)의 현재 작업의 수(CNJk(Ri i=1에서 m))의 조합으로부터 예측된 분산(projected distribution; PD)을 계산한다. m = 자원의 수일 때,
Figure pct00008
이러한 정보로부터, 다음의 식 (7)에 따라서 바람직한 실시예는 (각각의 자원에 대한) 델타 제곱 분산 합계 ΔDk를 계산한다.
Figure pct00009
다음의 식은 ΔDk가 다음과 같이 0-100으로 정규화될 때이다.
Figure pct00010
델타 제곱 분포 합계 ΔDk는 예상된 분산과 목표 분산 간의 차이(distance)를 나타낸다. 특히, 높은 값의 정규화된 델타 변수는 더 나은 후보 분산 솔루션을 나타낸다. 예를 들면, 가중치 분산은 도 10에 도시되며, 결과 PDk 및 ΔNDk는 도 11에 도시된다.
단계 5 : 처리량을 최대화하기 위한 목표에 기초하여 최상의 분산 솔루션을 계산
자원 제약 및 예약에 의존하여, (특정 작업 부하 분산 내의) 주어진 자원으로의 작업의 배치는 (첫 번째 작업이 끝날 때까지) 그 자원으로의 후속 작업의 배치를 금지할 수 있다. 결과적으로, 사실, 주어진 작업 부하 분산이 구현되는 동안 임의의 주어진 시간에서 활성화되는 상이한 수의 작업이 있을 수 있다. 이는 높은 처리량을 유지하려고 시도할 때 문제가 된다. 그러므로, 바람직한 실시예는 작업 부하 분산이 시스템의 처리량을 어느 정도까지 최대화할지에 관한 측정치를 계산한다. 특히, 각각의 자원에 대한 현재 작업의 수(CNJ)의 {CNJk(R1), CNJk(R2), ..., CNJk(Rm)}를 포함하는 작업 부하 분산 S k가 주어질 때, 주어진 작업 부하 분산 내에 배치되는 작업의 전체 수 TNJk는 식 (9)를 사용하여 계산된다.
Figure pct00011
각각의 솔루션에 대한 작업의 전체 수 TNJk는 각각의 작업 부하 분산에 대한 전체 작업 분산 TJD를 얻기 위해, 다음과 같이 0-100 범위 내의 값으로 정규화된다.
Figure pct00012
전체 작업 분산 TJD 값은 작업 부하 분산이 작업 처리량을 어느 정도까지 최대화하는지에 관한 측정치를 제공한다. 도 12에 도시된 분산이 주어질 때, 결과 TJDk는 TJD1 = 33.333333, TJD2=33.333333, 및 TJD3 = 33.333333으로 주어진다(이 경우, 모든 작업 부하 분산이 동일한 수의 작업을 분산시키기 때문에, 모든 TJDk 값은 동일하다).
단계 6 : 최적의 솔루션을 얻기 위한 모든 기준을 결합
이전의 단계에서, 바람직한 실시예는 상이한 관점으로부터 주어진 작업 부하 분산의 이득을 기술하는 정규화된 측정치(0-100)를 계산했다. 특히, 바람직한 실시예는,
- 개별적인 작업 자원 분산과 비교되는 솔루션의 장점의 측정치를 제공하는 정규화된 전체 가중치(TNWk),
- 목표 분산과 비교되는 솔루션의 장점의 측정치를 제공하는, 목표 분산으로부터의 정규화된 델타(ΔNDk), 및
- 각각의 솔루션에 대한 분산이 작업 처리량을 어느 정도까지 최대화할지에 관한 측정치를 제공하는 전체 작업 분산(TJDk) 값을 계산해왔다.
이러한 메트릭을 사용하여, 최적의 분산 OptD 솔루션은 다음의 식을 최대화하는 분산으로 정의될 수 있다.
Figure pct00013
α, μ, λ∈[0,1]은 상이한 기여분(contribution)을 갖거나 심지어 임의의 기준을 제외시키도록 사용될 수 있다. α, μ, λ의 디폴트는 1로 설정될 수 있어서, 최적의 솔루션은 평균이 이전에 식별된 모든 면에 대해 최상인 값이다.
상기 예에 기초하여, 결과 OptD 값은 도 13에 도시된다. 도 13을 참조하면, α, μ, λ이 1을 갖는 최적의 작업 부하 분산은 S3이라는 것을 알 수 있다. 이러한 작업 부하 분산은 개별적인 선호도의 정합(matching)에 대해 최상인 반면, 목표 분산을 정합시키는 데에는 최상이 아니며, 처리량에 대한 다른 값에 대해서도 동일하다.
바람직한 실시예가 동작하는 컴퓨터는 도 14에 도시된 일반적인 구조를 갖는다. 특히, 시스템의 일반적인 컴퓨터는 도면 부호 40으로 명시된다. 컴퓨터(40)는 시스템 버스(42)에 병렬로 연결되는 여러 장치(units)에 의해 형성된다. 구체적으로, 하나 이상의 마이크로프로세서(44)는 컴퓨터(40)의 동작을 제어하고, RAM(46)은 마이크로프로세서(44)에 의해 작업 메모리로 직접 사용되며, ROM(48)은 컴퓨터(40)의 부트스트랩에 대한 기본 코드를 저장한다. 주변 장치는 (각각의 인터페이스에 의하여) 로컬 버스(50) 주위로 클러스터링된다. 특히, 대용량 메모리(mass memory)는 하드 디스크(52) 및 CD-ROM(56)을 판독하기 위한 드라이브(54)를 포함한다. 게다가, 컴퓨터(40)는 (예를 들면, 키보드 및 마우스와 같은) 입력 장치(58) 및 (예를 들면, 모니터 및 프린터와 같은) 출력 장치(60)를 포함한다. 네트워크 인터페이스 카드(NIC; 62)는 컴퓨터(40)를 네트워크에 연결시키는데에 사용된다. 브릿지 장치(64)는 시스템 버스(42)를 로컬 버스(50)와 인터페이싱한다. 각각의 마이크로프로세서(44) 및 브릿지 장치(64)는 정보를 전송하기 위하여 시스템 버스(42)로의 접근을 요청하는 마스터 에이전트로서 동작할 수 있다. 중재자(arbiter; 66)는 시스템 버스(42)에 대한 상호 배제(mutual exclusion)를 통해 접근을 허가하는 것을 관리한다.
본 발명의 범위를 벗어나지 않는다면 상기 발명에 대하여 변형 및 수정이 행하여질 수 있다.

Claims (10)

  1. 복수의 작업을 복수의 컴퓨터에 분산시키는 방법으로서,
    복수의 일시적 분산(provisional distributions)을 생성하기 위하여, 상기 컴퓨터에 대한 상기 작업의 복수의 가능한 쌍(a plurality of possible pairing of the jobs)을 결정하는 단계;
    상기 일시적 분산이 각각의 작업의 개별적인 요구를 어느 정도까지 충족시키는지에 따라서 상기 일시적 분산의 순위를 매기는(ranking) 단계;
    상기 일시적 분산이 미리 정의된 분산(a predefined distribution)에 어느 정도까지 정합하는지에 따라서 상기 일시적 분산의 순위를 매기는 단계;
    상기 일시적 분산이 상기 컴퓨터의 처리량을 어느 정도까지 최대화하는지에 따라서 상기 일시적 분산의 순위를 매기는 단계;
    상기 순위들로부터 최적의 분산을 결정하는 단계; 및
    상기 최적의 분산에 따라서 상기 컴퓨터에 대하여 또는 상기 컴퓨터 각각에 대하여 상기 작업 또는 상기 작업의 각각을 배치하는(deploying) 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 컴퓨터에 대한 상기 작업의 복수의 가능한 쌍을 결정하는 단계는,
    상기 작업의 요구를 충족시키는 자원을 갖는 컴퓨터에 제1 작업을 할당하고, 나머지 작업(the remaining jobs)의 요구를 충족시키는 자원을 갖는 나머지 컴퓨터에 상기 나머지 작업을 할당함으로써, 제1 일시적 분산(a first provisional distribution)을 생성하는 단계; 및
    상기 제1 작업의 요구를 충족시키는 자원을 갖는 모든 컴퓨터에 대하여 제1 일시적 분산을 생성하는 단계를 반복하는 단계
    를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 일시적 분산이 각각의 작업의 개별적인 요구를 어느 정도까지 충족시키는지에 따라서 상기 일시적 분산의 순위를 매기는 단계는,
    각각의 작업의 자원 선택 정책에 따라서 각각의 일시적 분산에 대한 복수의 제1 변수를 결정하는 단계(10); 및/또는
    각각의 작업의 우선순위에 따라서 각각의 일시적 분산에 대한 복수의 제2 변수를 결정하는 단계(12); 및
    상기 제1 변수 및 상기 제2 변수 중 하나 또는 모두로부터 각각의 일시적 분산에 대한 순위를 결정하는 단계(14)
    를 포함하는, 방법.
  4. 제3항에 있어서, 상기 각각의 일시적 분산에 대한 복수의 제1 변수를 결정하는 단계는,
    각각의 작업의 자원 선택 정책과 연관된 자원 속성을 식별하는 단계;
    각각의 컴퓨터에 대한 상기 자원 속성의 값을 결정하는 단계; 및
    각각의 컴퓨터 자원 속성이 다른 컴퓨터의 상기 자원 속성과 비교할 때 상기 자원 선택 정책을 어느 정도까지 충족시키는지에 따라서 상기 컴퓨터의 순위를 매기는 단계
    를 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 일시적 분산이 미리 정의된 분산에 어느 정도까지 정합하는지에 따라서 상기 일시적 분산의 순위를 매기는 단계는,
    각각의 컴퓨터에 할당된 작업의 수를 각각의 컴퓨터 상에서 현재 실행되고 있는 작업의 수와 합산하는 단계; 및
    상기 미리 정의된 분산 내의 할당된 상기 작업의 수를 사용하여 각각의 컴퓨터에 대해 상기 합산된 작업의 수를 감산하는(subtracting) 단계
    를 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 일시적 분산이 상기 컴퓨터의 처리량을 어느 정도까지 최대화하는지에 따라서 상기 일시적 분산의 순위를 매기는 단계는,
    각각의 일시적 분산에 의해 상기 컴퓨터에 할당되는 작업의 총 수(total number)가 되는 제1 할당 변수를 계산하는 단계;
    상기 일시적 분산의 모두에 의해 상기 컴퓨터의 모두에 할당되는 작업의 총 수인 제2 할당 변수를 계산하는 단계; 및
    상기 제1 할당 변수에 의해 형성되는 상기 제2 할당 변수의 퍼센트를 계산하는 단계
    를 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 순위들로부터 최적의 분산을 결정하는 단계는 상기 순위들의 최대로 값이 매겨지는 조합(a maximally valued combination of the rankings)을 갖는 상기 일시적 분산을 선택하는 단계를 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 복수의 가능한 쌍은 상기 컴퓨터에 대한 상기 작업의 모든 가능한 쌍을 포함하는, 방법.
  9. 복수의 작업을 복수의 컴퓨터에 분산시키기 위한 시스템으로서, 제1항 내지 제8항 중 어느 한 항의 방법의 상기 단계들을 수행하도록 구성된(adapted) 수단을 포함하는, 시스템.
  10. 복수의 작업을 복수의 컴퓨터에 분산시키기 위하여, 데이터 프로세싱 시스템 상에서 실행되는 컴퓨터 프로그램을 수록한, 컴퓨터 기계에 의해 판독가능한 매체 상에 저장되는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품은 제1항 내지 제8항 중 어느 한 항의 방법을 수행하기 위한 상기 컴퓨터 프로그램을 실체적으로(tangibly) 구체화하는, 컴퓨터 프로그램 제품.
KR1020107010112A 2007-10-31 2008-08-05 복수의 작업을 복수의 컴퓨터에 분산시키기 위한 방법, 시스템 및 컴퓨터 프로그램 KR20100081341A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07119759 2007-10-31
EP07119759.4 2007-10-31

Publications (1)

Publication Number Publication Date
KR20100081341A true KR20100081341A (ko) 2010-07-14

Family

ID=40023214

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107010112A KR20100081341A (ko) 2007-10-31 2008-08-05 복수의 작업을 복수의 컴퓨터에 분산시키기 위한 방법, 시스템 및 컴퓨터 프로그램

Country Status (4)

Country Link
EP (1) EP2208137A1 (ko)
KR (1) KR20100081341A (ko)
CN (1) CN101836190B (ko)
WO (1) WO2009056371A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200125894A (ko) * 2019-04-24 2020-11-05 알리바바 그룹 홀딩 리미티드 분산 자원 할당
US11093253B2 (en) 2019-04-24 2021-08-17 Advanced New Technologies Co., Ltd. Distributed resource allocation
US20210281610A1 (en) * 2020-02-26 2021-09-09 CloudKnox Security, Inc. Method and System for Quantifying and Improving Conformance to Least Privilege Security Policies
KR20220170428A (ko) * 2021-06-23 2022-12-30 한국과학기술원 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9322995B2 (en) 2008-09-12 2016-04-26 Cornell University Optical force based biomolecular analysis in slot waveguides
CN102567086B (zh) * 2010-12-30 2014-05-07 中国移动通信集团公司 一种任务调度的方法、设备和系统
JP5627625B2 (ja) * 2012-03-22 2014-11-19 株式会社東芝 スケジューリング装置およびその方法
CN103076777B (zh) * 2012-12-27 2016-09-14 深圳先进技术研究院 一种控制多机器人服务量的处理方法及系统
US10712796B2 (en) * 2014-08-22 2020-07-14 Intel Corporation Method and apparatus to generate and use power, thermal and performance characteristics of nodes to improve energy efficiency and reducing wait time for jobs in the queue
EP3591525A1 (de) * 2018-07-05 2020-01-08 Siemens Aktiengesellschaft Verteilen von unteranwendungen einer bestimmten anwendung auf rechner von plattformen zumindest zweier verschiedener ebenen
CN112559347B (zh) * 2020-12-15 2024-02-20 北京百度网讯科技有限公司 测试分配方法及装置、设备、可读介质和计算机程序产品

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941365B2 (en) * 2000-07-28 2005-09-06 Lockheed Martin Corporation Computer resource allocation layout description
US7054934B2 (en) * 2001-10-26 2006-05-30 Hewlett-Packard Development Company, L.P. Tailorable optimization using model descriptions of services and servers in a computing environment
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
US7406689B2 (en) * 2005-03-22 2008-07-29 International Business Machines Corporation Jobstream planner considering network contention & resource availability
US20070039004A1 (en) * 2005-08-15 2007-02-15 Honeywell International Inc. Decentralized coordination of resource usage in multi-agent systems

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200125894A (ko) * 2019-04-24 2020-11-05 알리바바 그룹 홀딩 리미티드 분산 자원 할당
US11093253B2 (en) 2019-04-24 2021-08-17 Advanced New Technologies Co., Ltd. Distributed resource allocation
US11314519B2 (en) 2019-04-24 2022-04-26 Advanced New Technologies Co., Ltd. Distributed resource allocation
US20210281610A1 (en) * 2020-02-26 2021-09-09 CloudKnox Security, Inc. Method and System for Quantifying and Improving Conformance to Least Privilege Security Policies
US11818175B2 (en) * 2020-02-26 2023-11-14 Microsoft Technology Licensing, Llc Method and system for quantifying and improving conformance to least privilege security policies
KR20220170428A (ko) * 2021-06-23 2022-12-30 한국과학기술원 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러

Also Published As

Publication number Publication date
CN101836190A (zh) 2010-09-15
EP2208137A1 (en) 2010-07-21
WO2009056371A1 (en) 2009-05-07
CN101836190B (zh) 2013-03-13

Similar Documents

Publication Publication Date Title
KR20100081341A (ko) 복수의 작업을 복수의 컴퓨터에 분산시키기 위한 방법, 시스템 및 컴퓨터 프로그램
US8185902B2 (en) Method, system and computer program for distributing a plurality of jobs to a plurality of computers
Khorsand et al. An energy‐efficient task‐scheduling algorithm based on a multi‐criteria decision‐making method in cloud computing
Breitbach et al. Context-aware data and task placement in edge computing environments
Singh et al. Resource provisioning and scheduling in clouds: QoS perspective
US9537726B2 (en) System and method for providing threshold-based access to compute resources
Patki et al. Practical resource management in power-constrained, high performance computing
Feldman et al. A price-anticipating resource allocation mechanism for distributed shared clusters
Patel et al. Survey on resource allocation strategies in cloud computing
Ramírez-Alcaraz et al. Job allocation strategies with user run time estimates for online scheduling in hierarchical grids
US20070250837A1 (en) System and method for adjusting multiple resources across multiple workloads
Gao et al. Chronus: A novel deadline-aware scheduler for deep learning training jobs
Yao et al. Self-adjusting slot configurations for homogeneous and heterogeneous hadoop clusters
Braun et al. Static resource allocation for heterogeneous computing environments with tasks having dependencies, priorities, deadlines, and multiple versions
Zhang et al. Heterogeneity aware dominant resource assistant heuristics for virtual machine consolidation
US20140137122A1 (en) Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements
Han et al. Workload-adaptive configuration tuning for hierarchical cloud schedulers
Kim et al. Exploring the design space of fair scheduling supports for asymmetric multicore systems
Mogouie et al. A novel approach for optimization auto-scaling in cloud computing environment
Mollamotalebi et al. Multi-objective dynamic management of virtual machines in cloud environments
Kavyasri et al. Comparative study of scheduling algorithms to enhance the performance of virtual machines in cloud computing
Beltrán et al. How to balance the load on heterogeneous clusters
Maniyar et al. Review on round robin algorithm for task scheduling in cloud computing
Ali et al. Robust resource allocation for sensor-actuator distributed computing systems
Bey et al. Load balancing heuristic for tasks scheduling in cloud environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application