KR102514798B1 - Computing system for quantitative pricing-based task offloading of iot terminal considering latency in mobile edge computing environment, and method thereof - Google Patents

Computing system for quantitative pricing-based task offloading of iot terminal considering latency in mobile edge computing environment, and method thereof Download PDF

Info

Publication number
KR102514798B1
KR102514798B1 KR1020200179692A KR20200179692A KR102514798B1 KR 102514798 B1 KR102514798 B1 KR 102514798B1 KR 1020200179692 A KR1020200179692 A KR 1020200179692A KR 20200179692 A KR20200179692 A KR 20200179692A KR 102514798 B1 KR102514798 B1 KR 102514798B1
Authority
KR
South Korea
Prior art keywords
electronic device
computer system
information
cpu
user
Prior art date
Application number
KR1020200179692A
Other languages
Korean (ko)
Other versions
KR20220089248A (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 KR1020200179692A priority Critical patent/KR102514798B1/en
Publication of KR20220089248A publication Critical patent/KR20220089248A/en
Application granted granted Critical
Publication of KR102514798B1 publication Critical patent/KR102514798B1/en

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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/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
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • 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
    • 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/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

다양한 실시예들은 정량적 클라우드 기반의 엣지 컴퓨팅 환경에서 지연 시간을 고려한 IoT 단말의 태스크 오프로딩을 위한 컴퓨터 시스템 및 그의 방법에 관한 것으로, 오프로드하고자 하는 전자 장치를 검출하고, 전자 장치를 위해 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하고, 전자 장치로부터 전자 장치에서 사용하기 위한 컴퓨터 시스템의 CPU 처리 시간을 수신하고, CPU 처리 시간 동안, 전자 장치로부터 오프로드되는 태스크를 처리하도록 구성될 수 있다.Various embodiments relate to a computer system and method for offloading a task of an IoT terminal in consideration of latency in a quantitative cloud-based edge computing environment, detecting an electronic device to be offloaded, and detecting a computer system for the electronic device. Proposes a price bidding function to set a unit price per second for CPU usage, receives CPU processing time of the computer system for use in the electronic device from the electronic device, and processes tasks offloaded from the electronic device during the CPU processing time. can be configured to

Description

정량적 클라우드 기반의 엣지 컴퓨팅 환경에서 지연 시간을 고려한 IoT 단말의 태스크 오프로딩을 위한 컴퓨터 시스템 및 그의 방법{COMPUTING SYSTEM FOR QUANTITATIVE PRICING-BASED TASK OFFLOADING OF IOT TERMINAL CONSIDERING LATENCY IN MOBILE EDGE COMPUTING ENVIRONMENT, AND METHOD THEREOF}Computer system and method for task offloading of IoT terminal considering latency in quantitative cloud-based edge computing environment

다양한 실시예들은 정량적 클라우드 기반의 엣지 컴퓨팅 환경에서 지연 시간을 고려한 IoT 단말의 태스크 오프로딩을 위한 컴퓨터 시스템 및 그의 방법에 관한 것이다. Various embodiments relate to a computer system and method for task offloading of an IoT terminal considering latency in a quantitative cloud-based edge computing environment.

최근에는 사물인터넷(IoT) 데이터 분석을 위한 인공지능(AI) 기술이 빠르게 발전하고 있다. 이에 따라 스마트폰, 태블릿PC, 웨어러블 기기 등 수많은 모바일 기기가 등장하며 인기를 끌고 있다. 기술의 발달과 모바일 기기의 인기는 3D 게임과 가상현실(VR)과 같은 계산 집약적인 IoT 애플리케이션에 대한 수요를 증가시켰다. 애플리케이션을 실행하는 데 필요한 태스크 완료 시간만큼 지연 시간이라고도 하는 실행 지연이 있다고 생각할 수 있다. 계산 집약적인 애플리케이션은 짧은 시간에 많은 태스크를 처리해야 하므로 이러한 애플리케이션은 실행 지연에 민감하다. 그러나, 모바일 기기는 만족스러운 경험의 품질(QoE)을 제공할 수 있는 제한된 계산 능력을 가지고 있다.Recently, artificial intelligence (AI) technology for analyzing Internet of Things (IoT) data is developing rapidly. Accordingly, numerous mobile devices such as smartphones, tablet PCs, and wearable devices are appearing and gaining popularity. Advances in technology and the popularity of mobile devices have increased the demand for computationally intensive IoT applications such as 3D games and virtual reality (VR). You can think of execution delays, also known as latency, as long as the task completion time required to run the application. Computationally intensive applications need to handle many tasks in a short amount of time, so these applications are sensitive to execution latency. However, mobile devices have limited computing power capable of providing a satisfactory quality of experience (QoE).

이와 관련하여, 클라우드 컴퓨팅은 컴퓨터 워크로드를 중앙 집중식 서버에 분산시킴으로써 모바일 장치의 제한된 기능 문제를 해결하기 위해 도입되었다. 계산 용량이 상대적으로 적은 장치는 계산 워크로드의 일부를 서버로 보내고, 서버는 이를 처리해 결과를 반환한다. 그런 다음 장치는 워크로드 자체를 처리하는 대신 결과를 받아 사용한다. 클라우드 컴퓨팅 기술을 사용함으로써 모바일 기기는 계산 집약적인 애플리케이션의 실행 지연 요건을 충족할 수 있는 것으로 간주된다. 그러나, 오프로딩이라고 불리는 컴퓨팅 워크로드를 분산시키면, 통신에 의한 추가적인 대기 시간이 발생한다. 따라서 기존의 클라우드 컴퓨팅은 중앙집중식 서버가 물리적으로 사용자와 거리가 멀기 때문에 대기 시간을 줄이는 데 한계가 있었다.In this regard, cloud computing was introduced to solve the problem of limited functionality of mobile devices by distributing computer workloads to centralized servers. Devices with relatively little computational capacity send part of their computational workload to the server, which processes it and returns results. The device then receives and uses the results instead of processing the workload itself. By using cloud computing technology, mobile devices are considered capable of meeting the execution delay requirements of computationally intensive applications. However, distributing the computing workload, called offloading, introduces additional latency due to communication. Therefore, existing cloud computing has limitations in reducing latency because the centralized server is physically far from the user.

통신에 의해 야기되는 이러한 대기 시간을 줄이기 위해, 셀룰러 네트워크의 가장자리에 위치한 MEC 서버에 집중적인 태스크 부하를 보내는 모바일 엣지 컴퓨팅(Mobile Edge Computing; MEC)이 도입되었다. 이러한 MEC 서버는 기존의 중앙집중식 서버보다 사용자 가까이에 위치하기 때문에 모바일 엣지 컴퓨팅은 통신에 의한 대기 시간을 더욱 줄일 수 있다. 모바일 엣지 컴퓨팅에 관한 연구에서는 최적의 자원 할당을 달성하기 위한 최적화 문제를 제시했으며, 에너지 효율을 최대화하거나 실행 지연을 최소화하기 위해 문제를 해결했다. 자원은 계산 용량, 전송 강도, 네트워크 대역폭 등으로 간주할 수 있다. 그러나 이러한 연구들은 대부분 시스템 전반에 걸친 성능 향상에만 초점을 맞추어서 IoT 기기의 공정성에 많은 문제를 야기하고 있다. 이와 관련하여, 이 문제를 해결하기 위한 많은 연구가 진행되었다. 그럼에도 불구하고, 공정성을 향상시키기 위한 이러한 노력은 심지어 더 높은 가격에도 더 많은 엣지 서버를 사용하려는 일부 사용자들을 적절하게 묘사할 수 없다. 이런 점에서 가격 결정 메커니즘을 통해 사용자가 원하는 대로 자원의 양을 할당하는 것이 좋은 선택이 될 수 있다. 이러한 관점에서, 최근에는 MEC 환경의 가격을 고려한 여러 연구가 실시되고 있다. In order to reduce this latency caused by communication, Mobile Edge Computing (MEC) has been introduced which sends intensive task loads to MEC servers located at the edge of the cellular network. Since these MEC servers are located closer to users than existing centralized servers, mobile edge computing can further reduce waiting time due to communication. A study on mobile edge computing presented an optimization problem to achieve optimal resource allocation and solved the problem to maximize energy efficiency or minimize execution delay. Resources can be considered as computational capacity, transmission strength, network bandwidth, etc. However, most of these studies focus only on improving performance throughout the system, causing many problems in the fairness of IoT devices. In this regard, many studies have been conducted to solve this problem. Still, this effort to improve fairness doesn't adequately portray some users who want to use more edge servers, even at higher prices. In this respect, it can be a good choice to allocate the amount of resources according to the user's desire through a pricing mechanism. From this point of view, recently, several studies considering the price of the MEC environment have been conducted.

그런데, 대부분의 기존 태스크는 가격 결정 시 오프로드된 데이터의 양에 초점을 맞춰왔다. 따라서 사용자의 지불(payment)은 기존의 가격 결정 모델에 근거하여 오프로드된 데이터의 양에 비례한다. 따라서 사용자가 동일한 양의 데이터를 오프로딩할 경우 서버의 계산 자원 사용량에 관계없이 동일한 금액을 지불하게 된다. 따라서 사용자들은 계산 자원을 아무리 많이 사용해도 지불이 같기 때문에 많은 계산 자원을 사용하는 것을 선호할 것이다. 그러나, 서버의 관점에서, 서버의 계산 자원은 한정되어 있기 때문에, 각 사용자의 계산 자원 사용은 가격 결정 시 고려되어야 한다. 사용자가 오프로딩된 데이터의 양뿐만 아니라 서버 계산 자원의 사용량에 비례하여 지불하면, 서버는 자원의 과도한 사용으로 인한 과부하 걱정을 하지 않아도 되며, 보다 많은 사용자에게 한정된 자원을 제공함으로써 보다 효율적으로 운영할 수 있게 된다. 따라서, 가격 결정 방식에서는 계산 자원의 사용과 오프로드된 데이터의 양을 고려해야 한다.However, most existing tasks have focused on the amount of data offloaded in pricing. Thus, the user's payment is proportional to the amount of offloaded data based on the existing pricing model. Therefore, if a user offloads the same amount of data, he or she will pay the same amount regardless of the server's computational resource usage. Therefore, users will prefer to use a lot of computational resources because the payment is the same no matter how much computational resources are used. However, from the server's point of view, since the server's computational resources are limited, each user's computational resource usage must be taken into account when determining the price. If users pay in proportion to the amount of offloaded data as well as the amount of server computational resources, the server does not have to worry about overload due to excessive use of resources and can operate more efficiently by providing limited resources to more users. be able to Therefore, the pricing method should consider the use of computational resources and the amount of offloaded data.

다양한 실시예들은, 현 클라우드 산업의 움직임에 따라서 사용 용량과 데이터에 따라 가격이 결정되는 정량적 요금제를 모델링하고 자원 사용량 결정권이 사용자에게 있는 환경에서 사용자들의 최적 오프로딩 결정법(자원 사용량, 데이터 분산량)을 제안한다. 다양한 실시예들에 따르면, 사용자들은 자신이 구동중인 어플리케이션의 지연 시간 조건을 충족하며 낮은 비용으로 데이터를 처리할 수 있는 최적의 서버 사용 용량과 오프로딩 데이터양을 결정할 수 있다.Various embodiments model a quantitative pricing plan in which the price is determined according to the capacity and data used according to the movement of the current cloud industry, and how to determine the optimal offloading of users (resource usage, data distribution) in an environment in which the user has the right to determine resource usage. suggests According to various embodiments, users can determine an optimal server usage capacity and an amount of offloading data capable of processing data at a low cost while meeting a latency condition of an application they are running.

다양한 실시예들은 정량적 클라우드 기반의 엣지 컴퓨팅 환경에서 지연 시간을 고려한 IoT 단말의 태테스크 오프로딩을 위한 컴퓨터 시스템 및 그의 방법을 제공한다. Various embodiments provide a computer system and method for task offloading of an IoT terminal considering latency in a quantitative cloud-based edge computing environment.

다양한 실시예들에 따른 컴퓨터 시스템의 방법은, 오프로드하고자 하는 전자 장치를 검출하는 단계, 상기 전자 장치를 위해 상기 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하는 단계, 상기 전자 장치로부터 상기 전자 장치에서 사용하기 위한 상기 컴퓨터 시스템의 CPU 처리 시간을 수신하는 단계, 및 상기 CPU 처리 시간 동안, 상기 전자 장치로부터 오프로드되는 태스크를 처리하는 단계를 포함한다. A method of a computer system according to various embodiments includes detecting an electronic device to be offloaded, proposing a price bidding function to set a unit price per second for CPU usage of the computer system for the electronic device; Receiving CPU processing time of the computer system for use in the electronic device from the electronic device, and processing a task offloaded from the electronic device during the CPU processing time.

다양한 실시예들에 따른 컴퓨터 시스템은, 메모리, 및 상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고, 상기 프로세서는, 오프로드하고자 하는 전자 장치를 검출하고, 상기 전자 장치를 위해 상기 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하고, 상기 전자 장치로부터 상기 전자 장치에서 사용하기 위한 상기 컴퓨터 시스템의 CPU 처리 시간을 수신하고, 상기 CPU 처리 시간 동안, 상기 전자 장치로부터 오프로드되는 태스크를 처리하도록 구성될 수 있다. A computer system according to various embodiments includes a memory and a processor connected to the memory and configured to execute at least one command stored in the memory, wherein the processor detects an electronic device to be offloaded; Propose a price bidding function for setting a unit price per second for CPU usage of the computer system for the electronic device, receive a CPU processing time of the computer system for use in the electronic device from the electronic device, and During processing time, it may be configured to process tasks offloaded from the electronic device.

다양한 실시예들에 따른 비-일시적인 컴퓨터-판독 가능 저장 매체는, 오프로드하고자 하는 전자 장치를 검출하는 단계, 상기 전자 장치를 위해 상기 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하는 단계, 상기 전자 장치로부터 상기 전자 장치에서 사용하기 위한 상기 컴퓨터 시스템의 CPU 처리 시간을 수신하는 단계, 및 상기 CPU 처리 시간 동안, 상기 전자 장치로부터 오프로드되는 태스크를 처리하는 단계를 실행하기 위한 하나 이상의 프로그램들을 저장할 수 있다.According to various embodiments, a non-transitory computer-readable storage medium may include a step of detecting an electronic device to be offloaded, a price bidding function for setting a unit price per second for CPU usage of the computer system for the electronic device. Proposing a, receiving from the electronic device CPU processing time of the computer system for use in the electronic device, and processing a task offloaded from the electronic device during the CPU processing time. can store one or more programs for

다양한 실시예들에 따르면, 현 클라우드 산업의 정량적 요금제 움직임에 따라, 사용자들은 저비용으로 오프로딩 서비스를 이용하여 서비스 품질(Quality of Service; QOS)를 높일 수 있고, 이에 따라 클라우드 서비스 산업에 대규모 사용자 유입을 기대할 수 있다. 이에 따라, 사용자들은 컴퓨팅 성능의 한계가 있는 모바일 기기를 가지고 고성능 어플리케이션을 구동할 수 있게 되므로, 고성능 어플리케이션의 수요가 증가하여 게임이나 인공지능 기반 모바일 어플리케이션 시장의 활성화를 기대할 수 있다.According to various embodiments, according to the movement of quantitative pricing in the current cloud industry, users can increase Quality of Service (QOS) by using an offloading service at low cost, and accordingly, a large-scale user influx into the cloud service industry. can be expected Accordingly, since users can run high-performance applications with mobile devices that have limitations in computing performance, the demand for high-performance applications increases, which can be expected to activate the game or artificial intelligence-based mobile application market.

도 1은 다양한 실시예들에 따른 시스템 모델을 도시하는 도면이다.
도 2는 다양한 실시예들에 따른 시스템 모델에서의 전반적인 프로세스를 도시하는 도면이다.
도 3 및 도 4는 다양한 실시예들에 따른 가격 입찰 함수를 설명하기 위한 도면들이다.
도 5는 다양한 실시예들에 따라 가격 입찰 함수를 결정하는 신경망을 도시하는 도면이다.
도 6은 다양한 실시예들에 따라 가격 입찰 함수를 결정하는 알고리즘을 도시하는 도면이다.
도 7은 다양한 실시예들에 따른 시스템 모델의 컴퓨터 시스템 및 전자 장치를 도시하는 도면이다.
도 8은 다양한 실시예들에 따른 컴퓨터 시스템의 방법을 도시하는 도면이다.
도 9는 다양한 실시예들에 따른 전자 장치의 방법을 도시하는 도면이다.
1 is a diagram illustrating a system model according to various embodiments.
2 is a diagram illustrating an overall process in a system model according to various embodiments.
3 and 4 are diagrams for explaining a price bidding function according to various embodiments.
5 is a diagram illustrating a neural network that determines a price bidding function in accordance with various embodiments.
6 is a diagram illustrating an algorithm for determining a price bidding function in accordance with various embodiments.
7 is a diagram illustrating a computer system and an electronic device of a system model according to various embodiments.
8 is a diagram illustrating a method of a computer system in accordance with various embodiments.
9 is a diagram illustrating a method of an electronic device according to various embodiments.

이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 설명된다. Hereinafter, various embodiments of this document will be described with reference to the accompanying drawings.

1. 시스템 모델1. System model

도 1은 다양한 실시예들에 따른 시스템 모델을 도시하는 도면이다. 1 is a diagram illustrating a system model according to various embodiments.

도 1을 참조하면, 다양한 실시예들에 따른 시스템 모델은 하나의 서버가 이미 일부 사용자에 의해 사용되고 새로운 사용자가 오프로드되는 상황을 고려한다. 사용자의 목적은 서버에 지불하는 동안 오프로딩하여 실행 지연을 최소화하고 애플리케이션의 실행 지연 요건을 충족시키는 것이다. 여기서, 그 신청이 부분적으로 처리될 수 있다고 가정한다. 애플리케이션 중 하나는 3D 렌더링이며, 이것은 3D 모델을 컴퓨터의 2D 영상으로 변환하는 3D 컴퓨터 그래픽 과정이다. 이 3D 렌더링은 객체 단위로 수행되며 각 객체에 대해 부분적으로 처리할 수 있다. 서버와 사용자의 모바일 기기 간 데이터 전송은 LTE 표준을 따르는 것으로 가정한다.Referring to Figure 1, a system model according to various embodiments considers a situation where one server is already used by some users and new users are offloaded. The user's goal is to offload while paying to the server to minimize execution delay and meet the application's execution delay requirements. Here, it is assumed that the application can be partially processed. One of the applications is 3D rendering, which is a 3D computer graphics process that transforms a 3D model into a 2D image on a computer. This 3D rendering is done on an object-by-object basis and can be partially processed for each object. It is assumed that data transmission between the server and the user's mobile device follows the LTE standard.

도 2는 다양한 실시예들에 따른 시스템 모델에서의 전반적인 프로세스를 도시하는 도면이다.2 is a diagram illustrating an overall process in a system model according to various embodiments.

도 2를 참조하면, 사용자는 로컬 CPU 용량(Fl), 처리할 데이터의 양(d), 실행 지연 요구사항(treq), 워크로드(h)에 대한 정보를 애플리케이션에 따라 가지고 있다. 여기서, 워크로드는 1비트의 데이터를 처리하는 데 필요한 CPU 주기의 수로 정의된다. 새로운 사용자가 오프로드하고자 할 때, 사용자는 위에 언급된 정보를 보고한다. 그런 다음, 서버는 이 정보를 고려하여 적절한 가격을 찾아 사용자에게 결정 가격을 제안한다. 제안된 가격 입찰 함수(price bidding function)는 이 과정에서 사용되며, 이에 대해서는 후술될 것이다. 마지막으로, 사용자는 지불을 고려한 실행 지연을 최소화하기 위해 서버의 오프로드 및 CPU 사용량에 대한 오프로딩 결정을 내린다. 서버의 가격 입찰 함수 결정 방식은 적절한 가격 입찰 함수를 결정하여 수익을 극대화하는 것이다. 가격 입찰 함수와 관련하여, 도 3, 도 4, 도 5 및 도 6을 참조하여, 보다 상세하게 후술될 것이다. 사용자의 최적 오프로드 결정 방식은 서버의 오프로드 및 CPU 사용량을 결정하여 지불을 고려한 실행 지연을 최소화하는 것이다. 아울러, 도 1 및 도 2에 도시된 바와 같은 시스템 모델에서 서버와 사용자의 구성 및 동작에 대해, 보다 상세하게 후술될 것이다.Referring to FIG. 2 , a user has information about a local CPU capacity (F l ), an amount of data to be processed (d), an execution delay requirement (treq), and a workload (h) according to an application. Here, workload is defined as the number of CPU cycles required to process one bit of data. When a new user wants to offload, the user reports the information mentioned above. Then, the server considers this information to find an appropriate price and proposes a determined price to the user. A proposed price bidding function is used in this process, which will be described later. Finally, the user makes an offloading decision on server offloading and CPU usage to minimize pay-as-you-go execution delays. The method of determining the price bid function of the server is to determine an appropriate price bid function to maximize profits. Regarding the price bidding function, it will be described later in more detail with reference to Figs. 3, 4, 5 and 6. The user's optimal offload decision method is to determine the server's offload and CPU usage to minimize execution delay considering payment. In addition, the configuration and operation of the server and the user in the system model shown in FIGS. 1 and 2 will be described in more detail later.

도 3 및 도 4는 다양한 실시예들에 따른 가격 입찰 함수를 설명하기 위한 도면들이다. 도 5는 다양한 실시예들에 따라 가격 입찰 함수를 결정하는 신경망을 도시하는 도면이다. 도 6은 다양한 실시예들에 따라 가격 입찰 함수를 결정하는 알고리즘을 도시하는 도면이다. 3 and 4 are diagrams for explaining a price bidding function according to various embodiments. 5 is a diagram illustrating a neural network that determines a price bidding function in accordance with various embodiments. 6 is a diagram illustrating an algorithm for determining a price bidding function in accordance with various embodiments.

A. 결제 모델A. Payment model

다양한 실시예들은, 기존의 방식의 문제를 해결하기 위한 차등 가격 결정 방식을 제안한다. 기존 태스크의 가격 결정 모델에 따라, 지불은 처리할 태스크의 규모에 비례한다. 이러한 모델은 CPU 용량의 사용량, 즉 초당 CPU 사이클 수와 관계없이 태스크를 처리하는 데 필요한 CPU 사이클 수만을 고려한다. 따라서 모든 사용자는 CPU 용량을 많이 사용하기를 원하는데, 이는 서버의 CPU 용량이 한정되어 있기 때문에 비효율성으로 이어진다. 다양한 실시예들에 따른 가격 결정 방식은 사용자가 사용하는 CPU 용량을 기준으로 가격을 결정한다. 따라서 사용자의 지불은 사용자가 사용하는 서버 CPU 용량과 오프로드된 태스크의 크기를 모두 기준으로 한다.Various embodiments propose a differential pricing scheme to solve the problems of existing schemes. According to the existing task pricing model, payment is proportional to the size of the task to be processed. These models only consider the number of CPU cycles required to process a task, regardless of the usage of CPU capacity, that is, the number of CPU cycles per second. Therefore, all users want to use a lot of CPU capacity, which leads to inefficiency because the CPU capacity of the server is limited. A pricing method according to various embodiments determines a price based on a CPU capacity used by a user. Thus, the user's payment is based on both the server CPU capacity used by the user and the size of the tasks offloaded.

여기서, 사용자가 서버에서 사용할 CPU 용량을 결정하고 오프로드된 데이터가 완전히 처리될 때까지 이 용량을 사용한다고 가정한다. 이 경우, 결제는 서버의 처리 시간과 초당 단가의 곱(product)이 된다.Here, we assume that the user decides how much CPU capacity to use on the server and uses this capacity until the offloaded data is completely processed. In this case, the payment is the product of the processing time of the server and the unit price per second.

다양한 실시예들은 초당 단가를 설정하는 데 사용되는 가격에서 CPU 사용량을 고려하는 가격 입찰 함수를 제안한다. 위에서 언급한 문제를 해결하기 위해 가격 입찰 함수는 사용자가 서버의 CPU 용량을 더 많이 사용하기 때문에 단가를 더 비싸게 만들어야 한다. FT는 서버의 총 CPU 용량을 나타내고 Fa는 사용자가 사용하는 서버의 CPU 용량을 나타내도록 한다. Fa/FT는 사용자의 CPU 사용률을 의미한다. 도 3에 도시된 바에 따르면, 다양한 실시예들에 따른 가격 결정 방식에서, 하기 [수학식 1]과 같이 초당 단가는 CPU 사용량과 그 사용량의 입력에 따른 가격 입찰 함수의 값의 곱으로 설정된다. Various embodiments propose a price bidding function that takes CPU usage into account in the price used to set the unit price per second. To solve the problem mentioned above, the price bidding function should make the unit price higher because the user uses more CPU capacity of the server. Let F T represent the total CPU capacity of the server and F a represent the CPU capacity of the server used by the user. F a /F T means the user's CPU usage rate. As shown in FIG. 3 , in the pricing method according to various embodiments, the unit price per second is set as the product of the CPU usage amount and the value of the price bidding function according to the input of the usage amount, as shown in [Equation 1] below.

Figure 112020138822033-pat00001
Figure 112020138822033-pat00001

여기서 ω는 초당 단가, f는 가격 입찰 함수이다.where ω is the unit price per second and f is the price bidding function.

도 4에 도시된 바에 따르면, 사용자가 처리 시간 동안 서버를 사용하기 때문에, 단가와 처리 시간의 곱이 총 지불이 된다. 사용자가 d비트 밖으로 l비트를 오프로드한다고 가정하자. 1비트를 처리하는 데 필요한 CPU 사이클 수는 애플리케이션에 따라 달라진다. 이 값을 h로 표시하도록 한다. 그런 다음, hl은 오프로드된 데이터를 처리하는 데 필요한 총 CPU 사이클 수를 나타낸다. tp로 표기된 처리시간은 하기 [수학식 2]와 같이 표현할 수 있다.As shown in Fig. 4, since the user uses the server during the processing time, the product of the unit price and the processing time is the total payment. Suppose the user offloads l bits out of d bits. The number of CPU cycles required to process one bit depends on the application. Let this value be denoted by h. Then, hl represents the total number of CPU cycles required to process the offloaded data. The processing time indicated by t p can be expressed as in [Equation 2] below.

Figure 112020138822033-pat00002
Figure 112020138822033-pat00002

총 지불은 단가와 처리시간의 곱이다. 단가는 도 3 및 도 4에 회색 정사각형으로 표시되어 있다. 따라서 사용자가 지급해야 하는 지불은 상기 [수학식 1] 및 [수학식 2]를 기반으로, 하기 [수학식 3]으로 표현할 수 있으며, 이는 도 4의 육면체 부피와 같다. 가격 입찰 함수가 선형일 때 지불 W는 하기 [수학식 4]와 같이 표현할 수 있다.The total payment is the product of unit price and processing time. Unit prices are indicated by gray squares in FIGS. 3 and 4 . Therefore, the payment to be paid by the user can be expressed as the following [Equation 3] based on [Equation 1] and [Equation 2], which is equal to the volume of the hexahedron shown in FIG. 4 . When the price bidding function is linear, the payment W can be expressed as in [Equation 4] below.

Figure 112020138822033-pat00003
Figure 112020138822033-pat00003

여기서 W는 총 지불이다. where W is the total payout.

Figure 112020138822033-pat00004
Figure 112020138822033-pat00004

여기서, 매개변수 b는 항상 양의 값을 가져야 하므로 0보다 커야 하며, 매개변수 a는 사용자가 서버의 CPU 용량을 더 많이 사용하므로 더 비싸야 하기 때문에 0보다 커야 한다.Here, the parameter b must be greater than 0 because it must always have a positive value, and the parameter a must be greater than 0 because the user uses more CPU capacity of the server and therefore must be more expensive.

보조정리 1. 지불 W는 각각 l와 Fa에 대한 증가 함수이다. Lemma 1. Payout W is an increasing function for l and F a, respectively.

증명. h는 1비트의 데이터에 대한 CPU 사이클의 필수 수이며, FT는 서버의 CPU 용량으로 남아 있다. 그것들은 양수여야 한다. 매개변수 a와 b는 정의에 의해 양의 값을 가져야 한다. l와 Fa에 관한 지불의 편도함수는 다음과 같다.proof. h is the required number of CPU cycles for one bit of data, and F T remains the CPU capacity of the server. They must be positive. Parameters a and b must be positive by definition. The partial derivative of the payout with respect to l and F a is

Figure 112020138822033-pat00005
Figure 112020138822033-pat00005

따라서 지불 W는 각각 l와 Fa에 대해 증가하는 함수이다.Thus, the payout W is an increasing function for l and F a respectively.

선형 가격 입찰 함수를 갖춘 지불 모델을 기반으로, 오프로드된 데이터의 양뿐만 아니라 서버 CPU 용량의 사용자 사용으로 지불이 증가한다. 예를 들어 두 명의 사용자가 동일한 양인 200kbyte의 데이터를 오프로딩하고 워크로드가 1000인 동일한 애플리케이션을 사용하면 CPU 사용량에 따라 지불이 달라진다. 한 사용자가 초당 1Х109개의 CPU 사이클을 사용하고 다른 사용자가 초당 2Х109개의 CPU 사이클을 사용하며 서버의 총 CPU 용량은 초당 100Х109 사이클이라고 가정하자. 그들의 지불은 0.248과 0.256이 될 것이다. 여기서 a와 b는 100과 30이다. 따라서 서버의 CPU 용량을 더 많이 사용하는 사용자는 더 많은 비용을 지불해야 한다.Based on a payment model with a linear price bidding function, payment increases with user usage of server CPU capacity as well as amount of offloaded data. For example, if two users are offloading the same amount of data, 200kbytes, and using the same application with a workload of 1000, their pay will vary based on CPU usage. Assume that one user uses 1Х10 9 CPU cycles per second, another user uses 2Х10 9 CPU cycles per second, and the total CPU capacity of the server is 100Х10 9 cycles per second. Their payouts will be 0.248 and 0.256. where a and b are 100 and 30. Therefore, users who use more of the server's CPU capacity will have to pay more.

가격 입찰 함수는 모든 증가 함수가 될 수 있다. 서버에 할인 정책이 있으면 로그 함수가 가격 입찰 함수가 될 수 있다. 지수 함수는 가장 많은 사용자 지원 정책을 가진 서버의 가격 입찰 함수가 될 수 있다. 본 문서에서는 이러한 정책의 평균을 포함할 수 있는 선형 함수를 다룬다.The price bidding function can be any incremental function. If the server has a discount policy, the log function can be a price bid function. The exponential function could be the price bidding function of the server with the most user support policy. This paper deals with linear functions that can include the mean of these policies.

B. Stackelberg 게임 모델B. Stackelberg game model

이 섹션에서 서버와 사용자는 단일 리더-다수 팔로워 슈타켈버그(Stackelberg) 게임 모델로 공식화되는데, 이 모델에서는 서버가 리더로서 기능하고, 사용자는 다수 추정자로서 기능한다. 이를 위해 먼저 사용자의 비용 함수와 서버의 유틸리티 함수를 정의한다. 각 사용자는 자신의 비용 함수를 최소화하고, 서버는 그 유틸리티 함수를 최대화한다.In this section, servers and users are formulated as a single leader-many-follower Stackelberg game model, in which the server acts as the leader and the user acts as the majority predictor. To do this, we first define the user's cost function and the server's utility function. Each user minimizes its own cost function, and the server maximizes its utility function.

서버가 가격 입찰 함수를 제안하면 사용자는 얼마나 많은 데이터를 오프로딩할 것인지, 서버 CPU 용량을 얼마나 사용할 것인지 결정할 수 있다. 사용자의 목적은 실행 지연을 줄이는 것이므로 사용자 비용에는 실행 지연이 포함되어야 한다. 또한 사용자가 적은 금액으로 실행 지연을 최소화하고자 하기 때문에 지불을 가리키는 추가 용어를 포함해야 한다. 사용자가 원하는 실행 지연이 많을수록 제안된 지급 모델에 따라 지급해야 한다. 따라서 사용자는 실행 지연과 지불 사이의 절충을 고려해야 한다. 즉, 사용자 비용은 실행 지연과 지불 모두 고려해야 한다.When the server proposes a price bid function, the user can decide how much data to offload and how much of the server CPU capacity to use. Since the user's goal is to reduce the execution delay, the user cost must include the execution delay. Also, since users want to minimize execution delays for small amounts, we need to include an additional term to refer to payment. The more the execution delay the user wants, the more they have to pay according to the proposed payment model. Therefore, users must consider the trade-off between delay in execution and payment. In other words, user costs must consider both execution delays and payments.

먼저, 실행 지연을 모델링하고 섹션 II-A에 제시된 지불 모델을 이용하여 사용자 비용 함수를 정의할 것이다.First, we will model the execution delay and define the user cost function using the payment model presented in Section II-A.

사용자는 데이터의 일부를 오프로드하고 나머지 데이터를 동시에 로컬로 처리한다. 따라서, 실행 지연은 오프로드에 소요된 시간과 로컬 처리 시간 사이의 긴 시간으로 표현될 수 있다. The user offloads part of the data and processes the rest of the data locally at the same time. Thus, the execution delay can be expressed as the long time between the time spent offloading and the local processing time.

실행 지연은 각각 오프로드 및 로컬 처리 시간으로 te 및 toff, tloc로 표시된다. 그러면 실행 지연은 다음과 같이 표현할 수 있다.The execution delay is denoted by t e and t off , t loc as offload and local processing time, respectively. Then, the execution delay can be expressed as:

Figure 112020138822033-pat00006
Figure 112020138822033-pat00006

오프로드에 소요되는 시간은 업링크 데이터 전송 시간(tup), 서버 처리 시간(tp), 다운링크 데이터 전송 시간(tdown)의 합으로 설정할 수 있다.The time required for offloading can be set as the sum of uplink data transmission time (t up ), server processing time (t p ), and downlink data transmission time (t down ).

Figure 112020138822033-pat00007
Figure 112020138822033-pat00007

MEC 서버와 모바일 기기 사이의 통신은 one-hop 통신이기 때문에 네트워크 용량이 성능에 큰 영향을 미치지 않는다고 생각할 수 있다. 그러므로 우리는 네트워크 용량을 고려하지 않고, 오히려 대역폭과 데이터 전송 능력이 모든 사용자에 대해 동일하다고 가정한다. 따라서 초당 전송이 가능한 비트 수인 데이터 전송률은 상수이다. 업링크와 다운링크 데이터 전송 속도는 각각 rup과 rdown으로 표시된다.Since the communication between the MEC server and the mobile device is a one-hop communication, it can be considered that the network capacity does not have a significant effect on the performance. Therefore, we do not consider network capacity, but rather assume that the bandwidth and data transmission capacity are the same for all users. Therefore, the data rate, which is the number of bits that can be transmitted per second, is a constant. Uplink and downlink data rates are denoted as r up and r down respectively.

업링크 데이터 전송 시간은 l/rup으로 표현할 수 있다. 처리 후의 데이터 크기는 처리 전의 크기와 다를 것이며, 이 비율은 rio라고 가정한다. 그런 다음 다운링크 데이터 전송 시간은 riol/rdown으로 표현할 수 있다. 이를 이용함으로써 상기 [수학식 6]에 기반하여, 하기 [수학식 7]과 같이 오프로딩에 소요되는 시간을 표현할 수 있다.The uplink data transmission time can be expressed as l/r up . The data size after processing will be different from the size before processing, and this ratio is assumed to be r io . Then, the downlink data transmission time can be expressed as r io l/r down . By using this, based on [Equation 6] above, the time required for offloading can be expressed as shown in [Equation 7] below.

Figure 112020138822033-pat00008
Figure 112020138822033-pat00008

사용자는 d-l 비트를 로컬로 처리해야 하므로 (d-l)h는 로컬 처리에 필요한 CPU 사이클 수이다. 로컬 처리 시간(tloc)은 하기[수학식 8]과 같이 표현할 수 있다.Since the user has to process the dl bit locally, (dl)h is the number of CPU cycles required for local processing. The local processing time (t loc ) can be expressed as in [Equation 8].

Figure 112020138822033-pat00009
Figure 112020138822033-pat00009

여기서 Fl은 사용자의 로컬 CPU 용량이다. 실행 지연은 상기 [수학식 5] 내지 [수학식 8]에 기반하여 다음과 같이 설정할 수 있다.where F l is the user's local CPU capacity. The execution delay can be set as follows based on [Equation 5] to [Equation 8] above.

정의 1(사용자의 실행 지연). 사용자의 실행 지연은 하기 [수학식 9]와 같이 정의된다. Definition 1 (user's execution delay). The user's execution delay is defined as in [Equation 9] below.

Figure 112020138822033-pat00010
Figure 112020138822033-pat00010

사용자의 목적은 소액결제로 실행지연을 줄이는 것이기 때문에, 사용자 비용 함수를 실행지연과 지불의 가중합계로 설정하여 그들 사이의 절충을 고려할 수 있다. 사용자의 최적 오프로딩 결정을 위한 의사결정 변수는 오프로드할 데이터 양(l)과 사용할 서버의 CPU 용량(Fa)이다. 이와 관련하여 사용자 비용 함수를 다음과 같이 설정하였다.Since the user's goal is to reduce execution delay with microtransactions, we can consider the trade-off between them by setting the user cost function to be the weighted sum of execution delay and payment. The decision variables for the user's optimal offloading decision are the amount of data to be offloaded (l) and the CPU capacity of the server to be used (F a ). In this regard, the user cost function is set as follows.

정의 2(사용자 비용 함수). 사용자 비용 함수는 하기 [수학식 10]과 같이 정의된다. Definition 2 (user cost function). The user cost function is defined as in [Equation 10] below.

Figure 112020138822033-pat00011
Figure 112020138822033-pat00011

여기서 β는 사용자의 지불 의지(β > 0)를 반영하는 가중치 계수이다.Here, β is a weight coefficient that reflects the user's willingness to pay (β > 0).

β가 작다는 것은 사용자가 지불보다 실행 지연이 더 중요하다고 생각하는 것을 의미한다. 즉, 사용자가 지불할 의향이 더 크다는 뜻이다. 이 사용자 비용 함수를 최소화함으로써 사용자는 지불을 고려한 실행 지연을 최소화하는 광학 오프로딩 결정을 할 수 있다. A small β means that users think that delay in execution is more important than payment. That means users are more willing to pay. By minimizing this user cost function, the user can make optical offloading decisions that minimize the execution delay taking into account payment.

다양한 실시예들에 따른 시스템 모델에서, 서버는 오프로딩 서비스를 제공함으로써 수익을 얻으며 수익을 극대화하고자 한다. 따라서, 서버는 수익을 극대화하기 위해 적절한 가격 입찰 함수를 결정해야 한다. 이 때 가격 입찰 함수는 f(x) = ax + b로 표현되는 선형 함수로 간주되며, a와 b는 서버의 결정 변수이다.In the system model according to various embodiments, the server obtains revenue by providing an offloading service and seeks to maximize revenue. Therefore, the server must determine an appropriate price bidding function to maximize profits. At this time, the price bidding function is regarded as a linear function expressed as f(x) = ax + b, and a and b are decision variables of the server.

일단 서버가 가격 입찰 함수를 제안하면, 사용자는 이를 바탕으로 오프로딩 결정을 내린다. 여기서, 사용자가 항상 오프로딩 결정을 최적화하고, 서버는 사용자의 최적의 전략을 알고 있다고 가정한다.

Figure 112020138822033-pat00012
Figure 112020138822033-pat00013
가 사용자의 최적 오프로딩 결정이라 하자. 그런 다음 서버 유틸리티를 다음과 같이 정의한다.Once the server proposes a price bid function, the user makes an offloading decision based on it. Here, it is assumed that the user always optimizes offloading decisions, and the server knows the user's optimal strategy.
Figure 112020138822033-pat00012
and
Figure 112020138822033-pat00013
Let be the user's optimal offloading decision. Then define the server utility as:

정의 3(서버 유틸리티 함수). 서버 유틸리티는 수익(revenue)으로 정의되며, 이는 하기 [수학식 11]과 같이 표현된다. Definition 3 (Server Utility Functions). Server utility is defined as revenue, which is expressed as in [Equation 11] below.

Figure 112020138822033-pat00014
Figure 112020138822033-pat00014

서버 유틸리티는 정의 3에서 그것의 수익으로 정의되며, 서버의 목적은 유틸리티를 최대화하는 것이다.Server utility is defined as its return in Definition 3, and the purpose of a server is to maximize utility.

마지막으로 사용자의 비용 함수와 서버의 유틸리티 함수를 바탕으로 단일 리더-다수 팔로워 Stackelberg 게임을 공식화한다. 서버는 리더, IoT 사용자는 팔로워이다. Finally, we formulate a single leader-many-follower Stackelberg game based on the user's cost function and the server's utility function. Servers are leaders, IoT users are followers.

2. 평형 분석2. Equilibrium Assay

이하에서는, 사용자와 서버의 목적 균형 전략이 상기에서 공식화된 Stackelberg 게임에 기초하여 도출된다.In the following, the goal balancing strategy of the user and the server is derived based on the Stackelberg game formulated above.

A. 사용자의 최적 전략A. Your optimal strategy

본 섹션에서는 사용자에 대한 최적의 오프로딩 의사결정 체계를 제안한다. 서버 가격 전략에 근거해 비용을 최소화하는 것이 사용자의 최적 전략이다. 서버가 가격 입찰 함수를 제안하면 사용자는 얼마나 많은 데이터를 오프로딩하고 서버의 CPU 용량을 얼마나 사용할지 결정할 수 있다. 사용자의 목적은 실행 지연과 지불로 구성된 그것의 비용을 최소화하는 것이다. 따라서 Fa와 l를 의사결정 변수로 하여 최적화 문제를 다음과 같이 공식화할 수 있다. In this section, we propose an optimal offloading decision-making system for users. Based on the server pricing strategy, minimizing costs is the user's optimal strategy. When the server proposes a price bid function, the user can decide how much data to offload and how much of the server's CPU capacity to use. The user's objective is to minimize its costs, consisting of delays in execution and payments. Therefore, with F a and l as decision variables, the optimization problem can be formulated as follows.

문제 1(최적 오프로딩 의사결정 문제) Problem 1 (optimal offloading decision problem)

Figure 112020138822033-pat00015
Figure 112020138822033-pat00015

여기서 Fr은 사용자가 오프로드하고자 할 때 서버의 남은 CPU 용량이며, treq는 사용자의 실행 지연 요건을 나타내며, te는 상기 [수학식 9]에 표현된 실행 지연이다. 첫 번째 제약 조건(s.t.)은 오프로드된 데이터 크기가 0보다 작거나 전체 데이터 크기보다 클 수 없음을 의미한다. 두 번째 제약 조건은 서버에 있는 사용자의 CPU 사용량이 0 이하일 수 없고 그 당시 서버의 남은 CPU 용량보다 클 수 없다는 것을 의미한다. 세 번째 제약 조건은 실행 지연이 사용자의 요구 조건보다 작거나 같아야 함을 의미한다.Here, F r is the remaining CPU capacity of the server when the user wants to offload, t req represents the user's execution delay requirement, and t e is the execution delay expressed in [Equation 9] above. The first constraint (st) means that the offloaded data size cannot be less than 0 or greater than the total data size. The second constraint means that the CPU usage of a user on the server cannot be less than 0 and cannot be greater than the remaining CPU capacity of the server at that time. The third constraint means that the execution delay must be less than or equal to the user's requirement.

Figure 112020138822033-pat00016
이 사용자가 서버에서 연산 용량 Fa를 사용할 때 오프로드에 소요되는 시간과 로컬 처리 시간을 동일하게 하는 데이터 크기를 나타낸다 하자. Fa의 함수로 표현할 수 있으며, 우리는 다음과 같이 정의한다.
Figure 112020138822033-pat00016
Let us denote a data size that equates the time required for offloading with the local processing time when this user uses the computing capacity F a on the server. It can be expressed as a function of F a , and we define it as:

정의 4(오프로드할 평형 데이터 크기). 하기 [수학식 12]와 같이평형 데이터 크기를 오프로드 시간과 로컬 처리 시간이 같아지는 데이터 크기로 정의하고, 이를

Figure 112020138822033-pat00017
(Fa)으로 표시한다. Definition 4 (balanced data size to offload). As shown in [Equation 12], the equilibrium data size is defined as the data size for which the offload time and the local processing time are equal,
Figure 112020138822033-pat00017
(F a ).

Figure 112020138822033-pat00018
Figure 112020138822033-pat00018

여기서 A는

Figure 112020138822033-pat00019
이다.where A is
Figure 112020138822033-pat00019
am.

l가

Figure 112020138822033-pat00020
(Fa) 미만일 경우, 로컬 처리 시간이 오프로드에 소요된 시간보다 길다. 로컬 처리 시간은 l가
Figure 112020138822033-pat00021
(Fa)보다 클 때 오프로드에 소요된 시간보다 짧다.l is
Figure 112020138822033-pat00020
If less than (F a ), the local processing time is longer than the time taken for offloading. Local processing time is l
Figure 112020138822033-pat00021
(F a ) is shorter than the time spent off-road.

이를 위해 사용자가 서버에서 연산 용량 Fa'를 사용할 때

Figure 112020138822033-pat00022
를 사용자 비용 함수로 한다.To this end, when the user uses the computing capacity F a 'in the server
Figure 112020138822033-pat00022
is the user cost function.

정의 5. 사용자가 서버의 계산 용량 Fa'를

Figure 112020138822033-pat00023
로 사용할 때 사용자 비용 함수를 하기 [수학식 13]과 같이 정의한다. Definition 5 . The user sets the computational capacity Fa' of the server
Figure 112020138822033-pat00023
When used as , the user cost function is defined as in [Equation 13].

Figure 112020138822033-pat00024
Figure 112020138822033-pat00024

사용자 비용 함수의 두 번째 항인 사용자 지불은 보조정리 1에 근거하여 증가한다. l에 대한 지불 항의 기울기에 따라 비용함수는 모양이 다를 수 있다.The second term of the user cost function, the user payment, increases based on lemma 1. Depending on the slope of the pay term with respect to l, the cost function may have a different shape.

보조정리 2. l에 대한 지불 기울기가

Figure 112020138822033-pat00025
보다 크면 사용자 비용 함수
Figure 112020138822033-pat00026
가 증가 함수가 될 것이다. Lemma 2. If the payout slope for l is
Figure 112020138822033-pat00025
greater than the user cost function
Figure 112020138822033-pat00026
will be an increasing function.

증명. 오프로드할 데이터 크기(l)에 근거하여 사용자의 실행 지연을 다음과 같이 표현할 수 있다.proof. Based on the data size (l) to be offloaded, the user's execution delay can be expressed as:

Figure 112020138822033-pat00027
Figure 112020138822033-pat00027

l에 관한 사용자 비용 함수의 편도함수는 다음과 같다.The partial derivative of the user cost function with respect to l is

Figure 112020138822033-pat00028
Figure 112020138822033-pat00028

Figure 112020138822033-pat00029
인 l에 대한 지불 기울기가
Figure 112020138822033-pat00030
보다 크다고 가정하자. 그러면,
Figure 112020138822033-pat00029
is the payout slope for l
Figure 112020138822033-pat00030
Let's assume it's bigger than then,

Figure 112020138822033-pat00031
Figure 112020138822033-pat00031

Figure 112020138822033-pat00032
이면, 비용 함수
Figure 112020138822033-pat00033
은 증가 함수이다.
Figure 112020138822033-pat00032
If , the cost function
Figure 112020138822033-pat00033
is an increasing function.

보조정리 3. l에 대한 지불 기울기가

Figure 112020138822033-pat00034
보다 작을 경우 사용자 비용 함수
Figure 112020138822033-pat00035
Figure 112020138822033-pat00036
에서
Figure 112020138822033-pat00037
와 같이 최소값을 갖는다. Lemma 3. If the payout slope for l is
Figure 112020138822033-pat00034
User cost function if less than
Figure 112020138822033-pat00035
Is
Figure 112020138822033-pat00036
at
Figure 112020138822033-pat00037
has a minimum value as

증명. 사용자 비용 함수

Figure 112020138822033-pat00038
의 편도함수는 보조정리 2의 증명에 제시되어 있다.
Figure 112020138822033-pat00039
Figure 112020138822033-pat00040
라 가정하자.proof. user cost function
Figure 112020138822033-pat00038
The partial derivative of is given in the proof of Lemma 2.
Figure 112020138822033-pat00039
Figure 112020138822033-pat00040
Let's assume

Figure 112020138822033-pat00041
Figure 112020138822033-pat00041

사용자 비용 함수

Figure 112020138822033-pat00042
값은 l가 ~l(F0a)까지 증가할수록 감소하고, l이
Figure 112020138822033-pat00043
이상 증가할수록 증가한다. 따라서 사용자 비용 함수는
Figure 112020138822033-pat00044
에서 최소값을 갖는다.user cost function
Figure 112020138822033-pat00042
The value decreases as l increases up to ~l (F0a), and when l
Figure 112020138822033-pat00043
increases as the number increases. So the user cost function is
Figure 112020138822033-pat00044
has a minimum value in

Figure 112020138822033-pat00045
Figure 112020138822033-pat00045

보조정리 4. l에 대한 지불 기울기가

Figure 112020138822033-pat00046
과 같을 경우, 사용자 비용 함수
Figure 112020138822033-pat00047
는 모든
Figure 112020138822033-pat00048
에 대해 동일한 값을 가지며, 모든
Figure 112020138822033-pat00049
에 대해 증가 함수가 될 것이다. Lemma 4. If the payout slope for l is
Figure 112020138822033-pat00046
, the user cost function
Figure 112020138822033-pat00047
is all
Figure 112020138822033-pat00048
has the same value for all
Figure 112020138822033-pat00049
will be an increasing function for

증명.

Figure 112020138822033-pat00050
라 가정하자. 그러면,proof.
Figure 112020138822033-pat00050
Let's assume then,

Figure 112020138822033-pat00051
Figure 112020138822033-pat00051

이는 보조정리 2의 증명에서 사용자 비용 함수의 편도함수에 기초한다.It is based on the partial derivative of the user cost function in the proof of Lemma 2.

따라서 사용자 비용 함수는 모든

Figure 112020138822033-pat00052
에 대하여 동일한 값을 가지고, l에 대해 l이
Figure 112020138822033-pat00053
이상 증가하면 증가한다.Therefore, the user cost function is
Figure 112020138822033-pat00052
has the same value for , and l for l
Figure 112020138822033-pat00053
Increases more than

보조정리 4를 기준으로 l에 대한 지불 기울기가

Figure 112020138822033-pat00054
과 같다면 서버에서 초당 Fa' 컴퓨팅 사이클을 사용하는 경우
Figure 112020138822033-pat00055
을 보내는지 여부에 따라 사용자는 동일한 비용을 갖는다. 그러나 오프로딩 시 사용자는 에너지 소비의 혜택을 받을 수 있고 로컬 컴퓨팅 시간을 줄일 수 있어 다른 태스크를 처리할 수 있는 시간이 주어진다. 따라서 l에 대한 지불 기울기가
Figure 112020138822033-pat00056
과 같을 때 사용자 비용이 같더라도 사용자가
Figure 112020138822033-pat00057
비트의 데이터를 오프로드한다고 가정한다.Based on Lemma 4, the payout gradient for l is
Figure 112020138822033-pat00054
If the server uses Fa' computing cycles per second, then
Figure 112020138822033-pat00055
Depending on whether or not to send the user has the same cost. However, when offloading, users can benefit from energy consumption and reduce local computing time, giving them time to tackle other tasks. Therefore, the payout slope for l is
Figure 112020138822033-pat00056
When , even if the user cost is the same, the user
Figure 112020138822033-pat00057
Assume we offload bits of data.

가정 1. l에 대한 지불 기울기가

Figure 112020138822033-pat00058
과 같을 경우, 사용자는
Figure 112020138822033-pat00059
전송 여부와 상관없이 사용자 비용이 동일하더라도 데이터의
Figure 112020138822033-pat00060
비트의 데이터를 오프로드한다. Assumption 1. If the payout slope for l is
Figure 112020138822033-pat00058
, the user
Figure 112020138822033-pat00059
of data, even if the user costs the same regardless of whether it is transmitted or not.
Figure 112020138822033-pat00060
Offload bits of data.

그러면 보조정리 2, 3, 4 및 가정 1에서 정리 1을 도출할 수 있다.Then, theorem 1 can be derived from lemmas 2, 3, 4 and assumption 1.

정리 1. 사용자는

Figure 112020138822033-pat00061
이면, 오프로딩에서 혜택을 가질 수 있다. 그러지 않다면, 오프로딩은 사용자에게 혜택을 줄 수 없다. Theorem 1. Users
Figure 112020138822033-pat00061
, you may benefit from off-roading. Otherwise, offloading cannot benefit users.

증명. 보조정리 2에 기초하여,

Figure 112020138822033-pat00062
이면, 사용자 비용 함수는 l에 대하여 증가 함수이다. 즉, 오프로드된 데이터의 크기가 커질수록 사용자 비용이 증가하는 것이다. 따라서 사용자가 오프로드하지 않는 것이 최적이다.
Figure 112020138822033-pat00063
이면 사용자는 보조정리 3에 근거한 오프로드의 혜택을 얻을 수 있다. 보조정리 4와 가정 1에 따르면 사용자 역시 오프로드의 혜택을 누릴 수 있다.proof. Based on the lemma 2,
Figure 112020138822033-pat00062
, then the user cost function is an increasing function with respect to l. That is, as the size of the offloaded data increases, the user cost increases. Therefore, it is optimal that the user does not offload.
Figure 112020138822033-pat00063
If this is the case, the user can benefit from offloading based on lemma 3. According to Lemma 4 and Assumption 1, users can also benefit from offloading.

이제 일반성 상실 없이 Fa'을 Fa로 확장할 수 있다. 그 후 사용자 비용 함수 V(Fa, l)에 있어서는 하기 [수학식 15]와 같은 조건이 충족될 경우 사용자가 오프로드 혜택을 받을 수 있는 것으로 알려져 있다.We can now extend Fa' to Fa without loss of generality. Then, in the user cost function V(Fa, l), it is known that the user can receive an off-road benefit when the condition as shown in [Equation 15] below is satisfied.

Figure 112020138822033-pat00064
Figure 112020138822033-pat00064

이것은 하기 [수학식 16]과 같이 다시 표현될 수 있다.This can be re-expressed as in [Equation 16] below.

Figure 112020138822033-pat00065
Figure 112020138822033-pat00065

l의 경우 상기 [수학식 16]와 같은 조건이 충족되면

Figure 112020138822033-pat00066
만큼 오프로드하는 것이 최적 오프로드 결정이다. 그렇지 않으면 사용자는 오프로드의 혜택을 받을 수 없으므로 사용자의 최적 전략은 오프로드하지 않는 것이다.In the case of l, if the condition as in [Equation 16] is satisfied,
Figure 112020138822033-pat00066
Offloading as much as possible is the optimal off-road decision. Otherwise, the user cannot benefit from offloading, so the user's optimal strategy is not to offload.

Figure 112020138822033-pat00067
Figure 112020138822033-pat00067

이 점에서

Figure 112020138822033-pat00068
는 사용자가 서버에서 Fa 계산 용량을 사용할 때 오프로드할 수 있는 최적의 데이터 크기이다. 상기 [수학식 16]과 같은 조건이 충족되면 Fa에서도 최적의 오프로드 결정을 찾아야 한다. 따라서 앞으로는 사용자가
Figure 112020138822033-pat00069
를 상기 [수학식 16]과 같은 조건으로 오프로드할 때 최적의 Fa를 찾는다.in this respect
Figure 112020138822033-pat00068
is the optimal data size that can be offloaded when a user uses F a computing capacity on the server. If the condition as in [Equation 16] above is satisfied, an optimal offload decision must be found in F a as well. Therefore, in the future, users
Figure 112020138822033-pat00069
When offloading is performed under the same conditions as in [Equation 16] above, the optimal F a is found.

상기 [수학식 16]과 같은 조건이 충족되고 사용자가

Figure 112020138822033-pat00070
비트의 데이터를 오프로드하면 실행 지연은 로컬 처리 시간과 동일해진다. 문제 1의 세 번째 제약 조건은 하기 [수학식 18]과 같이 다시 쓸 수 있다.If the condition as in [Equation 16] above is satisfied, the user
Figure 112020138822033-pat00070
By offloading a bit of data, the execution delay equals the local processing time. The third constraint of Problem 1 can be rewritten as in [Equation 18] below.

Figure 112020138822033-pat00071
Figure 112020138822033-pat00071

이는 하기 [수학식 19]와 같다.This is as shown in [Equation 19] below.

Figure 112020138822033-pat00072
Figure 112020138822033-pat00072

그 후 상기 [수학식 16]와 같은 조건을 충족하고 사용자가

Figure 112020138822033-pat00073
비트의 데이터를 오프로드할 때 상기 [수학식 14]에 근거하여 Fa에 대한 최적 오프로드 결정 문제를 다음과 같이 수정할 수 있다.After that, the condition as in [Equation 16] is satisfied, and the user
Figure 112020138822033-pat00073
When bit data is offloaded, the optimal offload decision problem for F a can be modified as follows based on [Equation 14] above.

문제 2(수정 최적 오프로드 결정 문제). Problem 2 (Fix Optimal Offload Determination Problem).

Figure 112020138822033-pat00074
Figure 112020138822033-pat00074

여기서, 상기 [수학식 20]에 대한 제약 조건들은 문제 1의 두 번째 제약 조건, 네 번째 제약 조건, 상기 [수학식 16] 및 상기 [수학식 19]와 같다. Here, the constraints for [Equation 20] are the same as the second and fourth constraints of Problem 1, [Equation 16] and [Equation 19] above.

상기 [수학식 20]에서 수정 비용 함수는 사용자가

Figure 112020138822033-pat00075
을 오프로딩할 때 사용자 비용 함수로, 사용자가 서버에서 계산 용량 Fa를 사용할 때 오프로딩할 데이터 크기에 대한 최적의 오프로드 결정이다. 우리는 이 비용 함수를
Figure 112020138822033-pat00076
으로 정의한다. In [Equation 20], the correction cost function is
Figure 112020138822033-pat00075
is the optimal offload decision for the size of data to offload when the user uses the computational capacity F a on the server. We use this cost function
Figure 112020138822033-pat00076
Defined by

정의 6. 사용자가 데이터의

Figure 112020138822033-pat00077
비트를
Figure 112020138822033-pat00078
로 오프로딩할 때 사용자 비용 함수를 하기[수학식 21]과 같이 정의한다. Definition 6. Users of data
Figure 112020138822033-pat00077
bit
Figure 112020138822033-pat00078
When offloading to , the user cost function is defined as follows [Equation 21].

Figure 112020138822033-pat00079
Figure 112020138822033-pat00079

그것은 상기 [수학식 20]과 같다.It is the same as [Equation 20] above.

사용자 비용 함수

Figure 112020138822033-pat00080
은 Fa≥0에서 볼록함수로, 다음과 같이 설명한다.user cost function
Figure 112020138822033-pat00080
is a convex function at Fa≥0, and is described as follows.

보조정리 5. 사용자 비용 함수

Figure 112020138822033-pat00081
는 Fa≥0에서 볼록 함수이다. Lemma 5. User cost function
Figure 112020138822033-pat00081
is a convex function at Fa≥0.

증명. 사용자 비용 함수

Figure 112020138822033-pat00082
의 2차 편도 함수는 다음과 같이 표현된다.proof. user cost function
Figure 112020138822033-pat00082
The second order partial derivative of is expressed as

Figure 112020138822033-pat00083
Figure 112020138822033-pat00083

문제 1의 두 번째 제약조건과 상기 [수학식 16]과 같은 조건에 따르면

Figure 112020138822033-pat00084
는 항상 0보다 크거나 같기 때문에 비용함수의 2차 편도함수는 항상 Fa≥0이다. 따라서 비용함수
Figure 112020138822033-pat00085
는 Fa≥0에서 볼록 함수이다.According to the second constraint of Problem 1 and the same conditions as [Equation 16] above,
Figure 112020138822033-pat00084
is always greater than or equal to 0, so the second partial derivative of the cost function is always F a ≥ 0. Therefore, the cost function
Figure 112020138822033-pat00085
is a convex function at Fa≥0.

따라서 이 수정 문제는 볼록한 제약을 가진 볼록 최적화 문제로서, 수정 비용 함수를 최소화하는 해결책은 보조정리 6에서 설명한다.Therefore, this correction problem is a convex optimization problem with convex constraints, and the solution to minimize the correction cost function is described in Lelem 6.

보조정리 6. 수정 비용 함수를 최소화하는 해결책

Figure 112020138822033-pat00086
Lemma 6. A solution that minimizes the modified cost function
Figure 112020138822033-pat00086
Is

Figure 112020138822033-pat00087
Figure 112020138822033-pat00087

여기서 B는

Figure 112020138822033-pat00088
이다.where B is
Figure 112020138822033-pat00088
am.

증명.

Figure 112020138822033-pat00089
의 1차 편도 함수는 다음과 같이 표현된다.proof.
Figure 112020138822033-pat00089
The first partial derivative of is expressed as

Figure 112020138822033-pat00090
Figure 112020138822033-pat00090

Figure 112020138822033-pat00091
를 1차 편도 함수가 0과 동일하게 만드는 값을 나타낸다 하자. 그러면 이는 다음과 같이 표현된다.
Figure 112020138822033-pat00091
Let denote the value that makes the first-order partial derivative equal to zero. Then this is expressed as:

Figure 112020138822033-pat00092
Figure 112020138822033-pat00092

B가 문제 1의 두 번째 제약 조건과 상기 [수학식 16]과 같은 조건에 기초하여 항상 음의 값을 가지기 때문에

Figure 112020138822033-pat00093
는 항상 양의 값을 가진다. Fa가 Ca≥0에서
Figure 112020138822033-pat00094
보다 작다면, 비용은 감소하고 그렇지 않으면 증가한다.
Figure 112020138822033-pat00095
는 수정 비용 함수
Figure 112020138822033-pat00096
를 최소화한다.Since B always has a negative value based on the second constraint of Problem 1 and the same condition as [Equation 16] above,
Figure 112020138822033-pat00093
always has a positive value. When Fa is Ca≧0
Figure 112020138822033-pat00094
less than , the cost decreases and otherwise increases.
Figure 112020138822033-pat00095
is the modified cost function
Figure 112020138822033-pat00096
to minimize

그러나

Figure 112020138822033-pat00097
는 실현 가능한 범위를 벗어나면 최적의 해결책이 아닐 수 있다. Fmin은 하한을 나타내며, Fmax는 문제 1의 두 번째 제약 조건, 상기 [수학식 16], 상기 [수학식 19]에 근거하여 실현 가능한 Fa 범위의 상한을 나타내도록 한다.however
Figure 112020138822033-pat00097
may not be an optimal solution if it is outside the feasible range. F min represents the lower limit, and F max represents the upper limit of the feasible F a range based on the second constraint of Problem 1, [Equation 16] and [Equation 19] above.

Figure 112020138822033-pat00098
Figure 112020138822033-pat00098

Figure 112020138822033-pat00099
Figure 112020138822033-pat00099

이러한 실현 가능한 한도에 근거하여 실현 가능한 최적 해결책

Figure 112020138822033-pat00100
는 정리 2에 의해 설명된다.Based on these feasible limits, the best feasible solution
Figure 112020138822033-pat00100
is explained by Theorem 2.

정리2. 수정 비용 함수를 최소화하는 실현 가능한 최적 솔루션

Figure 112020138822033-pat00101
는 상기 [수학식 17], [수학식 23], [수학식 24], 보조정리 5 및 보조정리 6에 근거하여 다음과 같다. Organize 2. A feasible optimal solution that minimizes the modified cost function
Figure 112020138822033-pat00101
is as follows based on [Equation 17], [Equation 23], [Equation 24], lemma 5 and lemma 6 above.

Figure 112020138822033-pat00102
Figure 112020138822033-pat00102

증명. 문제 1의 두 번째 제약 조건과 상기 [수학식 16]을 충족하기 위해서는 계산 용량이 음의 값을 가질 수 없으므로

Figure 112020138822033-pat00103
이라는 조건이 충족되어야 한다. 그렇지 않다면 실현 가능한 해결책은 존재하지 않는다. 즉, 사용자의 최적 전략은 오프로드하지 않는 것이므로 실현 가능한 최적 솔루션은 (0, 0)이다.proof. In order to satisfy the second constraint of Problem 1 and [Equation 16] above, the computational capacity cannot have a negative value,
Figure 112020138822033-pat00103
condition must be met. Otherwise, no feasible solution exists. That is, since the user's optimal strategy is not to offload, the optimal feasible solution is (0, 0).

Figure 112020138822033-pat00104
가 실현 가능한 범위라면,
Figure 112020138822033-pat00105
은 보조정리 6을 기준으로 하는 것이 최적이다.
Figure 112020138822033-pat00104
is within the feasible range,
Figure 112020138822033-pat00105
is optimally based on Lelem 6.

Fmin보다

Figure 112020138822033-pat00106
가 적으면 수정 비용 함수를 최소화한 해결책이 사용자의 실행지연 요건을 충족하지 못하는 경우다. 이 경우 사용자는 요건을 충족하기 위해 서버에서 최소한 Fmin 계산 용량을 사용해야 한다. 비용 함수는 보조정리 5를 기반으로 한 볼록 함수이기 때문에 다음과 같은 불균등이 유지된다.Than F min
Figure 112020138822033-pat00106
If is small, the solution that minimizes the modified cost function does not meet the user's execution delay requirement. In this case, the user must use at least F min computing capacity on the server to meet the requirement. Since the cost function is a convex function based on Lemma 5, the following inequality holds.

Figure 112020138822033-pat00107
Figure 112020138822033-pat00107

따라서 이 경우

Figure 112020138822033-pat00108
은 사용자 비용을 최소화하는 것이 실현 가능한 최적의 해결책이다. So in this case
Figure 112020138822033-pat00108
is the optimal feasible solution to minimize user cost.

Fmax보다

Figure 112020138822033-pat00109
가 크면 서버의 남은 용량이 부족하거나 사용자가 오프로드로 혜택을 볼 수 없는 경우다. 같은 방법으로 다음과 같은 불균등이 지속된다.than F max
Figure 112020138822033-pat00109
If is large, either the server has insufficient remaining capacity or the user cannot benefit from offloading. In the same way, the following inequalities persist.

Figure 112020138822033-pat00110
Figure 112020138822033-pat00110

따라서

Figure 112020138822033-pat00111
가 Fmax보다 큰 경우
Figure 112020138822033-pat00112
는 사용자 비용을 최소화하는 실현 가능한 최적 해결책이다.thus
Figure 112020138822033-pat00111
is greater than F max
Figure 112020138822033-pat00112
is a feasible optimal solution that minimizes user cost.

Figure 112020138822033-pat00113
는 서버가 사용자에게 가격 입찰 기능을 제안했을 때 최적의 오프로드 결정이다.
Figure 112020138822033-pat00114
일 때 사용자는 비용을 최소화할 수 있으며, 이 결정에 근거한 오프로딩으로 실행 지연 요건을 충족할 수 있다.
Figure 112020138822033-pat00115
일 때, 사용자는 오프로드 결정 체계에 기초하여 오프로드 태스크를 수행할 수 없다는 것을 알 수 있다. 따라서 이러한 오프로드 의사결정 방식에 기초한 오프로드 태스크는 사용자의 최적의 전략이다.this
Figure 112020138822033-pat00113
is the optimal offload decision when the server offers the price bidding function to the user.
Figure 112020138822033-pat00114
When , the user can minimize cost, and offloading based on this decision can meet the execution delay requirement.
Figure 112020138822033-pat00115
When , the user may know that the offload task cannot be performed based on the offload decision scheme. Therefore, an offload task based on this offload decision-making method is an optimal strategy for the user.

B. Stackelberg 평형 전략B. Stackelberg equilibrium strategy

본 섹션에서는 서버의 Stackelberg 평형 전략을 제안한다. 서버의 목적은 서버가 사용자의 최적의 오프로드 전략을 알고 있을 때 상술한 바와 같이 그 유틸리티를 최대화하는 것이다. 여기서, 사용자가 항상 최적의 전략을 바탕으로 오프로드 결정을 내리고, 서버는 사용자의 전략을 알고 있다고 가정한다. 서버가 가격 입찰 함수를 제안하면, 사용자는 제안된 가격 입찰 함수를 바탕으로 최적의 오프로드 결정을 내린다. 따라서, 서버는 그 유틸리티를 극대화하기 위해 적절한 가격 입찰 함수를 결정해야 한다. 본 논문에서 가격 입찰 함수는 f(x) = ax+b로 표현되는 선형 함수로 간주되며, 가격 입찰 함수의 입력은 서버상에서 사용자의 계산 자원 사용 비율이다. 따라서, 서버는 a와 b를 결정해야 하며, 이것들은 서버의 결정 변수들이다.

Figure 112020138822033-pat00116
Figure 112020138822033-pat00117
는 상술된 사용자의 최적 오프로드 결정이다. 서버가 a와 b를 변경하면
Figure 112020138822033-pat00118
Figure 112020138822033-pat00119
가 함께 변경된다. a와 b가 너무 크면 사용자는 약간의 오프로드가 발생하며, 실행 지연 요건을 충족하지 못할 수 있다. 그러면 사용자가 오프로드하지 않을 수 있다. 결과적으로, 서버의 유틸리티가 줄어들 수 있다.In this section, we propose a Stackelberg equilibrium strategy for servers. The purpose of the server is to maximize its utility as described above when the server knows the user's optimal offload strategy. Here, we assume that the user always makes offload decisions based on the optimal strategy, and the server knows the user's strategy. When the server proposes a price bid function, the user makes an optimal offload decision based on the proposed price bid function. Accordingly, the server must determine an appropriate price bidding function to maximize its utility. In this paper, the price bidding function is regarded as a linear function expressed as f(x) = ax+b, and the input of the price bidding function is the user's computational resource usage rate on the server. Therefore, the server must determine a and b, and these are the server's decision variables.
Figure 112020138822033-pat00116
and
Figure 112020138822033-pat00117
is the user's optimal offload decision described above. If the server changes a and b
Figure 112020138822033-pat00118
and
Figure 112020138822033-pat00119
are changed together. If a and b are too large, the user will experience some offload and may not meet the execution delay requirements. Then the user may not offload. As a result, the server's utility may be reduced.

이와 관련하여, 이용자의 최적전략에 근거해 그 유틸리티를 극대화하기 위한 서버의 최적화 문제는 다음과 같이 표현할 수 있다.In this regard, the server optimization problem to maximize its utility based on the user's optimal strategy can be expressed as follows.

문제 3(가격 입찰 함수 결정 문제). Problem 3 (price bid function determination problem).

Figure 112020138822033-pat00120
Figure 112020138822033-pat00120

Figure 112020138822033-pat00121
Figure 112020138822033-pat00121

다양한 실시예들에서는, 적절한 계수 a와 b를 결정하는 기능을 찾기 위해 감독 학습을 제안한다. 실제로 서버는 가격 입찰 함수를 빨리 결정해야 한다. 서버가 서버 및 사용자 상태에 따라 적절한 계수를 찾도록 모델을 교육하면 사용자가 오프로드하고자 할 때마다 서버 측에서 가격 입찰 함수를 바로 제안할 수 있게 된다.In various embodiments, supervised learning is proposed to find the function that determines the appropriate coefficients a and b. In practice, the server must quickly determine the price bidding function. By training the model to have the server find the appropriate coefficient based on server and user conditions, the server side can immediately suggest a price bidding function whenever the user wants to offload.

피드-포워드 신경망은 감독 학습에 기초한 회귀 분석에 사용되며, 신경망의 구성은 도 5에 제시되어 있다.A feed-forward neural network is used for regression analysis based on supervised learning, and the configuration of the neural network is shown in FIG. 5 .

사용자마다 로컬 계산 용량, 데이터 크기, 지불 의지가 다르다. 또한 1비트의 데이터를 계산하는 데 필요한 CPU 사이클 수와 실행 지연 요구사항은 각 사용자가 사용하는 애플리케이션에 따라 달라진다. 따라서 사용자가 오프로드 결정을 내리려면 이 다섯 가지 유형의 정보가 필요하다. 서버 자원의 상태는 사용자가 오프로드를 시도할 때마다 달라지기 때문에 가격 입찰 함수를 결정할 때도 서버 자원 상태를 고려해야 한다. 따라서 적절한 계수 a와 b를 찾기 위한 모델의 입력에는 이러한 6가지 요소가 포함된다. 모델의 출력은 가격 입찰 함수의 계수여야 하므로 a와 b는 모델의 출력이다.Different users have different local computing capacity, data size, and willingness to pay. Additionally, the number of CPU cycles required to calculate one bit of data and the execution latency requirements depend on the application used by each user. Therefore, users need these five types of information to make offload decisions. Since the state of server resources changes each time a user attempts to offload, the state of server resources must also be taken into account when determining the price bidding function. Therefore, the inputs of the model to find the appropriate coefficients a and b include these six elements. The outputs of the model must be the coefficients of the price bidding function, so a and b are the outputs of the model.

데이터에 특출한 사용자가 있을 수 있으며, 이러한 특출한 사용자는 무조건 오프로드할 필요가 있을 수도 있다. 서버의 목적은 수익을 극대화하기 위한 것이기 때문에, 이 특별하게 민감한 학습은 일반 사용자들에게 최적의 학습에서 벗어나는 결과를 초래할 수 있다. 따라서 특이치에 민감하지 않은 옵티마이저를 사용해야 한다. 아담 옵티마이저는 과거의 정보뿐만 아니라 현재의 정보를 학습하기 위해 사용하기 때문에 특이치에 덜 민감하다. 어떤 실시예들에서 아담 옵티마이저는 학습율 0.001로, L1 손실이 손실 함수에 사용된다.The data may have exceptional users, and these exceptional users may need to be offloaded unconditionally. Since the purpose of the server is to maximize revenue, this specially sensitive learning can result in less than optimal learning for average users. Therefore, an optimizer that is not sensitive to outliers should be used. The Adam optimizer is less sensitive to outliers because it uses past information as well as current information to learn. In some embodiments the Adam optimizer has a learning rate of 0.001 and the L1 loss is used for the loss function.

일반적으로, 서버는 커버리지의 히스토리를 오프로드하는 것에 대한 정보를 가지고 있다. 즉, 서버는 과거 정보에 기초하여 커버리지 내 입력의 분포를 알고 있다. 그런 다음, 서버는 훈련을 위한 데이터를 생성하고 적절한 a와 b를 찾기 위해 철저한 검색을 수행할 수 있다. 이 태스크에서는 5만 명의 가상 사용자가 생성되어 데이터 세트를 만들고, 이에 상응하는 라벨을 만들기 위한 철저한 검색을 실시한다.Generally, the server has information about offloading its history of coverage. That is, the server knows the distribution of inputs within coverage based on past information. The server can then generate data for training and perform an exhaustive search to find suitable a and b. In this task, 50,000 virtual users are created to create a data set, and an exhaustive search is conducted to create corresponding labels.

훈련 후 서버가 새로운 오프로드 요청을 받았을 때 가격 입찰 함수를 결정하는 전반적인 프로세스는 도 6에 도시된 바와 같은 알고리즘에 제시된다. 사용자가 오프로드하고자 할 때, 사용자는 사용자 및 애플리케이션 정보를 포함한 오프로드 요청을 서버로 전송한다. 서버는 그 정보를 받아 서버 상태의 훈련된 모델의 입력으로 사용할 것이다. 마지막으로, 훈련된 가격 입찰 함수 결정 모델은 가격 입찰 함수의 계수를 반환한다.The overall process of determining the price bidding function when a server receives a new offload request after training is presented in an algorithm as shown in FIG. 6 . When a user wants to offload, the user sends an offload request including user and application information to the server. The server will receive that information and use it as input to a trained model of the server state. Finally, the trained price-bid function decision model returns the coefficients of the price-bid function.

도 7은 다양한 실시예들에 따른 시스템 모델의 컴퓨터 시스템 및 전자 장치를 도시하는 도면이다. 7 is a diagram illustrating a computer system and an electronic device of a system model according to various embodiments.

도 7을 참조하면, 시스템 모델은 컴퓨터 시스템(710) 및 전자 장치(720)를 포함할 수 있다. 컴퓨터 시스템(710)은 전술된 서버를 포함하고, 전자 장치(720)는 전술된 사용자를 지칭하며 다양한 유형의 IoT 단말을 포함할 수 있다. Referring to FIG. 7 , the system model may include a computer system 710 and an electronic device 720 . The computer system 710 includes the aforementioned server, and the electronic device 720 refers to the aforementioned user and may include various types of IoT terminals.

컴퓨터 시스템(710)은 통신 모듈(711), 메모리(715) 및 프로세서(717)를 포함할 수 있다. 어떤 실시예들에서, 컴퓨터 시스템(710)의 구성 요소들 중 적어도 어느 하나가 생략될 수 있으며, 적어도 하나의 다른 구성 요소가 추가될 수 있다. 어떤 실시예들에서, 컴퓨터 시스템(710)의 구성 요소들 중 적어도 어느 두 개가 하나의 통합된 회로로 구현될 수 있다.The computer system 710 may include a communication module 711 , a memory 715 and a processor 717 . In some embodiments, at least one of the components of computer system 710 may be omitted and at least one other component may be added. In some embodiments, at least any two of the components of computer system 710 may be implemented as a single integrated circuit.

통신 모듈(711)은 컴퓨터 시스템(710)에서 외부 장치와 통신을 수행할 수 있다. 통신 모듈(711)은 컴퓨터 시스템(710)과 외부 장치 간 통신 채널을 수립하고, 통신 채널을 통해 외부 장치와 통신을 수행할 수 있다. 통신 모듈(711)은 유선 통신 모듈 또는 무선 통신 모듈 중 적어도 하나를 포함할 수 있다. 유선 통신 모듈은 외부 장치와 유선으로 연결되어, 유선으로 통신할 수 있다. 무선 통신 모듈은 근거리 통신 모듈 또는 원거리 통신 모듈 중 적어도 어느 하나를 포함할 수 있다. 근거리 통신 모듈은 외부 장치와 근거리 통신 방식으로 통신할 수 있다. 원거리 통신 모듈은 외부 장치와 원거리 통신 방식으로 통신할 수 있다. 여기서, 원거리 통신 모듈은 무선 네트워크를 통해 외부 장치와 통신할 수 있다. 이 때 외부 장치는 전자 장치(720)를 포함할 수 있다. The communication module 711 may communicate with an external device in the computer system 710 . The communication module 711 may establish a communication channel between the computer system 710 and an external device and perform communication with the external device through the communication channel. The communication module 711 may include at least one of a wired communication module and a wireless communication module. The wired communication module may be connected to an external device through wired communication. The wireless communication module may include at least one of a short-distance communication module and a long-distance communication module. The short-distance communication module may communicate with an external device in a short-range communication method. The remote communication module may communicate with an external device through a remote communication method. Here, the remote communication module may communicate with an external device through a wireless network. In this case, the external device may include the electronic device 720 .

메모리(715)는 컴퓨터 시스템(710)의 적어도 하나의 구성 요소에 의해 사용되는 다양한 데이터를 저장할 수 있다. 예를 들면, 메모리(715)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 어느 하나를 포함할 수 있다. 데이터는 적어도 하나의 프로그램 및 이와 관련된 입력 데이터 또는 출력 데이터를 포함할 수 있다. 프로그램은 메모리(715)에 적어도 하나의 명령을 포함하는 소프트웨어로서 저장될 수 있다. The memory 715 may store various data used by at least one component of the computer system 710 . For example, the memory 715 may include at least one of volatile memory and non-volatile memory. The data may include at least one program and related input data or output data. The program may be stored as software including at least one instruction in memory 715 .

프로세서(717)는 메모리(715)의 프로그램을 실행하여, 컴퓨터 시스템(710)의 적어도 하나의 구성 요소를 제어할 수 있다. 이를 통해, 프로세서(717)는 데이터 처리 또는 연산을 수행할 수 있다. 이 때 프로세서(717)는 메모리(715)에 저장된 명령을 실행할 수 있다. 그리고, 프로세서(717)는 CPU를 포함할 수 있다. CPU는 전자 장치(720)로부터 오프로드되는 태스크를 처리할 수 있다. The processor 717 may control at least one component of the computer system 710 by executing a program in the memory 715 . Through this, the processor 717 may perform data processing or calculation. At this time, the processor 717 may execute instructions stored in the memory 715. Also, the processor 717 may include a CPU. The CPU may process a task offloaded from the electronic device 720 .

프로세서(717)는, 오프로드하고자 하는 전자 장치(720)를 위해 컴퓨터 시스템(710)의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 결정하고, 이를 전자 장치(720)에 제안할 수 있다. 그리고, 프로세서(717)는 전자 장치(720)로부터 전자 장치(720)에서 사용하기 위한 컴퓨터 시스템(710)의 CPU 처리 시간을 수신할 수 있다. 이를 통해, 프로세서(717)는 CPU 처리 시간 동안, CPU를 통해 전자 장치(720)로부터 오프로드되는 태스크를 처리하도록 구성될 수 있다.The processor 717 may determine a price bidding function for setting a unit price per second for CPU usage of the computer system 710 for the electronic device 720 to be offloaded, and propose it to the electronic device 720. there is. Also, the processor 717 may receive CPU processing time of the computer system 710 for use in the electronic device 720 from the electronic device 720 . Through this, the processor 717 may be configured to process a task offloaded from the electronic device 720 through the CPU during CPU processing time.

전자 장치(720)는 통신 모듈(721), 인터페이스 모듈(723), 메모리(725) 및 프로세서(727)를 포함할 수 있다. 어떤 실시예들에서, 전자 장치(720)의 구성 요소들 중 적어도 어느 하나가 생략될 수 있으며, 적어도 하나의 다른 구성 요소가 추가될 수 있다. 어떤 실시예들에서, 전자 장치(720)의 구성 요소들 중 적어도 어느 두 개가 하나의 통합된 회로로 구현될 수 있다.The electronic device 720 may include a communication module 721 , an interface module 723 , a memory 725 and a processor 727 . In some embodiments, at least one of the components of the electronic device 720 may be omitted, and at least one other component may be added. In some embodiments, at least any two of the components of the electronic device 720 may be implemented as an integrated circuit.

통신 모듈(721)은 전자 장치(720)에서 외부 장치와 통신을 수행할 수 있다. 통신 모듈(721)은 전자 장치(720)와 외부 장치 간 통신 채널을 수립하고, 통신 채널을 통해 외부 장치와 통신을 수행할 수 있다. 통신 모듈(721)은 유선 통신 모듈 또는 무선 통신 모듈 중 적어도 하나를 포함할 수 있다. 유선 통신 모듈은 외부 장치와 유선으로 연결되어, 유선으로 통신할 수 있다. 무선 통신 모듈은 근거리 통신 모듈 또는 원거리 통신 모듈 중 적어도 어느 하나를 포함할 수 있다. 근거리 통신 모듈은 외부 장치와 근거리 통신 방식으로 통신할 수 있다. 원거리 통신 모듈은 외부 장치와 원거리 통신 방식으로 통신할 수 있다. 여기서, 원거리 통신 모듈은 무선 네트워크를 통해 외부 장치와 통신할 수 있다. 이 때 외부 장치는 컴퓨터 시스템(710)을 포함할 수 있다.The communication module 721 may perform communication with an external device in the electronic device 720 . The communication module 721 may establish a communication channel between the electronic device 720 and an external device and perform communication with the external device through the communication channel. The communication module 721 may include at least one of a wired communication module and a wireless communication module. The wired communication module may be connected to an external device through wired communication. The wireless communication module may include at least one of a short-distance communication module and a long-distance communication module. The short-distance communication module may communicate with an external device in a short-range communication method. The remote communication module may communicate with an external device through a remote communication method. Here, the remote communication module may communicate with an external device through a wireless network. At this time, the external device may include the computer system 710.

인터페이스 모듈(723)은 전자 장치(720)의 사용자와 인터페이스를 수행할 수 있다. 인터페이스 모듈(723)은 입력 모듈 또는 출력 모듈 중 적어도 하나를 포함할 수 있다. 입력 모듈은 전자 장치(720)의 적어도 하나의 구성 요소에 사용될 신호를 입력할 수 있다. 입력 모듈은, 사용자가 전자 장치(720)에 직접적으로 신호를 입력하도록 구성되는 입력 장치, 주변 환경을 감지하여 신호를 발생하도록 구성되는 센서 장치, 또는 영상을 촬영하여, 영상 데이터를 생성하도록 구성되는 카메라 모듈 중 적어도 어느 하나를 포함할 수 있다. 출력 모듈은 정보를 시각적으로 표시하기 위한 표시 모듈 또는 정보를 오디오 신호로 출력하기 위한 오디오 모듈 중 적어도 하나를 포함할 수 있다. The interface module 723 may interface with a user of the electronic device 720 . The interface module 723 may include at least one of an input module and an output module. The input module may input a signal to be used in at least one component of the electronic device 720 . The input module includes an input device configured to allow a user to directly input a signal into the electronic device 720, a sensor device configured to sense a surrounding environment and generate a signal, or an image captured to generate image data. It may include at least one of the camera modules. The output module may include at least one of a display module for visually displaying information and an audio module for outputting information as an audio signal.

메모리(725)는 전자 장치(720)의 적어도 하나의 구성 요소에 의해 사용되는 다양한 데이터를 저장할 수 있다. 예를 들면, 메모리(725)는 휘발성 메모리 또는 비휘발성 메모리 중 적어도 어느 하나를 포함할 수 있다. 데이터는 적어도 하나의 프로그램 및 이와 관련된 입력 데이터 또는 출력 데이터를 포함할 수 있다. 프로그램은 메모리(725)에 적어도 하나의 명령을 포함하는 소프트웨어로서 저장될 수 있다. The memory 725 may store various data used by at least one component of the electronic device 720 . For example, the memory 725 may include at least one of volatile memory and non-volatile memory. The data may include at least one program and related input data or output data. The program may be stored as software including at least one instruction in memory 725 .

프로세서(727)는 메모리(725)의 프로그램을 실행하여, 전자 장치(720)의 적어도 하나의 구성 요소를 제어할 수 있다. 이를 통해, 프로세서(727)는 데이터 처리 또는 연산을 수행할 수 있다. 이 때 프로세서(727)는 메모리(725)에 저장된 명령을 실행할 수 있다. 그리고, 프로세서(727)는 CPU를 포함할 수 있다. The processor 727 may control at least one component of the electronic device 720 by executing a program in the memory 725 . Through this, the processor 727 may perform data processing or calculation. At this time, the processor 727 may execute instructions stored in the memory 725. Also, the processor 727 may include a CPU.

프로세서(727)는, 전자 장치(720)에서 사용하기 위한 컴퓨터 시스템(710)으로부터 컴퓨터 시스템(710)의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 수신할 수 있다. 그리고, 프로세서(727)는 가격 입찰 함수를 기반으로, 전자 장치(720)에서 사용하기 위한 컴퓨터 시스템(710)의 CPU 처리 시간을 결정하고, 이를 컴퓨터 시스템(710)에 전송할 수 있다. 프로세서(727), 전자 장치에서 구동 중인 애플리케이션에 대한 지연 시간 조건 및 컴퓨터 시스템(710)의 CPU 사용에 따른 지불을 기반으로, CPU 처리 시간을 결정할 수 있다. 이를 통해, 프로세서(727)는 CPU 처리 시간 동안, 컴퓨터 시스템(710)에 태스크를 오프로드할 수 있다. The processor 727 may receive a price bid function for setting a unit price per second for CPU usage of the computer system 710 from the computer system 710 for use in the electronic device 720 . Also, the processor 727 may determine a CPU processing time of the computer system 710 to be used in the electronic device 720 based on the price bidding function, and transmit the determined CPU processing time to the computer system 710 . The CPU processing time may be determined based on the processor 727, the delay time condition for the application running on the electronic device, and the payment according to the CPU use of the computer system 710. Through this, the processor 727 may offload a task to the computer system 710 during CPU processing time.

다양한 실시예들에 따르면, 전자 장치의 사용자는, 초당 단가 및 CPU 처리 시간의 곱으로 결정되는 지불을 컴퓨터 시스템에 대해 지급할 수 있다. According to various embodiments, a user of the electronic device may pay the computer system a payment that is determined as the product of a unit price per second and a CPU processing time.

도 8은 다양한 실시예들에 따른 컴퓨터 시스템(710)의 방법을 도시하는 도면이다. 도 8은, 도 2에 도시된 바와 같은 서버의 동작을 나타낼 수 있다. 8 is a diagram illustrating a method of a computer system 710 in accordance with various embodiments. 8 may represent an operation of a server as shown in FIG. 2 .

도 8을 참조하면, 컴퓨터 시스템(710)은 810 단계에서 오프로드하고자 하는 전자 장치)720)를 검출할 수 있다. 이 때 프로세서(717)는 통신 모듈(711)을 통해, 전자 장치(720)에 대한 정보(도 6의 US) 및 전자 장치(720)에서 구동 중인 애플리케이션에 대한 정보(도 6의 AS)의 수신하고, 이를 기반으로 전자 장치(720)를 검출할 수 있다. 전자 장치(720)에 대한 정보(도 6의 US)는 전자 장치(720)의 로컬 CPU 용량(Fl) 및 전자 장치에서 처리하기 위한 데이터의 양(d)을 포함할 수 있다. 애플리케이션에 대한 정보(도 6의 AS)는 애플리케이션에 대한 지연 시간 조건(treq) 및 애플리케이션에 대한 워크로드(h) 조건을 포함할 수 있다. Referring to FIG. 8 , the computer system 710 may detect an electronic device 720 to be offloaded in step 810 . At this time, the processor 717 receives information about the electronic device 720 (US in FIG. 6) and information about an application running in the electronic device 720 (AS in FIG. 6) through the communication module 711. and the electronic device 720 can be detected based on this. Information about the electronic device 720 (US in FIG. 6 ) may include a local CPU capacity F l of the electronic device 720 and an amount of data (d) to be processed by the electronic device. Information on the application (AS of FIG. 6 ) may include a latency condition (t req ) for the application and a workload (h) condition for the application.

