KR101879419B1 - 병렬처리 알고리즘을 이용한 태스크 분배 방법 - Google Patents

병렬처리 알고리즘을 이용한 태스크 분배 방법 Download PDF

Info

Publication number
KR101879419B1
KR101879419B1 KR1020170032757A KR20170032757A KR101879419B1 KR 101879419 B1 KR101879419 B1 KR 101879419B1 KR 1020170032757 A KR1020170032757 A KR 1020170032757A KR 20170032757 A KR20170032757 A KR 20170032757A KR 101879419 B1 KR101879419 B1 KR 101879419B1
Authority
KR
South Korea
Prior art keywords
tasks
gpu
task
parallel processing
cpu
Prior art date
Application number
KR1020170032757A
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 주식회사 클래스액트
Priority to KR1020170032757A priority Critical patent/KR101879419B1/ko
Application granted granted Critical
Publication of KR101879419B1 publication Critical patent/KR101879419B1/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

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

본 발명은 병렬처리 알고리즘을 이용한 태스크 분배 방법에 관한 것으로서, 보다 구체적으로는 병렬처리 알고리즘을 이용한 태스크 분배 방법으로서, (1) 이기종 컴퓨팅 플랫폼 환경에서 처리되어야 할 n개의 태스크에 대한 수행 시나리오를 구현 그래프(Implementation Graph)로 구성하는 단계; (2) 상기 단계 (1)에서 구성된 구현 그래프를 이용하여 상기 n개의 태스크별로 이기종 컴퓨팅 플랫폼 환경으로 구비되는 디바이스CPU와 디바이스GPU 각각에서 수행시켜 측정된 수행시간을 구하는 단계; 및 (3) 상기 단계 (2)에서 수행하여 측정된 디바이스CPU와 디바이스 GPU의 수행시간을 기준으로 상기 n개의 태스크별 적합한 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 병렬처리 알고리즘을 이용한 태스크 분배 방법에 따르면, n개의 태스크를 CPU와 GPU로 구성되는 이기종 컴퓨팅 플랫폼에서 효과적으로 수행하기 위해서 주어진 응용을 구현 그래프로 표현하고, 이를 활용한 태스크 분배를 통해 최적의 스케줄링이 제공될 수 있도록 할 수 있다.
또한, 본 발명에 따르면, 각 태스크별로 OpenCL로 작성된 병렬 프로그램을 디바이스CPU와 디바이스GPU 각각에서 수행하여 측정된 수행시간을 기준으로 n개의 태스크별로 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하여 n개의 태스크에 대한 분배를 최종 결정하도록 구성함으로써, n개의 태스크에 대한 분배의 병렬 처리를 통한 n개의 태스크에 대한 수행 시나리오의 전체 수행시간이 단축되고, 그에 따른 최적의 스케줄링 성능이 향상될 수 있도록 할 수 있다.

Description

