DOI QR코드

DOI QR Code

A design of GPU container co-execution framework measuring interference among applications

GPU 컨테이너 동시 실행에 따른 응용의 간섭 측정 프레임워크 설계

  • Received : 2020.07.17
  • Accepted : 2020.08.16
  • Published : 2020.08.31

Abstract

As General Purpose Graphics Processing Unit (GPGPU) recently plays an essential role in high-performance computing, several cloud service providers offer GPU service. Most cluster orchestration platforms in a cloud environment using containers allocate the integer number of GPU to jobs and do not allow a node shared with other jobs. In this case, resource utilization of a GPU node might be low if a job does not intensively require either many cores or large size of memory in GPU. GPU virtualization brings opportunities to realize kernel concurrency and share resources. However, performance may vary depending on characteristics of applications running concurrently and interference among them due to resource contention on a node. This paper proposes GPU container co-execution framework with multiple server creation and execution based on Kubernetes, container orchestration platform for measuring interference which may be occurred by sharing GPU resources. Performance changes according to scheduling policies were investigated by executing several jobs on GPU. The result shows that optimal scheduling is not possible only considering GPU memory and computing resource usage. Interference caused by co-execution among applications is measured using the framework.

범용 그래픽 처리 장치(General Purpose Graphics Processing Unit, GPGPU)는 최근 고성능 컴퓨팅에서 중요한 역할을 함으로써, 여러 클라우드 서비스 공급업체들은 GPU 서비스를 제공하기 시작했다. 컨테이너를 사용하는 클라우드 환경에서 대부분의 클러스터 오케스트레이션 플랫폼은 정수 개의 GPU를 작업에 할당하고 다른 작업과 이를 공유하는 것을 허용하지 않는다. 이 경우 작업이 GPU에서 코어 및 메모리 등 자원이 집중적으로 필요하지 않다면 GPU 노드의 리소스 사용률이 저하될 수 있다. GPU 가상화는 응용의 동시 수행을 가능하게 하며 자원을 공유할 수 있는 기회를 제공한다. 하지만 응용의 동시 수행 성능은 동시 수행되는 응용의 특성과 노드 안에서 자원 경쟁으로 인한 간섭에 따라 달라질 수 있다. 본 논문은 컨테이너 오케스트레이션 플랫폼인 쿠버네티스(Kubernetes)를 기반으로 다중 서버 생성 및 실행을 통하여 GPU를 공유함으로써 발생할 수 있는 간섭을 측정하기 위한 프레임워크를 제안한다. 본 프레임워크를 통해 다양한 스케줄링 방법으로 GPU에서 여러 작업을 실행함으로써 이에 따른 성능 변화를 조사하였으며, 이를 통해 GPU 메모리 사용량 및 컴퓨팅 리소스만 고려해서는 최적의 스케줄링을 할 수 없음을 보인다. 마지막으로 해당 프레임워크를 사용하여 응용들의 동시 실행에 따라 발생한 간섭을 측정한다.

Keywords

Acknowledgement

이 성과는 정부(과학기술정보통신부)의 재원으로 한국연구재단의 지원을 받아 수행된 연구임(No. 2020R1H1A2011685)

References

  1. Amazon EC2, https://aws.amazon.com/ec2/
  2. Nimbix, https://www.nimbix.net/cloud-computing-nvidia
  3. Microsoft Azure, https://docs.microsoft.com/en-au/azure/virtual-m achines/windows/sizes-gpu
  4. Alibaba, , https://www.alibabacloud.com/ko/product/gpu
  5. Google container, https://cloud.google.com/containers
  6. Kubernetes, https://kubernetes.io
  7. Fabiana Rossi, Matteo Nardelli and Valeria Cardellini. 2017. Horizontal and Vertical Scaling of Container-based Applications using Reinforcement Learning, In Cloud, 2019, IEEE International Conference on. IEEE, 329-339
  8. Gu, Jing, et al. "GaiaGPU: Sharing GPUs in Container Clouds." 2018 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Ubiquitous Computing & Communications, Big Data & Cloud Computing, Social Computing & Networking, Sustainable Computing & Communications (ISPA/IUCC/BDCloud/SocialCom/SustainCom). IEEE, 2018.
  9. Song, Shengbo, et al. "Gaia Scheduler: A Kubernetes-Based Scheduler Framework." 2018 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Ubiquitous Computing & Communications, Big Data & Cloud Computing, Social Computing & Networking, Sustainable Computing & Communications (ISPA/IUCC/BDCloud/SocialCom/SustainCom). IEEE, 2018.
  10. NVIDIA GPU Cloud, https://ngc.nvidia.com/
  11. kubectl, https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
  12. kubelet, https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/
  13. NVIDIA Docker, https://github.com/NVIDIA/nvidia-docker/wiki/nvidia-docker
  14. Tensorflow CNN benchmarks, https://github.com/tensorflow/benchmarks/tree/master/scripts/tf_cnn_benchmarks