컴퓨터 시스템(710)은 820 단계에서 전자 장치(720)를 위해 가격 입찰 함수를 제안할 수 있다. 프로세서(717)는 전자 장치에 대한 정보(도 6의 US), 애플리케이션에 대한 정보(도 6의 AS) 및 컴퓨터 시스템(710)에 대한 정보(도6의 SS)를 기반으로, 가격 입찰 함수를 결정할 수 있다. 그리고, 프로세서(717)는 통신 모듈(711)을 통해, 전자 장치(720)에 가격 입찰 함수를 전송할 수 있다. Computer system 710 may propose a price bid function for electronic device 720 in step 820 . The processor 717 calculates a price bid function based on information about the electronic device (US in FIG. 6), information about the application (AS in FIG. 6), and information about the computer system 710 (SS in FIG. 6). can decide Also, the processor 717 may transmit the price bidding function to the electronic device 720 through the communication module 711 .

컴퓨터 시스템(710)은 830 단계에서 전자 장치(710)로부터 CPU 처리 시간을 수신할 수 있다. 프로세서(717)는 통신 모듈(711)을 통해, 전자 장치(710)로부터 CPU 처리 시간을 수신할 수 있다. 이에 응답하여, 컴퓨터 시스템(710)은 840 단계에서 전자 장치(720)에 자원들을 할당할 수 있다. 프로세서(717)는 CPU 처리 시간을 기반으로, 전자 장치(720)에 대해 자원들을 할당할 수 있다. The computer system 710 may receive the CPU processing time from the electronic device 710 in step 830 . The processor 717 may receive CPU processing time from the electronic device 710 through the communication module 711 . In response, the computer system 710 may allocate resources to the electronic device 720 in step 840 . The processor 717 may allocate resources to the electronic device 720 based on CPU processing time.

