KR20230055271A - 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 - Google Patents

딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 Download PDF

Info

Publication number
KR20230055271A
KR20230055271A KR1020210138805A KR20210138805A KR20230055271A KR 20230055271 A KR20230055271 A KR 20230055271A KR 1020210138805 A KR1020210138805 A KR 1020210138805A KR 20210138805 A KR20210138805 A KR 20210138805A KR 20230055271 A KR20230055271 A KR 20230055271A
Authority
KR
South Korea
Prior art keywords
pod
edge server
node
deep learning
offloading
Prior art date
Application number
KR1020210138805A
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 KR1020210138805A priority Critical patent/KR20230055271A/ko
Publication of KR20230055271A publication Critical patent/KR20230055271A/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 및 그 동작 방법이 제시된다. 본 발명에서 제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버는 클라이언트의 요청을 처리하기 위해 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 수신부 및 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 딥러닝 모듈을 포함한다.

Description

딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버{Edge server for supporting caching and offloading of Deep Learning Applications}
본 발명은 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버의 설계 및 구현에 관한 것이다.
최근 다양한 스마트 디바이스에서 인공지능 서비스가 활성화되고 있다. 그 중에서도 자율주행을 적용한 커넥티드카 서비스의 연구가 활발하게 진행되고 있으며, 이를 구현하기 위해서는 충분한 컴퓨팅성능과 지속적인 데이터 액세스와 더불어 클라이언트와 가까운 엣지에서의 빠른 응답시간이 요구된다[1]. 임베디드 디바이스로 구현된 엣지 노드에서 발생하는 과부화 및 할당 가능한 자원의 제약 문제가 발생할 수 있다.
이를 위해 엣지 서버를 통한 딥러닝 애플리케이션(예를 들어, 물체 인식 또는 운전자 인식) 서비스를 지원하기 위해 복수의 임베디드 디바이스들로 쿠버네티스 클러스터를 구성하였다[2].
클라우드 환경 하의 딥러닝 애플리케이션 서비스의 응답속도를 향상시키기 위해 클라이언트와 근거리에 있는 엣지 환경에서 빠른 응답시간이 요구되고 있다. 하지만 제한된 자원과 전력을 가진 임베디드 디바이스에서 서비스를 안정적으로 제공하기에는 많은 문제점이 존재한다.
본 발명이 이루고자 하는 기술적 과제는 임베디드 디바이스로 구현된 엣지 노드에서 발생하는 과부화 및 할당 가능한 자원의 제약 문제를 해결하기 위해 엣지 서버를 통한 딥러닝 애플리케이션 서비스를 지원하도록 복수의 임베디드 디바이스들로 쿠버네티스 클러스터를 구성하고, 또한 빠른 추론을 위해 서비스를 캐싱하고 엣지 노드의 자원이 부족한 경우 중앙 데이터 센터로 오프로딩하여 서비스를 지원하는 방법 및 장치를 제공하는데 있다.
일 측면에 있어서, 본 발명에서 제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버는 클라이언트의 요청을 처리하기 위해 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 수신부 및 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 딥러닝 모듈을 포함한다.
상기 수신부는 노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용하고, 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Read, Update, Delete)를 수행하도록 한다.
상기 딥러닝 모듈은 스칼라 ML(Machine Learning) 및 이미지 ML을 포함하고, 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송한다.
상기 수신부는 엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버의 동작 방법은 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하는 단계, 딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 단계 및 자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 단계를 포함한다.
본 발명의 실시예들에 따르면 임베디드 디바이스로 구현된 엣지 노드에서 발생하는 과부화 및 할당 가능한 자원의 제약 문제를 해결하기 위해 복수의 임베디드 디바이스들로 쿠버네티스 클러스터를 구성하여 엣지 서버를 통한 딥러닝 애플리케이션 서비스를 지원할 수 있다. 또한 서비스를 캐싱하고 엣지 노드의 자원이 부족한 경우 중앙 데이터 센터로 오프로딩하여 서비스함으로써 빠른 추론이 가능하다.
도 1은 종래기술에 따른 웹소켓의 양방향 통신을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 엣지 서버의 동작 구조를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 엣지 서버의 구조를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 중앙 데이터 센터로의 오프로딩 알고리즘을 나타낸다.
도 5는 본 발명의 일 실시예에 따른 엣지 서버의 동작 방법을 설명하기 위한 흐름도이다.
본 발명에서는 딥러닝 애플리케이션 서비스를 제공하기 위해 임베디드 디바이스들로 클러스터 엣지 서버를 구현하고 서비스 캐싱을 사용한 작업 처리와 엣지 서버의 자원부족으로 인한 서비스 중단에 대비한 데이터 센터로의 태스크 오프로딩을 구현하였다.
본 발명의 실시예에 따른 실험결과 각각의 딥러닝 서비스 모듈인 이미지 ML(Machine Learning)과 스칼라 ML에 대한 엣지 응답시간은 각각 323ms, 228ms이며 엣지의 대역폭 활용은 0.38Mbyte, 0.027Mbyte로 측정되었다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 종래기술에 따른 웹소켓의 양방향 통신을 설명하기 위한 도면이다.
컨테이너는 리눅스 커널수준에서 자원을 공유하면서 프로세스를 격리된 환경에서 실행하는 기술로서 하이퍼바이저를 사용한 기존의 방식보다 빠른 서비스를 구성할 수 있도록 도와준다.
그 중, 컨테이너 오케스트레이션인 쿠버네티스는 컨테이너를 관리하고 효율적인 실행이 가능한 분산 시스템 플랫폼이다. 또한, 독립된 컴퓨터들을 동일한 목적의 작업을 위해 하나로 묶어 쿠버네티스 클러스터를 형성하여 컨테이너를 쉽고 빠르게 배포 및 확장하고 자동으로 관리할 수 있다.
도 1을 참조하면, TCP(Transmission Control Protocol) 접속을 위해 전이 중 통신을 지원하는 웹소켓의 프로토콜을 나타내며 데이터를 실시간으로 교환할 수 있도록 도와준다. 클라이언트(110) 및 서버(120) 간의 핸드쉐이크(Handshake)(131)로 경로를 설정하고, 이후에 양방향 메시지(Bidirectional Messages)(132)로 데이터를 실시간으로 교환한다. 이때, 웹소켓의 채널을 받은 어느 한쪽이 통신을 끊을 수 있다(One side closes channel)(133)[3].
도 2는 본 발명의 일 실시예에 따른 엣지 서버의 동작 구조를 설명하기 위한 도면이다.
제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버는 수신부(210) 및 딥러닝 모듈(220)을 포함한다.
도 2와 같이 쿠버네티스 클러스터를 통해 구성한 엣지 서버의 딥러닝 서비스는 외부 접속을 위한 서비스(다시 말해, 프록시)와 엣지의 수신부(Receive Server)(210), 딥러닝 모듈(모델에 따라 스칼라 ML, 이미지ML로 분류)을 포함한다.
본 발명의 실시예에 따른 수신부(210)는 클라이언트의 요청을 처리하기 위해 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행한다.
본 발명의 실시예에 따른 수신부(210)는 클라이언트(231)로부터 라우터를 거쳐 분리된 서비스들(233, 234, 234)을 수신한다.
본 발명의 실시예에 따른 수신부(210)는 노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용한다. 본 발명의 실시예에 따르면, 컨트롤러로 디플로이먼트를 사용할 수 있다. 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Update, Read, Delete)를 수행하도록 한다.
본 발명의 실시예에 따른 수신부(210)는 엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행할 수 있다.
본 발명의 실시예에 따른 딥러닝 모듈(220)은 수신부(210)에서 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정한다(230).
본 발명의 실시예에 따른 딥러닝 모듈(220)은 스칼라 ML(Machine Learning) 및 이미지 ML을 포함한다. 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송한다.
도 3은 본 발명의 일 실시예에 따른 엣지 서버의 구조를 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명의 실시예에 따른 딥러닝 애플리케이션이 구동되는 엣지 서버의 구조는 엣지 노드를 제어하는 마스터 노드(310)는 NVIDIA Jetson Xavier, 워커노드(320)는 NVIDIA Jetson TX1(321), NVIDIA Jetson Nano(322), NVIDIA Jetson Xavier(323)로 각각 구성될 수 있다. 이러한 구성은 일 실시예일뿐 이에 한정되지 않으며 다양한 노드들로 구성될 수 있다.
쿠버네티스의 프록시 서버는 통신을 아이피테이블 모드(iptables mode)[4]로 구성하며, 서비스 구성을 통해 외부와 접속이 가능하다. 단, 소켓 프로그래밍 만으로는 사용의 연결유지, 추가 동작이나 데이터 유형을 확인하는 오버헤드가 발생한다. 따라서, 본 발명에서는 딥러닝 애플리케이션 구동을 위해 새롭게 작성되는 서버로 이러한 문제점을 해결하고자 한다. 웹서버는 파이썬의 웹 프레임워크인 Flask[5]를 사용하였으며, 클러스터의 구성 요소에 대한 추가/삭제/확인을 클러스터의 API 서버에 직접 요청하여 추가적인 서비스에도 클러스터에 대한 문제가 없도록 웹서버를 구성한다.
도 4는 본 발명의 일 실시예에 따른 중앙 데이터 센터로의 오프로딩 알고리즘을 나타낸다.
본 발명의 실시예에 따른 쿠버네티스 시스템에서는 포드와 노드 할당에 대한 정책들이 존재하여 정책에 맞춘 스케쥴링을 지원한다. 예를 들어, 스케쥴링은 노드 스케쥴링 및 포드 스케쥴링으로 나누어져 포드 실행 순서와 노드의 우선순위를 설정할 수 있다. 이때 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 구동을 위한 애플리케이션 구동 수에 의해 내부에서 동적 조절될 수 있다. 본 발명의 실시예에 따른 오프로딩은 엣지 서버 내의 컴퓨팅 부족 시, 추론 연산을 엣지 서버에서 클라우드에 맡기는 인테그랄 오프로딩(Integral Offloading)을 구현할 수 있다[6].
표 1은 실제 구현된 이미지ML과 스칼라ML을 오프로딩하기 위한 수신부에서의 내부 서비스 처리 알고리즘을 수행하기 위한 구성환경의 상세정보이다.
<표 1>
Figure pat00001
도 5는 본 발명의 일 실시예에 따른 엣지 서버의 동작 방법을 설명하기 위한 흐름도이다.
제안하는 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버의 동작 방법은 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하는 단계(510), 딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 단계(520) 및 자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 단계(530)를 포함한다.
단계(510)에서, 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API를 통해 포드를 생성한다. 본 발명의 실시예에 따른 수신부는 클라이언트의 요청을 처리하기 위해 쿠버네티스 API를 통해 포드를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행한다.
본 발명의 실시예에 따른 수신부는 노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용한다. 본 발명의 실시예에 따르면, 컨트롤러로 디플로이먼트를 사용할 수 있다. 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Update, Read, Delete)를 수행하도록 한다.
단계(520)에서, 딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정한다.
본 발명의 실시예에 따른 딥러닝 모듈은 스칼라 ML(Machine Learning) 및 이미지 ML을 포함한다. 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송한다.
단계(530)에서, 자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행한다. 엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행할 수 있다.
본 발명의 실시예에 따른 딥러닝 애플리케이션을 지원하는 엣지 서버의 구현을 통해 오프로딩을 지원하는 엣지 서버의 성능을 실험하였다.
본 발명의 실시예에서는 Jetson Xavier 2대와 NVIDIA Jetson Nano 1대를 클라이언트로 지정하였으며, 클라이언트에서 각 서비스를 엣지 서버에 요청하여 추론연산을 실시하였다.
표 2는 서비스를 실행하거나 오프로딩이 발생할 때 이동 데이터 량과 전송횟수를 측정하여 딥러닝 서비스를 위한 1개의 서비스에 대한 대역폭 활용 (Bandwidth utilization)을 보여준다.
<표 2>
Figure pat00002
여기서, 'Bandwidth utilization = 이동 데이터량 / 총 전송횟수' 이다.
표 3은 요청 서비스 별 지연시간(End-to-end latency Time)을 나타낸다.
<표 3>
Figure pat00003
여기서, '지연시간(End-to-End Latency Time) = (데이터 전송 시작 시간) - (딥러닝 결과 수신 시간)' 이다.
표 4를 참조하면, 엣지 서버에서 추론 연산을 수행하는 것이 중앙 데이터 센터로 오프로딩되어 추론되는 시간보다 ImageML과 ScalarML이 각각 40%, 52% 빠르다는 것을 확인할 수 있으며, 해당 차이는 신경망 동작 시간의 차이를 통해 네트워크 오버헤드로 인한 결과임을 확인 가능하다. 결론적으로 실제 딥러닝 추론 시간을 모두 고려하였을 경우에도 적절한 오프로딩의 구현이 필요함을 확인할 수 있다.
본 발명의 실시예에 따르면, 제한된 자원과 전력을 가진 임베디드 디바이스에서 딥러닝 애플리케이션의 서비스를 지원하기 위해 쿠버네티스 클러스터를 구성하였고, 더욱 빠른 처리를 위해 미리 딥러닝 서비스를 캐싱된 형태로 엣지 서버를 구현하였다. 또한 자원부족이 발생하여 스케줄링이 어려운 경우 중앙 데이터센터로 오프로딩을 지원하는 딥러닝 애플리케이션을 탑재한 엣지 서버를 구현하였다. 실험결과 이미지ML과 스칼라ML의 오프로딩 시 응답시간은 각각 453ms, 435ms이며 대역폭활용은 0.395Mbyte, 0.0270Mbyte로 측정되었다. 사용되는 대역폭은 차이가 크지만, 응답시간은 전송 데이터 량과 관계없이 비슷한 시간을 보여주며, 결론적으로 오프로딩이 필요한 이유와 이점을 확인할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
<참고문헌>
[1] TAREQ, Md Mostofa Kamal, et al. Ultra reliable, low latency vehicle-to-infrastructure wireless communications with edge computing. In: 2018 IEEE Global Communications Conference (GLOBECOM). IEEE, 2018. p. 1-7.
[2] PAHL, Claus, et al. A container-based edge cloud paas architecture based on raspberry pi clusters. In: 2016 IEEE 4th International Conference on Future Internet of Things and Cloud Workshops (FiCloudW). IEEE, 2016. p. 117-124.
[3] PIMENTEL, Victoria; NICKERSON, Bradford G. Communicating and displaying real-time data with websocket. IEEE Internet Computing, 2012, 16.4: 45-53
[4] "서비스|Kubernetes." Kubernetes.io, n.d., https://kube-rnetes.io/ko/docs/concepts/service-networking/service/#proxy-mode-iptables. 2020년 10월 29일 접속.
[5] "Welcome to Flask -Flask Documentation (1.1x)." https://flask.palletsprojects.com/en/1.1.x/,n.d.,https://flask.palletsprojects.com/en/1.1.x/. 2020.11. 2.
[6] WANG, Xiaofei, et al. Convergence of edge computing and deep learning: A comprehensive survey. IEEE Communications Surveys & Tutorials, 2020, 22.2: 869-904.
[7] HAO, Yixue, et al. Energy efficient task caching and offloading for mobile edge computing. IEEE Access, 2018, 6: 11365-11373.