병렬처리 알고리즘을 이용한 태스크 분배 방법{A TASK DISTRIBUTION METHOD USING PARALLEL PROCESSING ALGORITHM}
본 발명은 병렬처리 알고리즘을 이용한 태스크 분배 방법에 관한 것으로서, 보다 구체적으로는 n개의 태스크를 CPU와 GPU로 구성되는 이기종 컴퓨팅 플랫폼에서 효과적으로 수행하기 위해서 주어진 응용을 구현 그래프로 표현하고, 이를 활용한 태스크 분배를 통해 최적의 스케줄링이 제공될 수 있도록 하는 병렬처리 알고리즘을 이용한 태스크 분배 방법에 관한 것이다.
최근 고성능 컴퓨팅과 모바일 컴퓨팅 분야에서 성능가속기인 GPU(Graphics Processing Unit), DSP(Digital Signal Processing), FPGA(Field Programmable Gate Array) 등을 사용하여 성능을 개선하는 연구가 활발히 진행되고 있다. 그러나 GPU의 범용 병렬프로그래밍 프레임워크인 CUDA(Compute Unified Device Architecture)의 경우 엔비디아(NVIDIA) 계열의 제품에서만 동작하는 단점이 있고, CPU와 같은 마이크로프로세서에서는 지원을 하지 않는다. 이러한 이식성(portability)의 문제점을 해결한 것이 최근 발표된 개방형 범용 병렬 컴퓨팅 프레임워크인 OpenCL이다.
많은 OpenCL 응용들은 성능가속기를 대상으로 병렬처리를 하고 있고, 성능가속기 중에서도 GPU를 사용하여 여러 응용들을 병렬처리 한 연구가 발표되었다. 그러나 주어진 태스크의 계산 특성과 수행 플랫폼 내 CPU-GPU의 상대적인 성능에 따라서 멀티코어 CPU를 이용한 병렬처리가 더 좋은 성능을 제공할 수도 있다. 또한, 태스크 스케줄링에 대한 많은 기존 연구가 있지만, 대부분의 경우 분산 시스템 하에서 작업부하 분배(workload distribution)에 관한 시스템 레벨의 연구에 그치고 있는 실정이며, 병렬 시스템 하에서 태스크 분배에 관한 응용프로그램 레벨에서의 연구는 거의 발표되지 않고 있는 실정에 있다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, n개의 태스크를 CPU와 GPU로 구성되는 이기종 컴퓨팅 플랫폼에서 효과적으로 수행하기 위해서 주어진 응용을 구현 그래프로 표현하고, 이를 활용한 태스크 분배를 통해 최적의 스케줄링이 제공될 수 있도록 하는, 병렬처리 알고리즘을 이용한 태스크 분배 방법을 제공하는 것을 그 목적으로 한다.
또한, 본 발명은, 각 태스크별로 OpenCL로 작성된 병렬 프로그램을 디바이스CPU와 디바이스GPU 각각에서 수행하여 측정된 수행시간을 기준으로 n개의 태스크별로 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하여 n개의 태스크에 대한 분배를 최종 결정하도록 구성함으로써, n개의 태스크에 대한 분배의 병렬 처리를 통한 n개의 태스크에 대한 수행 시나리오의 전체 수행시간이 단축되고, 그에 따른 최적의 스케줄링 성능이 향상될 수 있도록 하는, 병렬처리 알고리즘을 이용한 태스크 분배 방법을 제공하는 것을 또 다른 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법은,
병렬처리 알고리즘을 이용한 태스크 분배 방법으로서,
(1) 이기종 컴퓨팅 플랫폼 환경에서 처리되어야 할 n개의 태스크에 대한 수행 시나리오를 구현 그래프(Implementation Graph)로 구성하는 단계;
(2) 상기 단계 (1)에서 구성된 구현 그래프를 이용하여 상기 n개의 태스크별로 이기종 컴퓨팅 플랫폼 환경으로 구비되는 디바이스CPU와 디바이스GPU 각각에서 수행시켜 측정된 수행시간을 구하는 단계; 및
(3) 상기 단계 (2)에서 수행하여 측정된 디바이스CPU와 디바이스 GPU의 수행시간을 기준으로 상기 n개의 태스크별 적합한 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 단계 (1)에서는,
상기 이기종 컴퓨팅 플랫폼으로, 하나의 호스트(host)와, 디바이스CPU와 디바이스GPU를 구비하는 두 개의 디바이스로 구성하되,
상기 디바이스CPU는 2 내지 8의 코어를 구비하는 멀티코어(multicore)-CPU로 구성되고, 상기 디바이스GPU는 수십 내지 수백의 코어를 구비하는 매니코어(manycore)-GPU로 구성될 수 있다.
더욱 바람직하게는, 상기 호스트는,
상기 n개의 태스크 각각의 계산에 필요한 데이터의 통신 오버헤드(speedup)로 기능할 수 있다.
바람직하게는, 상기 n개의 태스크는,
각 태스크별로 OpenCL로 작성된 병렬 프로그램으로 구현될 수 있다.
더욱 바람직하게는, 상기 n개의 태스크는,
각각의 태스크가 스케줄링의 최소 단위로 구성될 수 있다.
더욱 더 바람직하게는, 상기 n개의 태스크는,
각각의 태스크들이 내부적으로 모든 계산이 병렬로 처리될 수 있는 것과, 데이터 종속성에 의해 일부 계산이 순차로 처리되어야 하는 상이한 계산 특성을 갖도록 구성할 수 있다.
바람직하게는, 상기 단계 (3)에서는,
상기 n개의 태스크별로 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하여 상기 n개의 태스크에 대한 분배를 최종 결정하고, n개의 태스크에 대한 분배의 병렬 처리를 통한 n개의 태스크에 대한 수행 시나리오의 전체 수행시간이 단축되도록 할 수 있다.
더욱 바람직하게는, 상기 단계 (3)에서는,
상기 n개의 태스크의 각 계산 특성과 이기종 플랫폼내의 디바이스CPU와 디바이스GPU의 상대적인 성능에 대응하여 각 태스크들의 적합 처리기가 설정될 수 있다.
본 발명에서 제안하고 있는 병렬처리 알고리즘을 이용한 태스크 분배 방법에 따르면, n개의 태스크를 CPU와 GPU로 구성되는 이기종 컴퓨팅 플랫폼에서 효과적으로 수행하기 위해서 주어진 응용을 구현 그래프로 표현하고, 이를 활용한 태스크 분배를 통해 최적의 스케줄링이 제공될 수 있도록 할 수 있다.
또한, 본 발명에 따르면, 각 태스크별로 OpenCL로 작성된 병렬 프로그램을 디바이스CPU와 디바이스GPU 각각에서 수행하여 측정된 수행시간을 기준으로 n개의 태스크별로 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하여 n개의 태스크에 대한 분배를 최종 결정하도록 구성함으로써, n개의 태스크에 대한 분배의 병렬 처리를 통한 n개의 태스크에 대한 수행 시나리오의 전체 수행시간이 단축되고, 그에 따른 최적의 스케줄링 성능이 향상될 수 있도록 할 수 있다.
도 1은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 이기종 컴퓨팅 플랫폼의 개략적인 구성을 도시한 도면.
도 2는 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법의 동작 순서를 도시한 도면.
도 3은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법의 태스크 분배 알고리즘의 일례를 도시한 도면.
도 4는 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 일예의 구현 그래프를 도시한 도면.
도 5는 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 실험 결과로서, 태스크별 수행시간을 도시한 도면.
도 6은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 실험 결과에 대한 플랫폼 1에서의 태스크 분배 결과를 도시한 도면.
도 7은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 실험 결과에 대한 플랫폼 2에서의 태스크 분배 결과를 도시한 도면.
도 8은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 실험 결과의 각 태스크 분배의 성능 비교 그래프를 도시한 도면.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’ 되어 있다고 할 때, 이는 ‘직접적으로 연결’ 되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’ 되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’ 한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 이기종 컴퓨팅 플랫폼의 개략적인 구성을 도시한 도면이고, 도 2는 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법의 동작 순서를 도시한 도면이며, 도 3은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법의 태스크 분배 알고리즘의 일례를 도시한 도면이다. 도 2에 도시된 바와 같이, 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법은, n개의 태스크에 대한 수행 시나리오를 구현 그래프로 구현하는 단계(S110), 구현 그래프를 이용하여 n개의 태스크별로 디바이스CPU와 디바이스GPU 각각에서 수행시켜 측정된 수행시간을 구하는 단계(S120), 및 디바이스CPU와 디바이스 GPU의 수행시간을 기준으로 n개의 태스크별 적합한 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하는 단계(S130)를 포함하여 구현될 수 있다.
단계 S110에서는, 이기종 컴퓨팅 플랫폼(100) 환경에서 처리되어야 할 n개의 태스크에 대한 수행 시나리오를 구현 그래프(Implementation Graph)로 구현하여 구성할 수 있다. 여기서, 단계 S110에서는 도 1에 도시된 바와 같이, 이기종 컴퓨팅 플랫폼(100)으로, 하나의 호스트(host)(110)와, 디바이스CPU(120)와 디바이스GPU(130)를 구비하는 두 개의 디바이스로 구성할 수 있다. 이때, 디바이스CPU(120)는 2 내지 8의 코어를 구비하는 멀티코어(multicore)-CPU로 구성되고, 디바이스GPU(130)는 수십 내지 수백의 코어를 구비하는 매니코어(manycore)-GPU로 구성될 수 있다. 또한, 호스트(110)는 n개의 태스크 각각의 계산에 필요한 데이터의 통신 오버헤드(speedup)로 기능하게 된다.
또한, n개의 태스크는 각 태스크별로 OpenCL(Open Computing Language)로 작성된 병렬 프로그램으로 구현될 수 있다. 이러한 OpenCL(Open Computing Language)은 개방형 범용 병렬 컴퓨팅 프레임워크로서, CPU, GPU, DSP 등의 프로세서로 이루어진 이종 플랫폼에서 실행되는 프로그램을 작성할 수 있게 해주는 기능을 수행한다.
또한, n개의 태스크는 각각의 태스크가 스케줄링의 최소 단위로 구성될 수 있으며, 이러한 n개의 태스크는 각각의 태스크들이 내부적으로 모든 계산이 병렬로 처리될 수 있는 것과, 데이터 종속성에 의해 일부 계산이 순차로 처리되어야 하는 상이한 계산 특성을 갖도록 구성된다.
단계 S120에서는, 단계 S110에서 구성된 구현 그래프를 이용하여 n개의 태스크별로 이기종 컴퓨팅 플랫폼(100) 환경으로 구비되는 디바이스CPU(120)와 디바이스GPU(130) 각각에서 수행시켜 측정된 수행시간을 구하게 된다.
단계 S130에서는, 단계 S120에서 수행하여 측정된 디바이스CPU(120)와 디바이스 GPU(130)의 수행시간을 기준으로 n개의 태스크별 적합한 디바이스CPU(120) 또는 디바이스GPU(130)를 해당 처리기로 결정할 수 있다. 이러한 단계 S130에서는 n개의 태스크별로 디바이스CPU(120) 또는 디바이스GPU(130)를 해당 처리기로 결정하여 n개의 태스크에 대한 분배를 최종 결정하고, n개의 태스크에 대한 분배의 병렬 처리를 통한 n개의 태스크에 대한 수행 시나리오의 전체 수행시간이 단축되도록 한다. 즉, 단계 S130에서는 n개의 태스크의 각 계산 특성과 이기종 플랫폼(100)내의 디바이스CPU(120)와 디바이스GPU(130)의 상대적인 성능에 대응하여 각 태스크들의 적합 처리기가 설정되도록 하고 있다. 구체적으로, 각각의 태스크별로 디바이스CPU(120)와 디바이스GPU(130)에서의 순차 처리 시간과 병렬 스피드업(통신 오버헤드)을 곱하여 하나의 척도로 표현되고, 이 척도를 기준으로 가장 파급효과가 큰 것을 먼저 선택하는 방법으로 태스크에 대한 적절한 처리기가 결정되는 것이다.
도 4는 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 일예의 구현 그래프를 도시한 도면이다. 도 4는 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 일례의 돼지 탐지를 위한 구현 그래프를 나타내고 있다. 즉, 도 4는 OpenCL을 사용한 돈사 감시 응용의 효율적인 태스크 분배 방법으로서, 깊이 영상의 크기를 가로/세로 각각 절반씩 줄인 공간 보간법(spatial interpolation)을 수행하고, 돼지가 없는 빈 돈방을 10분간 촬영한 후 각 픽셀의 평균값으로 배경 영상을 생성한다. 이어, 입력된 영상에서도 동일한 공간 보간법을 적용하고, 추가로 30 frames per second(fps) 속도의 입력 영상을 10 fps 속도로 다운 샘플하는 시간 보간법(temporal interpolation)을 적용한다. 이렇게 시공간 보간법(spatiotemporal interpolation)된 입력 영상과 배경 영상의 차이를 구한 후, 모폴로지(Morphology) 연산을 통하여 경계 부분 조정을 수행한다. 최종적으로 탐지된 돼지들이 연결된 부분의 면적을 계산하여 누워있는 돼지들의 몰려있는 정도를 자동으로 판단하게 된다.
도 4는 본 발명의 병렬처리 알고리즘을 이용한 태스크 분배 방법이 돼지 탐지를 위한 구현 그래프로 구현된 일례이다. 여기서, 태스크는 스케줄링의 최소 단위로 가정되고, 위의 네 가지 태스크들은 내부적으로 모든 계산이 병렬로 처리될 수 있는 것과 데이터 종속성에 의해 일부 계산은 순차로 처리되어야 하는 상이한 계산 특성을 갖게 되며, 태스크의 계산 특성과 이기종 컴퓨팅 플랫폼(100)내 CPU-GPU의 상대적인 성능에 따라 각 태스크별로 적합한 처리기가 있고, 각 태스크의 계산에 필요한 데이터의 통신 오버헤드도 고려하게 된다. 즉, 도 4는 돼지 탐지의 네 가지 태스크가 하나의 deviceCPU와 하나의 deviceGPU로 구성된 이기종 컴퓨팅 플랫폼에서 수행될 수 있는 시나리오를 DAG 형태의 구현 그래프(Implementation Graph)로 표현하고, 이를 활용하여 전체 비용이 최소가 되는 태스크 분배 알고리즘을 제안하게 된다. 특히, deviceCPU와 deviceGPU간에는 직접 데이터 통신이 불가하여 호스트를 경유하는 통신 오버헤드를 가정하며, 또한 각 태스크별로 적절한 디바이스 결정을 편리하게 하기 위하여 통신 오버헤드를 호스트에서 디바이스로 갈 때(“host-to-device + device-to-host”)와 디바이스에서 호스트로 올 때(“0”)를 차별화한다. 즉, 도 4에서 “commCPU”란 “host-to-deviceCPU+deviceCPU-to-host”를 의미하고, “commGPU”란 “host-to-deviceGPU+deviceGPU-to-host”를 의미한다. 이때, 플랫폼별로 태스크 분배를 결정하는 그리디(greedy) 알고리즘은 다음과 같이 정의될 수 잇다. “Large-Task with Large-Parallelism First” 원칙에서 Large-Task란 순차 처리 시간이 오래 걸리는 것을 의미하고, Large-Parallelism이란 병렬 처리 시 speedup(통신 오버헤드 고려)이 큰 것을 의미한다. 즉, 각 태스크별로 deviceCPU와 deviceGPU에서의 순차 처리 시간과 병렬 speedup을 곱하여 하나의 척도로 표현하고, 이 척도를 기준으로 가장 파급효과가 큰 것을 먼저 선택하는 방법으로 네 가지 태스크에 대한 적절한 처리기를 결정할 수 있게 된다. 도 3은 본 발명에 따른 태스크 분배 방법을 위한 제안 알고리즘을 정의하고 있으며, n개의 태스크에 대한 스케줄링 알고리즘의 시간 복잡도는 O(n 2)이다. 또한, 본 발명의 태스크 분배 방법의 스케줄링 알고리즘은 돼지 탐지 응용의 최초 한번만 수행되므로 스케줄링 알고리즘에 대한 부담은 없다고 해도 무방하다.
도 5는 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 실험 결과로서, 태스크별 수행시간을 도시한 도면이고, 도 6은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 실험 결과에 대한 플랫폼 1에서의 태스크 분배 결과를 도시한 도면이며, 도 7은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 실험 결과에 대한 플랫폼 2에서의 태스크 분배 결과를 도시한 도면이고, 도 8은 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법이 적용되는 실험 결과의 각 태스크 분배의 성능 비교 그래프를 도시한 도면이다. 도 5 내지 도 8에 도시된 바와 같은 실험을 위해, 두 개의 플랫폼(플랫폼1: 3.50GHz Intel CoreTMi5-4690 CPU, GeForce GTX 760, 8GB RAM, 플랫폼2: 2.67GHz Intel CoreTMi5 CPU 7504, GeForce GTS 250, 8GB RAM)을 준비하였고, 각각의 플랫폼에서 측정한 태스크별 수행시간은 도 5의 표와 같다. 예를 들어, 플랫폼2에서 Task1은 캐쉬 등의 효과로 4-코어 병렬처리 시간(0.348ms)이 1-코어 순차처리 시간(8.073ms)의 1/4 보다도 많이 적으며, GPU 병렬처리 시간(0.468ms) 보다도 적다. 반면에, 플랫폼1에서는 Task1의 CPU 병렬처리 시간(0.296ms)이 GPU 병렬처리 시간(0.147ms) 보다 빠르지 않음을 확인할 수 있었다. 즉, 각 태스크별로 상이한 계산 특성 때문에 병렬 처리 시간이 다르고 CPU-GPU의 상대적인 성능에서도 플랫폼별로 상이하여, 최적의 태스크 분배에 대한 필요성이 있음을 확인할 수 있게 되었다. 또한, 제안된 알고리즘으로 각 플랫폼별 태스크를 분배한 결과는 도 6 및 도 7과 같으며, 이렇게 분배된 경우와 전체 태스크들을 deviceGPU(GPU-only로 명기)에서 수행한 경우의 성능을 비교하면 도 8과 같다. 즉, 전체 태스크들을 deviceGPU에서만 수행한 방법과 비교하여 제안 방법은 플랫폼1에서 390%, 플랫폼2에서 1242% 향상된 성능을 확인하였다. 이와 같은 실험 결과를 통해, 태스크의 계산 특성에 따라 적합한 처리기가 있고, 플랫폼 내 CPU-GPU의 상대적인 성능에 따라서도 태스크 분배가 달려져야 함을 확인할 수 있었다.
상술한 바와 같이, 본 발명의 일실시예에 따른 병렬처리 알고리즘을 이용한 태스크 분배 방법은, n개의 태스크를 CPU와 GPU로 구성되는 이기종 컴퓨팅 플랫폼에서 효과적으로 수행하기 위해서 주어진 응용을 구현 그래프로 표현하고, 이를 활용한 태스크 분배를 통해 최적의 스케줄링이 제공될 수 있도록 할 수 있으며, 특히, 각 태스크별로 OpenCL로 작성된 병렬 프로그램을 디바이스CPU와 디바이스GPU 각각에서 수행하여 측정된 수행시간을 기준으로 n개의 태스크별로 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하여 n개의 태스크에 대한 분배를 최종 결정하도록 구성함으로써, 간단하지만 매우 효과적으로 n개의 태스크에 대한 분배의 병렬 처리를 통한 n개의 태스크에 대한 수행 시나리오의 전체 수행시간이 단축되고, 그에 따른 최적의 스케줄링 성능이 향상될 수 있도록 할 수 있게 된다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
100: 이기종 컴퓨팅 플랫폼
110: 호스트
120: 디바이스CPU
130: 디바이스GPU
S110: n개의 태스크에 대한 수행 시나리오를 구현 그래프로 구현하는 단계
S120: 구현 그래프를 이용하여 n개의 태스크별로 디바이스CPU와 디바이스GPU 각각에서 수행시켜 측정된 수행시간을 구하는 단계
S130: 디바이스CPU와 디바이스 GPU의 수행시간을 기준으로 n개의 태스크별 적합한 디바이스CPU 또는 디바이스GPU를 해당 처리기로 결정하는 단계