컴퓨터 시스템(710)은 850 단계에서 전자 장치(720)로부터 오프로드되는 태스크를 처리할 수 있다. 통신 모듈(711)을 통해, 전자 장치(720)로부터 자원들을 통해 태스크가 오프로드됨에 따라, 프로세서(717)는 CPU를 통해, 전자 장치(720)의 태스크를 처리할 수 있다. 이 때 프로세서(717)는 CPU 처리 시간 동안, 태스크를 처리할 수 있다. 컴퓨터 시스템(710)은 860 단계에서 전자 장치(720)에 처리 결과를 전송할 수 있다. CPU 처리 시간이 종료되면, 프로세서(717)는 태스크에 대한 처리 결과를 확인할 수 있다. 그리고, 프로세서(717)는 통신 모듈(711)을 통해, 전자 장치(720)에 처리 결과를 전송할 수 있다.The computer system 710 may process the offloaded task from the electronic device 720 in step 850 . As the task is offloaded through resources from the electronic device 720 through the communication module 711 , the processor 717 may process the task of the electronic device 720 through the CPU. At this time, the processor 717 may process the task during CPU processing time. The computer system 710 may transmit the processing result to the electronic device 720 in step 860 . When the CPU processing time ends, the processor 717 may check the processing result for the task. And, the processor 717 may transmit the processing result to the electronic device 720 through the communication module 711 .

