1 |
1
복수의 작업들을 포함하는 컴퓨팅 작업(task)을 복수의 연산 서버들에 스케줄링하는 제어 서버에 있어서, 송수신부; 메모리; 및 단말로부터 상기 컴퓨팅 작업을 수신하고, 상기 컴퓨팅 작업에 포함된 상기 복수의 작업들 각각의 의존 관계에 기초하여 작업 의존성 그래프(task dependency graph)를 생성하고, 상기 복수의 연산 서버들 각각의 연산 처리 용량 정보 및 복수의 연산 서버들 사이의 전송 지연 시간 정보를 획득하고, 상기 작업 의존성 그래프, 상기 연산 처리 용량 정보, 및 상기 전송 지연 시간 정보에 기초하여, 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 스케줄링하고, 상기 복수의 연산 서버들 중 적어도 하나의 연산 서버로부터 수신한 상기 복수의 작업들의 수행 결과를 상기 단말에 송신하도록 제어하는 적어도 하나의 프로세서를 포함하는, 제어 서버
|
2 |
2
제1항에 있어서, 상기 적어도 하나의 프로세서는, 상기 복수의 작업들 각각의 연산 복잡도를 식별하고, 상기 복수의 작업들 중 적어도 하나의 작업을 적어도 하나의 부속 작업(sub-task)으로 변환함으로써, 상기 복수의 작업들 각각의 연산 복잡도를 조정하고, 상기 연산 복잡도가 조정된 복수의 작업들 각각의 의존 관계에 기초하여 상기 작업 의존성 그래프를 생성하는, 제어 서버
|
3 |
3
제1항에 있어서, 상기 적어도 하나의 프로세서는, 상기 복수의 작업들 중 제2 작업이 제1 작업과 의존 관계를 갖는 경우, 상기 제1 작업이 할당된 제1 연산 서버에 상기 제2 작업을 할당하고, 상기 제1 연산 서버에 상기 제2 작업을 할당할 수 없는 경우, 상기 전송 지연 시간 정보에 기초하여 상기 제2 작업을 할당할 수 있는 연산 서버 중 상기 제1 연산 서버로부터의 전송 지연 시간이 가장 짧은 제2 연산 서버에 상기 제2 작업을 할당하는, 제어 서버
|
4 |
4
제1항에 있어서, 상기 적어도 하나의 프로세서는, 상기 복수의 작업들 중 제2 작업이 제1 작업과 의존 관계를 갖는 경우, 상기 제1 작업이 할당된 제1 연산 서버에 상기 제2 작업을 할당하고, 상기 제1 연산 서버에 상기 제2 작업을 할당할 수 없는 경우, 상기 전송 지연 시간 정보에 기초하여 상기 제1 연산 서버로부터의 전송 지연 시간이 가장 짧은 제2 연산 서버에 상기 제2 작업을 할당하고, 상기 제2 연산 서버에 상기 제2 작업을 할당할 수 없는 경우, 상기 연산 처리 용량 정보에 기초하여 상기 복수의 연산 서버들 중 가장 큰 연산 처리 용량을 가진 제3 연산 서버에 상기 제2 작업을 할당하는, 제어 서버
|
5 |
5
제1항에 있어서, 상기 제어 서버는, 상기 복수의 연산 서버들 각각은 복수의 VM(virtual machine)들을 포함하고, 상기 적어도 하나의 프로세서는, 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 할당하고 상기 복수의 작업들 각각이 수행되는 시간을 결정함으로써 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 스케줄링하고, 제1 연산 서버의 제1 VM에 할당된 제1 작업 및 제2 작업에 대해, 상기 제1 작업이 수행되는 시간과 상기 제2 작업이 수행되는 시간이 적어도 일부 중복되는 경우, 상기 제2 작업을 제1 연산 서버의 제2 VM에 할당하고 상기 제2 작업이 수행되는 시간을 결정하거나, 상기 제1 작업이 수행된 후 상기 제2 작업이 수행되도록 상기 제2 작업이 수행되는 시간을 결정하는, 제어 서버
|
6 |
6
제1항에 있어서, 상기 적어도 하나의 프로세서는, 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 할당하고 상기 복수의 작업들 각각이 수행되는 시간을 결정함으로써 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 스케줄링하고, 상기 복수의 작업들 각각의 연산 복잡도를 식별하고, 상기 복수의 작업들 중 적어도 하나의 작업을 적어도 하나의 부속 작업(sub-task)으로 변환함으로써, 상기 복수의 작업들 각각의 연산 복잡도를 조정하고, 상기 연산 복잡도가 조정된 복수의 작업들 각각의 의존 관계에 따라, 펼쳐진(spread) 작업 의존성 그래프를 생성하고, 상기 펼쳐진 작업 의존성 그래프에 기초하여 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 할당하고, 연산 복잡도가 조정되지 않은 상기 복수의 작업들 각각의 의존 관계에 기초하여 생성된 상기 작업 의존성 그래프에 기초하여 상기 복수의 작업들 각각이 수행되는 시간을 결정하는, 제어 서버
|
7 |
7
제어 서버에 복수의 작업들을 포함하는 컴퓨팅 작업(task)을 오프로딩하는 단말에 있어서, 송수신부; 메모리; 및 상기 제어 서버에 상기 컴퓨팅 작업을 송신하고, 상기 제어 서버 또는 적어도 하나의 연산 서버로부터 상기 복수의 작업들의 수행 결과를 수신하도록 제어하는 적어도 하나의 프로세서를 포함하고, 상기 수행 결과는, 상기 복수의 작업들이 상기 복수의 작업들 각각의 의존 관계에 기초하여 생성된 작업 의존성 그래프(task dependency graph), 복수의 연산 서버들 각각의 연산 처리 용량 정보 및 복수의 연산 서버들 사이의 전송 지연 시간 정보에 기초하여 스케줄링된 상기 복수의 연산 서버로부터 상기 복수의 작업들이 수행된 결과인, 단말
|
8 |
8
제어 서버가 복수의 작업들을 포함하는 컴퓨팅 작업(task)을 복수의 연산 서버들에 스케줄링하는 방법에 있어서, 단말로부터 상기 컴퓨팅 작업을 수신하는 단계; 상기 컴퓨팅 작업에 포함된 상기 복수의 작업들 각각의 의존 관계에 기초하여 작업 의존성 그래프(task dependency graph)를 생성하는 단계; 상기 복수의 연산 서버들 각각의 연산 처리 용량 정보 및 복수의 연산 서버들 사이의 전송 지연 시간 정보를 획득하는 단계; 상기 작업 의존성 그래프, 상기 연산 처리 용량 정보, 및 상기 전송 지연 시간 정보에 기초하여, 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 스케줄링하는 단계; 상기 복수의 연산 서버들 중 적어도 하나의 연산 서버로부터 수신한 상기 복수의 작업들의 수행 결과를 상기 단말에 송신하는 단계를 포함하는, 스케줄링 방법
|
9 |
9
제8항에 있어서, 상기 작업 의존성 그래프를 생성하는 단계는, 상기 복수의 작업들 각각의 연산 복잡도를 식별하는 단계; 상기 복수의 작업들 중 적어도 하나의 작업을 적어도 하나의 부속 작업(sub-task)으로 변환함으로써, 상기 복수의 작업들 각각의 연산 복잡도를 조정하는 단계; 및 상기 연산 복잡도가 조정된 복수의 작업들 각각의 의존 관계에 기초하여 상기 작업 의존성 그래프를 생성하는 단계를 포함하는, 스케줄링 방법
|
10 |
10
제8항에 있어서, 상기 스케줄링하는 단계는, 상기 복수의 작업들 중 제2 작업이 제1 작업과 의존 관계를 갖는 경우, 상기 제1 작업이 할당된 제1 연산 서버에 상기 제2 작업을 할당하고, 상기 제1 연산 서버에 상기 제2 작업을 할당할 수 없는 경우, 상기 전송 지연 시간 정보에 기초하여 상기 제2 작업을 할당할 수 있는 연산 서버 중 상기 제1 연산 서버로부터의 전송 지연 시간이 가장 짧은 제2 연산 서버에 상기 제2 작업을 할당하는 단계를 포함하는, 스케줄링 방법
|
11 |
11
제8항에 있어서, 상기 스케줄링하는 단계는, 상기 복수의 작업들 중 제2 작업이 제1 작업과 의존 관계를 갖는 경우, 상기 제1 작업이 할당된 제1 연산 서버에 상기 제2 작업을 할당하고, 상기 제1 연산 서버에 상기 제2 작업을 할당할 수 없는 경우, 상기 전송 지연 시간 정보에 기초하여 상기 제1 연산 서버로부터의 전송 지연 시간이 가장 짧은 제2 연산 서버에 상기 제2 작업을 할당하고, 상기 제2 연산 서버에 상기 제2 작업을 할당할 수 없는 경우, 상기 연산 처리 용량 정보에 기초하여 상기 복수의 연산 서버들 중 가장 큰 연산 처리 용량을 가진 제3 연산 서버에 상기 제2 작업을 할당하는 단계를 포함하는, 스케줄링 방법
|
12 |
12
제8항에 있어서, 상기 복수의 연산 서버들 각각은 복수의 VM(virtual machine)들을 포함하고, 상기 스케줄링하는 단계는, 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 할당하는 단계; 및 상기 복수의 작업들 각각이 수행되는 시간을 결정하는 단계를 포함하고, 상기 수행되는 시간을 결정하는 단계는, 제1 연산 서버의 제1 VM에 할당된 제1 작업 및 제2 작업에 대해, 상기 제1 작업이 수행되는 시간과 상기 제2 작업이 수행되는 시간이 적어도 일부 중복되는 경우, 상기 제2 작업을 제1 연산 서버의 제2 VM에 할당하고 상기 제2 작업이 수행되는 시간을 결정하거나, 상기 제1 작업이 수행된 후 상기 제2 작업이 수행되도록 상기 제2 작업이 수행되는 시간을 결정하는, 스케줄링 방법
|
13 |
13
제12항에 있어서, 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 할당하는 단계는, 상기 복수의 작업들 각각의 연산 복잡도를 식별하는 단계; 상기 복수의 작업들 중 적어도 하나의 작업을 적어도 하나의 부속 작업(sub-task)으로 변환함으로써, 상기 복수의 작업들 각각의 연산 복잡도를 조정하는 단계; 상기 연산 복잡도가 조정된 복수의 작업들 각각의 의존 관계에 따라, 펼쳐진(spread) 작업 의존성 그래프를 생성하는 단계; 및 상기 펼쳐진 작업 의존성 그래프에 기초하여 상기 복수의 작업들 각각을 상기 복수의 연산 서버들에 할당하는 단계를 포함하고, 상기 수행되는 시간을 결정하는 단계는, 연산 복잡도가 조정되지 않은 상기 복수의 작업들 각각의 의존 관계에 기초하여 생성된 상기 작업 의존성 그래프에 기초하여 상기 복수의 작업들 각각이 수행되는 시간을 결정하는 단계를 포함하는, 스케줄링 방법
|
14 |
14
단말이 제어 서버에 복수의 작업들을 포함하는 컴퓨팅 작업(task)을 오프로딩하는 방법에 있어서, 상기 제어 서버에 상기 컴퓨팅 작업을 송신하는 단계; 및상기 제어 서버 또는 적어도 하나의 연산 서버로부터 상기 복수의 작업들의 수행 결과를 수신하는 단계를 포함하고, 상기 수행 결과는, 상기 복수의 작업들이 상기 복수의 작업들 각각의 의존 관계에 기초하여 생성된 작업 의존성 그래프(task dependency graph), 복수의 연산 서버들 각각의 연산 처리 용량 정보 및 복수의 연산 서버들 사이의 전송 지연 시간 정보에 기초하여 스케줄링된 상기 복수의 연산 서버로부터 상기 복수의 작업들이 수행된 결과인, 오프로딩 방법
|
15 |
15
제8항의 방법을 수행하도록 하는 프로그램이 저장된 기록매체를 포함하는 컴퓨터 프로그램 제품
|