Claims (8)

  1. 병렬처리 알고리즘을 이용한 태스크 분배 방법으로서,
    (1) 이기종 컴퓨팅 플랫폼(100)이, 하나의 호스트(host)(110)와, 디바이스CPU(120)와 디바이스GPU(130)를 구비하는 두 개의 디바이스를 이용하여 이기종 컴퓨팅 플랫폼(100) 환경에서 처리되어야 할 n개의 태스크에 대한 수행 시나리오를 구현 그래프(Implementation Graph)로 구성하는 단계;
    (2) 상기 이기종 컴퓨팅 플랫폼(100)의 호스트(110)가, 상기 단계 (1)에서 구성된 구현 그래프를 이용하여 상기 n개의 태스크별로 이기종 컴퓨팅 플랫폼(100) 환경으로 구비되는 디바이스CPU(120)와 디바이스GPU(130) 각각에서 수행시켜 측정된 수행시간을 구하는 단계; 및
    (3) 상기 이기종 컴퓨팅 플랫폼(100)의 호스트(110)가, 상기 단계 (2)에서 수행하여 측정된 디바이스CPU(120)와 디바이스 GPU(130)의 수행시간을 기준으로 상기 n개의 태스크별 적합한 디바이스CPU(120) 또는 디바이스GPU(130)를 해당 처리기로 결정하는 단계를 포함하되,
    상기 호스트(110)는,
    상기 n개의 태스크 각각의 계산에 필요한 데이터의 통신 오버헤드(speedup)로 기능하고,
    상기 n개의 태스크는,
    각각의 태스크가 스케줄링의 최소 단위로 구성하되, 각각의 태스크들이 내부적으로 모든 계산이 병렬로 처리될 수 있는 것과, 데이터 종속성에 의해 일부 계산이 순차로 처리되어야 하는 상이한 계산 특성을 가지며,
    상기 단계 (3)에서는,
    상기 n개의 태스크별로 디바이스CPU(120) 또는 디바이스GPU(130)를 해당 처리기로 결정하여 상기 n개의 태스크에 대한 분배를 최종 결정하고, n개의 태스크에 대한 분배의 병렬 처리를 통한 n개의 태스크에 대한 수행 시나리오의 전체 수행시간이 단축되도록 하는 것을 특징으로 하는, 병렬처리 알고리즘을 이용한 태스크 분배 방법.
  2. 제1항에 있어서, 상기 단계 (1)에서는,
    상기 이기종 컴퓨팅 플랫폼(100)으로, 하나의 호스트(host)(110)와, 디바이스CPU(120)와 디바이스GPU(130)를 구비하는 두 개의 디바이스로 구성하되,
    상기 디바이스CPU(120)는 2 내지 8의 코어를 구비하는 멀티코어(multicore)-CPU로 구성되고, 상기 디바이스GPU(130)는 수십 내지 수백의 코어를 구비하는 매니코어(manycore)-GPU로 구성되는 것을 특징으로 하는, 병렬처리 알고리즘을 이용한 태스크 분배 방법.
  3. 삭제
  4. 제1항에 있어서, 상기 n개의 태스크는,
    각 태스크별로 OpenCL로 작성된 병렬 프로그램으로 구현되는 것을 특징으로 하는, 병렬처리 알고리즘을 이용한 태스크 분배 방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제1항에 있어서, 상기 단계 (3)에서는,
    상기 n개의 태스크의 각 계산 특성과 이기종 플랫폼(100)내의 디바이스CPU(120)와 디바이스GPU(130)의 상대적인 성능에 대응하여 각 태스크들의 적합 처리기가 설정되는 것을 특징으로 하는, 병렬처리 알고리즘을 이용한 태스크 분배 방법.