도 9는 다양한 실시예들에 따른 전자 장치(720)의 방법을 도시하는 도면이다.9 is a diagram illustrating a method of an electronic device 720 according to various embodiments.

도 9을 참조하면, 전자 장치(720)는 910 단계에서 컴퓨터 시스템(710)에 오프로드를 요청할 수 있다. 이 때 프로세서(727)는 전자 장치(720)에 대한 정보(도 6의 US) 및 전자 장치(720)에서 구동 중인 애플리케이션에 대한 정보(도 6의 AS)를 확인할 수 있다. 그리고, 프로 세서(727)는 통신 모듈(711)을 통해, 전자 장치(720)에 대한 정보(도 6의 US) 및 전자 장치(720)에서 구동 중인 애플리케이션에 대한 정보(도 6의 AS)를 전송하면서, 컴퓨터 시스템(710)에 오프로드를 요청할 수 있다. 전자 장치(720)에 대한 정보(도 6의 US)는 전자 장치(720)의 로컬 CPU 용량(Fl) 및 전자 장치에서 처리하기 위한 데이터의 양(d)을 포함할 수 있다. 애플리케이션에 대한 정보(도 6의 AS)는 애플리케이션에 대한 지연 시간 조건(treq) 및 애플리케이션에 대한 워크로드(h) 조건을 포함할 수 있다.Referring to FIG. 9 , the electronic device 720 may request an offload from the computer system 710 in step 910 . At this time, the processor 727 may check information about the electronic device 720 (US in FIG. 6 ) and information about an application running in the electronic device 720 (AS in FIG. 6 ). And, the processor 727 transmits information about the electronic device 720 (US in FIG. 6) and information about an application running in the electronic device 720 (AS in FIG. 6) through the communication module 711. While transmitting, an offload request may be made to the computer system 710 . Information about the electronic device 720 (US in FIG. 6 ) may include a local CPU capacity F l of the electronic device 720 and an amount of data (d) to be processed by the electronic device. Information on the application (AS of FIG. 6 ) may include a latency condition (t req ) for the application and a workload (h) condition for the application.

