Graphics Processing Unit (GPU) is a vital element for the high-performance computing, because of the powerful performance in parallel computing compare to the CPU. Therefore, there are many trials to support GPU to the cloud computing environment. However, sharing GPU resources in container-based cloud computing environment which supports multiple users remains an unsolved issue. Without appropriate distributing and managing methods, GPU sharing among multiple containers will result in program failure or deadlock situation. In this thesis, we introduce ConVGPU, a system for sharing GPU resources among multiple containers. ConVGPU guarantees each container can use GPU resources that it required and ensures efficient use of GPU resources with appropriate scheduling. Also, we prove of the efficiencies of ConVGPU with experiments and its results introduced in this thesis.
그래픽 프로세싱 유닛(GPU)은 중앙처리장치(CPU)에 비해 월등히 뛰어난 병렬 연산 능력으로 인해 고성능 컴퓨팅에서의 필수 요건으로 자리잡았으며, 이에 따라 클라우드 컴퓨팅 환경에서도 고성능 컴퓨팅을 위해 GPU를 사용하려는 시도들이 존재해 왔다. 하지만 다중 사용자를 지원해야 하는 컨테이너 기반의 클라우드 컴퓨팅 환경에서 GPU 자원을 공유하는 것은 아직 해결되지 않은 과제이다. GPU 자원의 적절한 분배와 관리 없이 공유하게 되면 프로그램의 실행 도중 오류가 발생하거나 프로그램 간 교착 상태에 빠질 수 있기 때문이다. 이러한 문제를 해결하기 위해, 본 논문에서는 컨테이너 간에 GPU를 공유할 수 있는 ConVGPU라는 시스템을 소개한다. ConVGPU는 컨테이너에서 필요로 하는 GPU 자원을 사용할 수 있도록 보장해주며, 스케줄링을 통해 GPU 자원을 효율적으로 사용한다. 또한 본 논문에서는 이 시스템의 특장점들에 대해 실험과 그 결과를 함께 제시하여 그 성능을 입증하였다.