KR1020170032757A 2017-03-15 2017-03-15 병렬처리 알고리즘을 이용한 태스크 분배 방법 KR101879419B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170032757A KR101879419B1 (ko) 2017-03-15 2017-03-15 병렬처리 알고리즘을 이용한 태스크 분배 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170032757A KR101879419B1 (ko) 2017-03-15 2017-03-15 병렬처리 알고리즘을 이용한 태스크 분배 방법

Publications (1)

Publication Number Publication Date
KR101879419B1 true KR101879419B1 (ko) 2018-08-17

Family

ID=63408112

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170032757A KR101879419B1 (ko) 2017-03-15 2017-03-15 병렬처리 알고리즘을 이용한 태스크 분배 방법

Country Status (1)

Country Link
KR (1) KR101879419B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885397A (zh) * 2019-01-15 2019-06-14 长安大学 一种边缘计算环境中时延优化的负载任务迁移算法
KR102209526B1 (ko) * 2019-10-21 2021-02-01 주식회사 스탠다임 병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치
CN113448736A (zh) * 2021-07-22 2021-09-28 东南大学 一种近似计算任务在多核异构处理平台上基于能量和QoS联合优化的任务映射方法
KR20220068381A (ko) * 2020-11-19 2022-05-26 주식회사 와이즈넛 태스크별 플랫폼 선정을 자동화하는 크로스 모델 데이터 통합처리 플랫폼

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110070247A (ko) * 2009-12-18 2011-06-24 고려대학교 산학협력단 멀티코어 프로세서를 이용한 aes-ccm 병렬처리 장치 및 그 방법
KR20130017923A (ko) * 2011-08-12 2013-02-20 (주)테크노니아 프로그램 분석 장치 및 분석용 프로그램을 기록한 컴퓨터 판독 가능한 저장매체
KR20150089918A (ko) * 2014-01-27 2015-08-05 숭실대학교산학협력단 멀티 프로세서 시스템에서 태스크 의존성 그래프를 이용한 스케줄링 방법 및 장치
KR20160003502A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 병렬화 방법 및 전자 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110070247A (ko) * 2009-12-18 2011-06-24 고려대학교 산학협력단 멀티코어 프로세서를 이용한 aes-ccm 병렬처리 장치 및 그 방법
KR20130017923A (ko) * 2011-08-12 2013-02-20 (주)테크노니아 프로그램 분석 장치 및 분석용 프로그램을 기록한 컴퓨터 판독 가능한 저장매체
KR20150089918A (ko) * 2014-01-27 2015-08-05 숭실대학교산학협력단 멀티 프로세서 시스템에서 태스크 의존성 그래프를 이용한 스케줄링 방법 및 장치
KR20160003502A (ko) * 2014-07-01 2016-01-11 삼성전자주식회사 병렬화 방법 및 전자 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
김희곤 외 6명. ‘이기종 컴퓨팅 환경에서 OpenCL을 사용한 포토모자이크 응용의 효율적인 작업부하 분배’. KIPS Transactions on Computer and Communication Systems, Vol. 4, No. 8, 2015.08, pp.245-252.* *
박진희 외 3명. 'History 기반 CPU 및 GPU 수행 결정 모듈', 한국정보과학회 2015 한국컴퓨터종합학술대회 논문집 , 2015.06, pp.1450-1452. *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885397A (zh) * 2019-01-15 2019-06-14 长安大学 一种边缘计算环境中时延优化的负载任务迁移算法
KR102209526B1 (ko) * 2019-10-21 2021-02-01 주식회사 스탠다임 병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치
KR20220068381A (ko) * 2020-11-19 2022-05-26 주식회사 와이즈넛 태스크별 플랫폼 선정을 자동화하는 크로스 모델 데이터 통합처리 플랫폼
WO2022108002A1 (ko) * 2020-11-19 2022-05-27 주식회사 와이즈넛 태스크별 플랫폼 선정을 자동화하는 크로스 모델 데이터 통합처리 플랫폼
KR102465932B1 (ko) * 2020-11-19 2022-11-11 주식회사 와이즈넛 태스크별 플랫폼 선정을 자동화하는 크로스 모델 데이터 통합처리 플랫폼
CN113448736A (zh) * 2021-07-22 2021-09-28 东南大学 一种近似计算任务在多核异构处理平台上基于能量和QoS联合优化的任务映射方法
CN113448736B (zh) * 2021-07-22 2024-03-19 东南大学 一种近似计算任务在多核异构处理平台上基于能量和QoS联合优化的任务映射方法