전자 장치(720)는 920 단계에서 컴퓨터 시스템(710)으로부터 가격 입찰 함수를 수신할 수 있다. 프로세서(727)는 통신 모듈(721)을 통해, 컴퓨터 시스템(710)으로부터 가격 입찰 함수를 수신할 수 있다. 가격 입찰 함수는 컴퓨터 시스템(710)에 의해, 전자 장치에 대한 정보(도 6의 US), 애플리케이션에 대한 정보(도 6의 AS) 및 컴퓨터 시스템(710)에 대한 정보(도6의 SS)를 기반으로, 결정될 수 있다. The electronic device 720 may receive a price bid function from the computer system 710 in step 920 . Processor 727 may receive a price bid function from computer system 710 via communication module 721 . The price bid function uses computer system 710 to obtain information about the electronic device (US in FIG. 6), information about the application (AS in FIG. 6), and information about computer system 710 (SS in FIG. 6). Based on this, it can be determined.

전자 장치(720)는 930 단계에서 컴퓨터 시스템(710)에 CPU 처리 시간을 전송할 수 있다. 프로세서(727)는 전자 장치(720)에서 구동 중인 애플리케이션에 대한 지연 시간 조건 및 컴퓨터 시스템(710)의 CPU 사용에 따른 지불을 기반으로, CPU 처리 시간을 결정할 수 있다. 그리고, 프로세서(727)는 통신 모듈(721)을 통해, 컴퓨터 시스템(710)에 CPU 처리 시간을 전송할 수 있다.The electronic device 720 may transmit the CPU processing time to the computer system 710 in step 930 . The processor 727 may determine the CPU processing time based on the delay time condition for the application running in the electronic device 720 and the payment according to the CPU use of the computer system 710 . Also, the processor 727 may transmit the CPU processing time to the computer system 710 through the communication module 721 .