Claims (8)

  1. 클라이언트의 요청을 처리하기 위해 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하고, 자원이 부족한 경우 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 수신부; 및
    상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 딥러닝 모듈
    을 포함하는 엣지 서버.
  2. 제1항에 있어서,
    상기 수신부는,
    노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용하고, 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Read, Update, Delete)를 수행하도록 하는
    엣지 서버.
  3. 제1항에 있어서,
    상기 딥러닝 모듈은,
    스칼라 ML(Machine Learning) 및 이미지 ML을 포함하고, 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송하는
    엣지 서버.
  4. 제3항에 있어서,
    상기 수신부는,
    엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행하는
    엣지 서버.
  5. 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API(Application Programming Interface)를 통해 포드(Pod)를 생성하는 단계;
    딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 단계; 및
    자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 단계
    를 포함하는 엣지 서버의 동작 방법.
  6. 제5항에 있어서,
    상기 수신부가 클라이언트의 요청을 처리하기 위한 쿠버네티스 API를 통해 포드를 생성하는 단계는,
    노드에 배치할 때 필요한 CPU, GPU와 메모리 상한 값은 각각의 포드를 적용하고, 상기 포드의 수는 노드의 가용 CPU, GPU 및 RAM 가용 자원과 딥러닝 모듈의 구동을 위한 애플리케이션 구동 수에 의해 동적 조절되며, 클라이언트의 요청에 따라 쿠버네티스 API 서버에 CURD(Create, Read, Update, Delete)를 수행하도록 하는
    엣지 서버의 동작 방법.
  7. 제5항에 있어서,
    상기 딥러닝 모듈이 상기 생성된 포드와 노드 할당에 관한 정책에 따라 포드 스케쥴링 및 노드 스케쥴링을 수행하여 포드 실행 순서와 노드의 우선순위를 설정하는 단계는,
    스칼라 ML(Machine Learning) 및 이미지 ML을 포함하고, 상기 스칼라 ML 및 이미지 ML은 모두 포드로 구성되며, 상기 스칼라 ML 및 이미지 ML 각각은 드라이버 프로파일링(Driver Profiling)과 이미지 인식(Image Recognition) 모델을 사용하여 결과를 추론하고, 해당 결과 값은 웹소켓을 통해 클라이언트로 전송하는
    엣지 서버의 동작 방법.
  8. 제7항에 있어서,
    상기 자원이 부족한 경우 수신부가 중앙 데이터 센터로 서비스를 재 요청하는 오프로딩을 수행하는 단계는,
    엣지 서버 내의 자원이 부족한 경우 추론 연산을 엣지 서버로부터 클라우드로 전송하는 인테그랄 오프로딩(Integral Offloading)을 수행하는
    엣지 서버의 동작 방법.
