1 |
1
프로파일 관리부가 시스템 상태 정보 또는 CPU 프로세서 또는 GPU 프로세서에서 처리된 태스크의 이력 정보를 포함한 성능 프로파일 정보를 저장 관리하는 단계;작업량 분배부가 상기 성능 프로파일 정보를 분석하여 CPU 프로세서 또는 GPU 프로세서에 할당할 태스크의 비율과 작업량을 동적으로 조절하는 작업량 분배 정보를 생성하여 태스크 관리부에 전달하는 단계; 및태스크 관리부가 데이터 저장부에 저장된 데이터를 CPU 프로세서 또는 GPU 프로세서에 할당하여 처리하기 위해 태스크를 생성하고, 상기 작업량 분배 정보를 기반으로 상기 생성된 태스크를 스케줄링하는 단계;를 포함하고,상기 스케줄링하는 단계는,상기 CPU 프로세서와 GPU 프로세서에서 동시에 태스크를 처리하기 위해 각 프로세서를 위한 멀티 쓰레드들을 생성하는 단계(상세한 설명 단락 0029); 및상기 멀티 쓰레드들이 동시에 상기 데이터를 가져오려고 할 때 상기 데이터 저장부에 정의된 뮤텍스(mutex), 세마포어(semaphore) 또는 읽기-쓰기 락(Reader-Writer-Lock) 중 어느 하나의 방식을 이용하여 허가된 멀티 쓰레드들만이 상기 데이터를 가져와서 상기 태스크를 처리하도록 스케줄링하는 단계를 포함하는 태스크 스케줄링 방법
|
2 |
2
삭제
|
3 |
3
제1항에서, 상기 스케줄링하는 단계는,상기 CPU 프로세서와 상기 GPU 프로세서에서 데이터를 처리하는 태스크의 수행 시간을 일정 횟수 반복 측정하여 상기 CPU 프로세서와 상기 GPU 프로세서에 할당할 초기 태스크의 비율과 작업량을 결정하는 단계; 및상기 작업량 분배 정보를 기반으로 상기 CPU 프로세서와 상기 GPU 프로세서 각각에서 처리할 태스크의 비율과 작업량을 동적으로 조절하는 단계를 포함하는 태스크 스케줄링 방법
|
4 |
4
제1항에서 상기 스케줄링하는 단계는,정적 태스크 스케줄링 방식 또는 동적 태스크 스케줄링 방식을 기반으로 상기 태스크를 스케줄링하는 단계; 및프로세서와 태스크의 특성을 고려하여 순차적인 처리를 요구하는 태스크는 상기 CPU 프로세서에 할당하고, 병렬적인 처리를 요구하는 병렬 태스크는 상기 GPU 프로세서에 할당하도록 스케줄링하는 것인 태스크 스케줄링 방법
|
5 |
5
제1항에서, 상기 스케줄링하는 단계는,워크 스틸링(work stealing) 또는 워크 쉐어링(work sharing) 방식을 기반으로 상기 태스크를 스케줄링하는 것인 태스크 스케줄링 방법
|
6 |
6
제1항에서, 상기 시스템 상태 정보는,프로세서의 코어 수, 프로세서 속도, 프로세서 사용율, 메모리 사용률, 디스크 사용율 및 네트워크 사용율을 포함하는 것인 태스크 스케줄링 방법
|
7 |
7
제1항에서, 상기 태스크의 이력 정보는,상기 태스크에 할당된 데이터의 크기, 멀티 쓰레드의 유휴 상태, 상기 태스크의 특성, 상기 태스크의 처리 예상 시간, 상기 태스크 관리부에서 처리한 CPU 또는 GPU 프로세서의 태스크 수행 결과 정보를 포함하는 것인 태스크 스케줄링 방법
|
8 |
8
제1항에서, 상기 스케줄링하는 단계는,분산 시스템 환경에서 상기 데이터 저장부가 다수인 경우, 데이터의 지역성(locality)을 고려하여 데이터가 위치한 곳의 CPU 프로세서 또는 GPU 프로세서에 태스크가 할당되도록 스케줄링하는 것인 태스크 스케줄링 방법
|
9 |
9
제1항에서, 상기 스케줄링 하는 단계는,시스템의 사양을 고려하여 일정한 수의 멀티 쓰레드들로 구성된 쓰레드 풀(pool)을 구성하고 데이터가 입력될 때 상기 쓰레드 풀에서 기 생성된 쓰레드를 꺼내어 처리하고 재사용하는 방식으로 상기 태스크를 스케줄링하는 것인 태스크 스케줄링 방법
|
10 |
10
입력되는 데이터를 저장하는 데이터 저장부;상기 데이터 저장부에 저장된 데이터를 CPU 프로세서 또는 GPU 프로세서에 할당하여 처리하기 위해 태스크를 생성하고 스케줄링하는 태스크 관리부;시스템 상태 정보 또는 상기 태스크 관리부를 통해 CPU 프로세서 또는 GPU 프로세서에서 처리된 태스크의 이력 정보를 포함한 성능 프로파일 정보를 저장 관리하는 프로파일 관리부; 및상기 프로파일 관리부에서 저장 관리되는 성능 프로파일 정보를 분석하여 CPU 프로세서 또는 GPU 프로세서에 할당할 태스크의 비율과 작업량을 동적으로 조절하여 작업량 분배 정보를 생성하고 상기 태스크 관리부에 전달하는 작업량 분배부;를 포함하고,상기 태스크 관리부는,상기 CPU 프로세서와 GPU 프로세서에서 동시에 태스크를 처리하기 위해 각 프로세서를 위한 멀티 쓰레드들을 생성하고, 상기 멀티 쓰레드들이 동시에 상기 데이터를 가져오려고 할 때 상기 데이터 저장부에 정의된 뮤텍스(mutex), 세마포어(semaphore) 또는 읽기-쓰기 락(Reader-Writer-Lock) 중 어느 하나의 방식을 이용하여 허가된 멀티 쓰레드들만이 상기 데이터를 가져와서 상기 태스크를 처리하도록 스케줄링하는 태스크 스케줄링 장치
|