전자 장치(720)는 940 단계에서 컴퓨터 시스템(710)으로부터 할당되는 자원들을 검출될 수 있다. 프로세서(727)는 통신 모듈(721)을 통해, 컴퓨터 시스템(710)으로부터 할당되는 자원들을 검출될 수 있다. 이 때 컴퓨터 시스템(710)은 CPU 처리 시간을 기반으로, 전자 장치(720)에 대해 자원들을 할당할 수 있다. The electronic device 720 may detect resources allocated from the computer system 710 in step 940 . The processor 727 may detect resources allocated from the computer system 710 through the communication module 721 . At this time, the computer system 710 may allocate resources to the electronic device 720 based on the CPU processing time.

전자 장치(720)는 950 단계에서 컴퓨터 시스템(710)에 태스크를 오프로드할 수 있다. 프로세서(727)는 통신 모듈(721)을 통해, 컴퓨터 시스템(710)에 태스크를 오프로드할 수 있다. 이 때 프로세서(727)는 CPU 처리 시간 동안, 태스크를 오프로드할 수 있다.The electronic device 720 may offload the task to the computer system 710 in step 950 . Processor 727 may offload tasks to computer system 710 via communication module 721 . At this time, the processor 727 may offload the task during CPU processing time.

전자 장치(720)는 960 단계에서 컴퓨터 시스템(710)으로부터 처리 결과를 수신할 수 있다. CPU 처리 시간이 종료된 후에, 프로세서(727)는 통신 모듈(721)을 통해, 컴퓨터 시스템(710)으로부터 태스크에 대한 처리 결과를 확인할 수 있다. The electronic device 720 may receive a processing result from the computer system 710 in step 960 . After the CPU processing time ends, the processor 727 may check the processing result of the task from the computer system 710 through the communication module 721 .