KR1020210138805A 2021-10-18 2021-10-18 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버 KR20230055271A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210138805A KR20230055271A (ko) 2021-10-18 2021-10-18 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210138805A KR20230055271A (ko) 2021-10-18 2021-10-18 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버

Publications (1)

Publication Number Publication Date
KR20230055271A true KR20230055271A (ko) 2023-04-25

Family

ID=86101785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210138805A KR20230055271A (ko) 2021-10-18 2021-10-18 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버

Country Status (1)

Country Link
KR (1) KR20230055271A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117528589A (zh) * 2023-12-29 2024-02-06 江西师范大学 一种基于边缘计算的移动感知层次缓存容错方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117528589A (zh) * 2023-12-29 2024-02-06 江西师范大学 一种基于边缘计算的移动感知层次缓存容错方法
CN117528589B (zh) * 2023-12-29 2024-03-22 江西师范大学 一种基于边缘计算的移动感知层次缓存容错方法

Similar Documents

Publication Publication Date Title
US11368385B1 (en) System and method for deploying, scaling and managing network endpoint groups in cloud computing environments
US20200244721A1 (en) Deploying a workload
EP4109257A1 (en) Methods and apparatus to facilitate service proxying
US11616686B1 (en) Cluster management
US10997538B1 (en) Resource management
US8849905B2 (en) Centralized computing
US20210328933A1 (en) Network flow-based hardware allocation
US20200244745A1 (en) Gateway device allowing multiple infrastructural services to access multiple iot devices
US20230376344A1 (en) An edge-to-datacenter approach to workload migration
US20230137879A1 (en) In-flight incremental processing
Chen et al. A 3.5-tier container-based edge computing architecture
Agostinho et al. A cloud computing environment for supporting networked robotics applications
CN114930296A (zh) 基于不同计算范式内的计算出的计算引力的分布式计算工作负载
US20230018191A1 (en) Service roaming between edge computing platforms
US20230236909A1 (en) Service mesh architecture for integration with accelerator systems
EP3529919B1 (en) Distributed gateways with centralized data center for high throughput satellite (hts) spot beam network
CN115529677A (zh) 以信息为中心的网络非结构化数据载体
CN115777192A (zh) 管理微服务间的通信
KR20230055271A (ko) 딥러닝 애플리케이션의 캐싱 및 오프로딩을 지원하는 엣지 서버
US20230300073A1 (en) Managing bandwith in fibre channel over internet protocol communication channels
US10853129B1 (en) Accelerator based inference service
US20240155025A1 (en) Uses of coded data at multi-access edge computing server
Mohamed et al. Automatic generation of distributed run-time infrastructure for internet of things
Al-Razgan et al. [Retracted] A Computational Offloading Method for Edge Server Computing and Resource Allocation Management
Julio et al. A ROS package for dynamic bandwidth management in multi-robot systems

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E902 Notification of reason for refusal