Similar Documents

Publication Publication Date Title
KR101879419B1 (ko) 병렬처리 알고리즘을 이용한 태스크 분배 방법
Dastgeer et al. Auto-tuning SkePU: a multi-backend skeleton programming framework for multi-GPU systems
Xu et al. Graph processing on GPUs: Where are the bottlenecks?
Lu et al. Performance evaluation of hybrid programming patterns for large CPU/GPU heterogeneous clusters
CN111831287A (zh) 用于确定执行代码段所需的资源的方法、设备和程序产品
US8671397B2 (en) Selective data flow analysis of bounded regions of computer software applications
Kurzak et al. LU factorization with partial pivoting for a multicore system with accelerators
KR101400577B1 (ko) Gpu를 이용한 희소행렬 곱셈 방법
EP3032413B1 (en) Code generation method, compiler, scheduling method, apparatus and scheduling system
US20150154054A1 (en) Information processing device and method for assigning task
Dong et al. Characterizing the microarchitectural implications of a convolutional neural network (cnn) execution on gpus
US11288047B2 (en) Heterogenous computer system optimization
Krommydas et al. On the characterization of opencl dwarfs on fixed and reconfigurable platforms
Ferreira et al. Monitoring the plasma radiation profile with real-time bolometer tomography at JET
Reddy et al. Performance analysis of GPU V/S CPU for image processing applications
Luecke et al. Fast epistasis detection in large-scale GWAS for Intel Xeon Phi clusters
CN111859775A (zh) 加速深度学习推断的软硬件协同设计
US20110314453A1 (en) Real time profiling of a computer software application running on parallel computing resources
Hofmann et al. An ECM-based energy-efficiency optimization approach for bandwidth-limited streaming kernels on recent Intel Xeon processors
Lang et al. Dynamic distribution of workload between CPU and GPU for a parallel conjugate gradient method in an adaptive FEM
Binotto et al. A cpu, gpu, fpga system for x-ray image processing using high-speed scientific cameras
Hofmann et al. Performance analysis of the Kahan-enhanced scalar product on current multicore processors
US20180357745A1 (en) SYSTEM AND METHODS FOR THE COMPUTATION OF THE FORWARD AND INVERSE DISCRETE PERIODIC RADON TRANSFORM ON GPUs AND CPUs
CN111712793A (zh) 线程处理方法和图形处理器
Mazanec et al. Blind image deconvolution algorithm on NVIDIA CUDA platform

Legal Events

Date Code Title Description
GRNT Written decision to grant