다양한 실시예들에 따른 컴퓨터 시스템의 방법은, 오프로드하고자 하는 전자 장치를 검출하는 단계, 전자 장치를 위해 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하는 단계, 전자 장치로부터 전자 장치에서 사용하기 위한 컴퓨터 시스템의 CPU 처리 시간을 수신하는 단계, 및 CPU 처리 시간 동안, 전자 장치로부터 오프로드되는 태스크를 처리하는 단계를 포함할 수 있다. A method of a computer system according to various embodiments includes detecting an electronic device to be offloaded, proposing a price bidding function to set a unit price per second for CPU usage of the computer system for the electronic device, and including the electronic device. Receiving CPU processing time of the computer system for use in the electronic device from the computer system, and processing tasks offloaded from the electronic device during the CPU processing time.

다양한 실시예들에 따르면, 전자 장치를 검출하는 단계는, 전자 장치에 대한 정보 및 전자 장치에서 구동 중인 애플리케이션에 대한 정보의 수신을 기반으로, 전자 장치를 검출할 수 있다. According to various embodiments, the detecting of the electronic device may detect the electronic device based on reception of information about the electronic device and information about an application running in the electronic device.

다양한 실시예들에 따르면, 전자 장치에 대한 정보는 전자 장치의 로컬 CPU 용량 및 전자 장치에서 처리하기 위한 데이터의 양을 포함할 수 있다. According to various embodiments, the information on the electronic device may include a local CPU capacity of the electronic device and an amount of data to be processed by the electronic device.

다양한 실시예들에 따르면, 애플리케이션에 대한 정보는 애플리케이션에 대한 지연 시간 조건 및 애플리케이션에 대한 워크로드 조건을 포함할 수 있다. According to various embodiments, the information about the application may include a latency condition of the application and a workload condition of the application.

다양한 실시예들에 따르면, 가격 입찰 함수를 제안하는 단계는, 전자 장치에 대한 정보, 애플리케이션에 대한 정보 및 컴퓨터 시스템에 대한 정보를 기반으로, 가격 입찰 함수를 결정할 수 있다. According to various embodiments, the step of proposing a price bid function may determine a price bid function based on information about an electronic device, information about an application, and information about a computer system.

다양한 실시예들에 따르면, 전자 장치는, 전자 장치에서 구동 중인 애플리케이션에 대한 지연 시간 조건 및 컴퓨터 시스템의 CPU 사용에 따른 지불을 기반으로, CPU 처리 시간을 결정할 수 있다. According to various embodiments, the electronic device may determine the CPU processing time based on a delay time condition for an application running in the electronic device and payment according to CPU use of a computer system.

다양한 실시예들에 따르면, 전자 장치의 사용자는, 초당 단가 및 CPU 처리 시간의 곱으로 결정되는 지불을 컴퓨터 시스템에 대해 지급할 수 있다. According to various embodiments, a user of the electronic device may pay the computer system a payment that is determined as the product of a unit price per second and a CPU processing time.

다양한 실시예들에 따르면, 태스크를 처리하는 단계는, CPU 처리 시간을 기반으로, 전자 장치에 대해 자원들을 할당하는 단계, 및 자원들을 통해 태스크가 오프로드됨에 따라, 태스크를 처리하는 단계를 포함할 수 있다. According to various embodiments, processing the task may include allocating resources to the electronic device based on CPU processing time, and processing the task as the task is offloaded through the resources. can

다양한 실시예들에 따른 컴퓨터 시스템은, 메모리, 및 메모리와 연결되고, 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함할 수 있다. A computer system according to various embodiments may include a memory and a processor connected to the memory and configured to execute at least one instruction stored in the memory.

다양한 실시예들에 따르면, 프로세서는, 오프로드하고자 하는 전자 장치를 검출하고, 전자 장치를 위해 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하고, 전자 장치로부터 전자 장치에서 사용하기 위한 컴퓨터 시스템의 CPU 처리 시간을 수신하고, CPU 처리 시간 동안, 전자 장치로부터 오프로드되는 태스크를 처리하도록 구성될 수 있다. According to various embodiments, the processor detects the electronic device it wishes to offload, proposes a price bid function to set a unit price per second for CPU usage of the computer system for the electronic device, and from the electronic device to the electronic device. It may be configured to receive CPU processing time of the computer system for use and process tasks offloaded from the electronic device during the CPU processing time.

다양한 실시예들에 따르면, 프로세서는, 전자 장치에 대한 정보 및 전자 장치에서 구동 중인 애플리케이션에 대한 정보의 수신을 기반으로, 전자 장치를 검출하도록 구성될 수 있다. According to various embodiments, the processor may be configured to detect the electronic device based on receiving information about the electronic device and information about an application running in the electronic device.

다양한 실시예들에 따르면, 전자 장치에 대한 정보는 전자 장치의 로컬 CPU 용량 및 전자 장치에서 처리하기 위한 데이터의 양을 포함할 수 있다. According to various embodiments, the information on the electronic device may include a local CPU capacity of the electronic device and an amount of data to be processed by the electronic device.

다양한 실시예들에 따르면, 애플리케이션에 대한 정보는 애플리케이션에 대한 지연 시간 조건 및 애플리케이션에 대한 워크로드 조건을 포함할 수 있다. According to various embodiments, the information about the application may include a latency condition of the application and a workload condition of the application.

다양한 실시예들에 따르면, 프로세서는, 전자 장치에 대한 정보, 애플리케이션에 대한 정보 및 컴퓨터 시스템에 대한 정보를 기반으로, 가격 입찰 함수를 결정하도록 구성될 수 있다. According to various embodiments, the processor may be configured to determine a price bidding function based on information about the electronic device, information about the application, and information about the computer system.

다양한 실시예들에 따르면, 전자 장치는, 전자 장치에서 구동 중인 애플리케이션에 대한 지연 시간 조건 및 컴퓨터 시스템의 CPU 사용에 따른 지불을 기반으로, CPU 처리 시간을 결정할 수 있다. According to various embodiments, the electronic device may determine the CPU processing time based on a delay time condition for an application running in the electronic device and payment according to CPU use of a computer system.

다양한 실시예들에 따르면, 전자 장치의 사용자는, 초당 단가 및 CPU 처리 시간의 곱으로 결정되는 지불을 컴퓨터 시스템에 대해 지급할 수 있다. According to various embodiments, a user of the electronic device may pay the computer system a payment that is determined as the product of a unit price per second and a CPU processing time.

다양한 실시예들에 따르면, 프로세서는, CPU 처리 시간을 기반으로, 전자 장치에 대해 자원들을 할당하고, 자원들을 통해 태스크가 오프로드됨에 따라, 태스크를 처리하도록 구성될 수 있다. According to various embodiments, the processor may be configured to allocate resources to the electronic device based on CPU processing time and process the task as the task is offloaded through the resources.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, devices and components described in the embodiments include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), and a programmable PLU (programmable logic unit). logic unit), microprocessor, or any other device capable of executing and responding to instructions. The processing device may run an operating system (OS) and one or more software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. The software and/or data may be embodied in any tangible machine, component, physical device, computer storage medium or device to be interpreted by or to provide instructions or data to a processing device. there is. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.

다양한 실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이 때 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 그리고, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.Methods according to various embodiments may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium. In this case, the medium may continuously store a program executable by a computer or temporarily store the program for execution or download. Also, the medium may be a single or various types of recording means or storage means in the form of a combination of several pieces of hardware. It is not limited to a medium directly connected to a certain computer system, and may be distributed on a network. Examples of the medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROM and DVD, magneto-optical media such as floptical disks, and ROM, RAM, flash memory, etc. configured to store program instructions. In addition, examples of other media include recording media or storage media managed by an app store that distributes applications, a site that supplies or distributes various other software, and a server.

본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성 요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 어떤(예: 제 1) 구성 요소가 다른(예: 제 2) 구성 요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제 3 구성 요소)를 통하여 연결될 수 있다.Various embodiments of this document and terms used therein are not intended to limit the technology described in this document to a specific embodiment, and should be understood to include various modifications, equivalents, and/or substitutes of the embodiment. In connection with the description of the drawings, like reference numerals may be used for like elements. Singular expressions may include plural expressions unless the context clearly dictates otherwise. In this document, expressions such as "A or B", "at least one of A and/or B", "A, B or C" or "at least one of A, B and/or C" refer to all of the items listed together. Possible combinations may be included. Expressions such as "first," "second," "first," or "second" may modify the elements in any order or importance, and are used only to distinguish one element from another. The components are not limited. When a (e.g., first) element is referred to as being "(functionally or communicatively) connected" or "connected" to another (e.g., second) element, it is referred to as being "connected" to the other (e.g., second) element. It may be directly connected to the component or connected through another component (eg, a third component).

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다. The term "module" used in this document includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be an integral part or a minimum unit or part thereof that performs one or more functions. For example, the module may be composed of an application-specific integrated circuit (ASIC).

다양한 실시예들에 따르면, 기술한 구성 요소들의 각각의 구성 요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성 요소들 중 하나 이상의 구성 요소들 또는 단계들이 생략되거나, 또는 하나 이상의 다른 구성 요소들 또는 단계들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성 요소들(예: 모듈 또는 프로그램)은 하나의 구성 요소로 통합될 수 있다. 이런 경우, 통합된 구성 요소는 복수의 구성 요소들 각각의 구성 요소의 하나 이상의 기능들을 통합 이전에 복수의 구성 요소들 중 해당 구성 요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 단계들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 단계들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 단계들이 추가될 수 있다. According to various embodiments, each component (eg, module or program) of the described components may include a singular object or a plurality of entities. According to various embodiments, one or more components or steps among the aforementioned components may be omitted, or one or more other components or steps may be added. Alternatively or additionally, a plurality of components (eg modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to integration. According to various embodiments, steps performed by a module, program, or other component are executed sequentially, in parallel, iteratively, or heuristically, or one or more of the steps are executed in a different order, omitted, or , or one or more other steps may be added.

Claims (15)

컴퓨터 시스템의 방법에 있어서,
오프로드하고자 하는 전자 장치를 검출하는 단계;
상기 전자 장치를 위해 상기 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하는 단계;
상기 전자 장치로부터 상기 전자 장치에서 사용하기 위한 상기 컴퓨터 시스템의 CPU 처리 시간을 수신하는 단계; 및
상기 CPU 처리 시간 동안, 상기 전자 장치로부터 오프로드되는 태스크를 처리하는 단계
를 포함하고,
상기 전자 장치를 검출하는 단계는,
상기 전자 장치에 대한 정보 및 상기 전자 장치에서 구동 중인 애플리케이션에 대한 정보의 수신을 기반으로, 상기 전자 장치를 검출하고,
상기 전자 장치에 대한 정보는 상기 전자 장치의 로컬 CPU 용량 및 상기 전자 장치에서 처리하기 위한 데이터의 양을 포함하고,
상기 애플리케이션에 대한 정보는 상기 애플리케이션에 대한 지연 시간 조건 및 상기 애플리케이션에 대한 워크로드 조건을 포함하고,
상기 가격 입찰 함수를 제안하는 단계는,
상기 전자 장치에 대한 정보, 상기 애플리케이션에 대한 정보 및 상기 컴퓨터 시스템에 대한 정보를 기반으로, 상기 가격 입찰 함수를 결정하고,
상기 전자 장치는,
상기 애플리케이션에 대한 지연 시간 조건 및 상기 컴퓨터 시스템의 CPU 사용에 따른 지불을 기반으로, 상기 CPU 처리 시간을 결정하는,
방법.
In the method of the computer system,
detecting an electronic device to be offloaded;
proposing a price bidding function to set a unit price per second for CPU usage of the computer system for the electronic device;
receiving, from the electronic device, CPU processing time of the computer system for use in the electronic device; and
Processing a task offloaded from the electronic device during the CPU processing time.
including,
Detecting the electronic device,
Detecting the electronic device based on reception of information about the electronic device and information about an application running in the electronic device;
The information on the electronic device includes a local CPU capacity of the electronic device and an amount of data to be processed by the electronic device;
The information on the application includes a latency condition for the application and a workload condition for the application;
The step of proposing the price bidding function,
determine the price bidding function based on the information about the electronic device, the information about the application, and the information about the computer system;
The electronic device,
determining the CPU processing time based on a latency condition for the application and a payout according to CPU usage of the computer system;
method.
삭제delete 삭제delete 삭제delete 삭제delete 제 1 항에 있어서,
상기 전자 장치의 사용자는,
상기 초당 단가 및 상기 CPU 처리 시간의 곱으로 결정되는 지불을 상기 컴퓨터 시스템에 대해 지급하는,
방법.
According to claim 1,
The user of the electronic device,
Paying to the computer system a payment determined by the product of the unit price per second and the CPU processing time.
method.
제 1 항에 있어서,
상기 태스크를 처리하는 단계는,
상기 CPU 처리 시간을 기반으로, 상기 전자 장치에 대해 자원들을 할당하는 단계; 및
상기 자원들을 통해 상기 태스크가 오프로드됨에 따라, 상기 태스크를 처리하는 단계
를 포함하는,
방법.
According to claim 1,
The step of processing the task is,
allocating resources to the electronic device based on the CPU processing time; and
processing the task as the task is offloaded through the resources;
including,
method.
컴퓨터 시스템에 있어서,
메모리; 및
상기 메모리와 연결되고, 상기 메모리에 저장된 적어도 하나의 명령을 실행하도록 구성된 프로세서를 포함하고,
상기 프로세서는,
오프로드하고자 하는 전자 장치를 검출하고,
상기 전자 장치를 위해 상기 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하고,
상기 전자 장치로부터 상기 전자 장치에서 사용하기 위한 상기 컴퓨터 시스템의 CPU 처리 시간을 수신하고,
상기 CPU 처리 시간 동안, 상기 전자 장치로부터 오프로드되는 태스크를 처리하도록 구성되고,
상기 프로세서는,
상기 전자 장치에 대한 정보 및 상기 전자 장치에서 구동 중인 애플리케이션에 대한 정보의 수신을 기반으로, 상기 전자 장치를 검출하도록 구성되고,
상기 전자 장치에 대한 정보는 상기 전자 장치의 로컬 CPU 용량 및 상기 전자 장치에서 처리하기 위한 데이터의 양을 포함하고,
상기 애플리케이션에 대한 정보는 상기 애플리케이션에 대한 지연 시간 조건 및 상기 애플리케이션에 대한 워크로드 조건을 포함하고,
상기 프로세서는,
상기 전자 장치에 대한 정보, 상기 애플리케이션에 대한 정보 및 상기 컴퓨터 시스템에 대한 정보를 기반으로, 상기 가격 입찰 함수를 결정하도록 구성되고,
상기 전자 장치는,
상기 애플리케이션에 대한 지연 시간 조건 및 상기 컴퓨터 시스템의 CPU 사용에 따른 지불을 기반으로, 상기 CPU 처리 시간을 결정하는,
컴퓨터 시스템.
In a computer system,
Memory; and
a processor coupled with the memory and configured to execute at least one instruction stored in the memory;
the processor,
detect an electronic device to be offloaded;
Propose a price bidding function for setting a unit price per second for CPU usage of the computer system for the electronic device;
Receive from the electronic device CPU processing time of the computer system for use in the electronic device;
During the CPU processing time, configured to process a task offloaded from the electronic device,
the processor,
configured to detect the electronic device based on reception of information about the electronic device and information about an application running in the electronic device;
The information on the electronic device includes a local CPU capacity of the electronic device and an amount of data to be processed by the electronic device,
The information on the application includes a latency condition for the application and a workload condition for the application;
the processor,
determine the price bid function based on the information about the electronic device, the information about the application, and the information about the computer system;
The electronic device,
determining the CPU processing time based on a latency condition for the application and a payout according to the CPU usage of the computer system;
computer system.
삭제delete 삭제delete 삭제delete 삭제delete 제 8 항에 있어서,
상기 전자 장치의 사용자는,
상기 초당 단가 및 상기 CPU 처리 시간의 곱으로 결정되는 지불을 상기 컴퓨터 시스템에 대해 지급하는,
컴퓨터 시스템.
According to claim 8,
The user of the electronic device,
Paying to the computer system a payment determined by the product of the unit price per second and the CPU processing time.
computer system.
제 8 항에 있어서,
상기 프로세서는,
상기 CPU 처리 시간을 기반으로, 상기 전자 장치에 대해 자원들을 할당하고,
상기 자원들을 통해 상기 태스크가 오프로드됨에 따라, 상기 태스크를 처리하도록 구성되는,
컴퓨터 시스템.
According to claim 8,
the processor,
Allocating resources to the electronic device based on the CPU processing time;
configured to process the task as it is offloaded through the resources;
computer system.
비-일시적인 컴퓨터-판독 가능 저장 매체에 있어서,
오프로드하고자 하는 전자 장치를 검출하는 단계;
상기 전자 장치를 위해 컴퓨터 시스템의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 제안하는 단계;
상기 전자 장치로부터 상기 전자 장치에서 사용하기 위한 상기 컴퓨터 시스템의 CPU 처리 시간을 수신하는 단계; 및
상기 CPU 처리 시간 동안, 상기 전자 장치로부터 오프로드되는 태스크를 처리하는 단계
를 실행하기 위한 하나 이상의 프로그램들을 저장하고,
상기 전자 장치를 검출하는 단계는,
상기 전자 장치에 대한 정보 및 상기 전자 장치에서 구동 중인 애플리케이션에 대한 정보의 수신을 기반으로, 상기 전자 장치를 검출하고,
상기 전자 장치에 대한 정보는 상기 전자 장치의 로컬 CPU 용량 및 상기 전자 장치에서 처리하기 위한 데이터의 양을 포함하고,
상기 애플리케이션에 대한 정보는 상기 애플리케이션에 대한 지연 시간 조건 및 상기 애플리케이션에 대한 워크로드 조건을 포함하고,
상기 가격 입찰 함수를 제안하는 단계는,
상기 전자 장치에 대한 정보, 상기 애플리케이션에 대한 정보 및 상기 컴퓨터 시스템에 대한 정보를 기반으로, 상기 가격 입찰 함수를 결정하고,
상기 전자 장치는,
상기 애플리케이션에 대한 지연 시간 조건 및 상기 컴퓨터 시스템의 CPU 사용에 따른 지불을 기반으로, 상기 CPU 처리 시간을 결정하는,
컴퓨터-판독 가능 저장 매체.
A non-transitory computer-readable storage medium comprising:
detecting an electronic device to be offloaded;
proposing a price bidding function to set a unit price per second for CPU usage of a computer system for the electronic device;
receiving, from the electronic device, CPU processing time of the computer system for use in the electronic device; and
Processing a task offloaded from the electronic device during the CPU processing time.
Store one or more programs for executing,
Detecting the electronic device,
Detecting the electronic device based on reception of information about the electronic device and information about an application running in the electronic device;
The information on the electronic device includes a local CPU capacity of the electronic device and an amount of data to be processed by the electronic device;
The information on the application includes a latency condition for the application and a workload condition for the application;
The step of proposing the price bidding function,
determine the price bidding function based on the information about the electronic device, the information about the application, and the information about the computer system;
The electronic device,
determining the CPU processing time based on a latency condition for the application and a payout according to CPU usage of the computer system;
A computer-readable storage medium.
KR1020200179692A 2020-12-21 2020-12-21 Computing system for quantitative pricing-based task offloading of iot terminal considering latency in mobile edge computing environment, and method thereof KR102514798B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200179692A KR102514798B1 (en) 2020-12-21 2020-12-21 Computing system for quantitative pricing-based task offloading of iot terminal considering latency in mobile edge computing environment, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200179692A KR102514798B1 (en) 2020-12-21 2020-12-21 Computing system for quantitative pricing-based task offloading of iot terminal considering latency in mobile edge computing environment, and method thereof

Publications (2)

Publication Number Publication Date
KR20220089248A KR20220089248A (en) 2022-06-28
KR102514798B1 true KR102514798B1 (en) 2023-03-29

Family

ID=82268569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200179692A KR102514798B1 (en) 2020-12-21 2020-12-21 Computing system for quantitative pricing-based task offloading of iot terminal considering latency in mobile edge computing environment, and method thereof

Country Status (1)

Country Link
KR (1) KR102514798B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018513463A (en) 2015-03-27 2018-05-24 インテル コーポレイション Techniques for data offloading and onloading for processor / coprocessor configurations
CN109922152A (en) * 2019-03-13 2019-06-21 中南大学 Calculating discharging method and system in a kind of mobile edge calculations
CN110856228A (en) 2019-11-19 2020-02-28 三峡大学 WiFi unloading excitation method based on dynamic programming algorithm and reverse auction
CN110888687A (en) 2019-09-27 2020-03-17 华北水利水电大学 Mobile edge computing task unloading optimal contract design method based on contract design
CN111400001A (en) * 2020-03-09 2020-07-10 清华大学 Online computing task unloading scheduling method facing edge computing environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018513463A (en) 2015-03-27 2018-05-24 インテル コーポレイション Techniques for data offloading and onloading for processor / coprocessor configurations
CN109922152A (en) * 2019-03-13 2019-06-21 中南大学 Calculating discharging method and system in a kind of mobile edge calculations
CN110888687A (en) 2019-09-27 2020-03-17 华北水利水电大学 Mobile edge computing task unloading optimal contract design method based on contract design
CN110856228A (en) 2019-11-19 2020-02-28 三峡大学 WiFi unloading excitation method based on dynamic programming algorithm and reverse auction
CN111400001A (en) * 2020-03-09 2020-07-10 清华大学 Online computing task unloading scheduling method facing edge computing environment

Also Published As

Publication number Publication date
KR20220089248A (en) 2022-06-28

Similar Documents

Publication Publication Date Title
JP7389177B2 (en) Federated learning methods, devices, equipment and storage media
US9965322B2 (en) Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors
US20190020555A1 (en) System and method for applying machine learning algorithms to compute health scores for workload scheduling
CN111401744B (en) Dynamic task unloading method in uncertainty environment in mobile edge calculation
CN112422644B (en) Method and system for unloading computing tasks, electronic device and storage medium
US11757790B2 (en) Method and server for adjusting allocation of computing resources to plurality of virtualized network functions (VNFs)
CN114118433A (en) Recommendation method and device for configuration parameters of equipment
CN114528042A (en) Energy-saving automatic interconnected vehicle service unloading method based on deep reinforcement learning
CN113868808B (en) Road network approach detection time delay optimization method, device and system
More et al. Energy-aware VM migration using dragonfly–crow optimization and support vector regression model in Cloud
KR102350195B1 (en) Energy Optimization Scheme of Mobile Devices for Mobile Augmented Reality Applications in Mobile Edge Computing
Li et al. Task offloading and parameters optimization of MAR in multi-access edge computing
CN112817741B (en) DNN task control method for edge calculation
KR102514798B1 (en) Computing system for quantitative pricing-based task offloading of iot terminal considering latency in mobile edge computing environment, and method thereof
CN113504949A (en) Task unloading and parameter optimization method and system for MAR client in edge computing
CN116954866A (en) Edge cloud task scheduling method and system based on deep reinforcement learning
Tahmasebi-Pouya et al. A blind load-balancing algorithm (BLBA) for distributing tasks in fog nodes
Zhou et al. Dynamic computation offloading scheme for fog computing system with energy harvesting devices
CN115242800B (en) Game theory-based mobile edge computing resource optimization method and device
Huang et al. Intelligent task migration with deep Qlearning in multi‐access edge computing
Mahmoodi et al. Spectrum-Aware Mobile Computing
Khansoltani et al. A request redirection algorithm in content delivery network: Using promethee approach
KR102590112B1 (en) Coded and Incentive-based Mechanism for Distributed Training of Machine Learning in IoT
US20220019871A1 (en) Method for Adapting a Software Application Executed in a Gateway
CN113806057A (en) Cost-effective scheduling method for edge calculation

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right