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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/62—Establishing a time schedule for servicing the requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution 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 단말의 태스크 오프로딩을 위한 컴퓨터 시스템 및 그의 방법에 관한 것이다. 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.
여기서 ω는 초당 단가, 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.
총 지불은 단가와 처리시간의 곱이다. 단가는 도 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.
여기서 W는 총 지불이다. where W is the total payout.
여기서, 매개변수 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에 대한 증가 함수이다.
증명. 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
따라서 지불 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:
오프로드에 소요되는 시간은 업링크 데이터 전송 시간(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 ).
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.
사용자는 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].
여기서 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.
사용자의 목적은 소액결제로 실행지연을 줄이는 것이기 때문에, 사용자 비용 함수를 실행지연과 지불의 가중합계로 설정하여 그들 사이의 절충을 고려할 수 있다. 사용자의 최적 오프로딩 결정을 위한 의사결정 변수는 오프로드할 데이터 양(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.
여기서 β는 사용자의 지불 의지(β > 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.
일단 서버가 가격 입찰 함수를 제안하면, 사용자는 이를 바탕으로 오프로딩 결정을 내린다. 여기서, 사용자가 항상 오프로딩 결정을 최적화하고, 서버는 사용자의 최적의 전략을 알고 있다고 가정한다. 와 가 사용자의 최적 오프로딩 결정이라 하자. 그런 다음 서버 유틸리티를 다음과 같이 정의한다.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. and 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.
서버 유틸리티는 정의 3에서 그것의 수익으로 정의되며, 서버의 목적은 유틸리티를 최대화하는 것이다.Server utility is defined as its return in
마지막으로 사용자의 비용 함수와 서버의 유틸리티 함수를 바탕으로 단일 리더-다수 팔로워 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)
여기서 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.
이 사용자가 서버에서 연산 용량 Fa를 사용할 때 오프로드에 소요되는 시간과 로컬 처리 시간을 동일하게 하는 데이터 크기를 나타낸다 하자. Fa의 함수로 표현할 수 있으며, 우리는 다음과 같이 정의한다. 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]와 같이평형 데이터 크기를 오프로드 시간과 로컬 처리 시간이 같아지는 데이터 크기로 정의하고, 이를 (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, (F a ).
여기서 A는 이다.where A is am.
l가 (Fa) 미만일 경우, 로컬 처리 시간이 오프로드에 소요된 시간보다 길다. 로컬 처리 시간은 l가 (Fa)보다 클 때 오프로드에 소요된 시간보다 짧다.l is If less than (F a ), the local processing time is longer than the time taken for offloading. Local processing time is l (F a ) is shorter than the time spent off-road.
이를 위해 사용자가 서버에서 연산 용량 Fa'를 사용할 때 를 사용자 비용 함수로 한다.To this end, when the user uses the computing capacity F a 'in the server is the user cost function.
정의 5. 사용자가 서버의 계산 용량 Fa'를 로 사용할 때 사용자 비용 함수를 하기 [수학식 13]과 같이 정의한다.
사용자 비용 함수의 두 번째 항인 사용자 지불은 보조정리 1에 근거하여 증가한다. l에 대한 지불 항의 기울기에 따라 비용함수는 모양이 다를 수 있다.The second term of the user cost function, the user payment, increases based on
보조정리 2. l에 대한 지불 기울기가 보다 크면 사용자 비용 함수 가 증가 함수가 될 것이다. Lemma 2. If the payout slope for l is greater than the user cost function 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:
l에 관한 사용자 비용 함수의 편도함수는 다음과 같다.The partial derivative of the user cost function with respect to l is
인 l에 대한 지불 기울기가 보다 크다고 가정하자. 그러면, is the payout slope for l Let's assume it's bigger than then,
이면, 비용 함수 은 증가 함수이다. If , the cost function is an increasing function.
보조정리 3. l에 대한 지불 기울기가 보다 작을 경우 사용자 비용 함수 는 에서 와 같이 최소값을 갖는다.
증명. 사용자 비용 함수 의 편도함수는 보조정리 2의 증명에 제시되어 있다. 라 가정하자.proof. user cost function The partial derivative of is given in the proof of Lemma 2. Let's assume
사용자 비용 함수 값은 l가 ~l(F0a)까지 증가할수록 감소하고, l이 이상 증가할수록 증가한다. 따라서 사용자 비용 함수는 에서 최소값을 갖는다.user cost function The value decreases as l increases up to ~l (F0a), and when l increases as the number increases. So the user cost function is has a minimum value in
보조정리 4. l에 대한 지불 기울기가 과 같을 경우, 사용자 비용 함수 는 모든 에 대해 동일한 값을 가지며, 모든 에 대해 증가 함수가 될 것이다.
증명. 라 가정하자. 그러면,proof. Let's assume then,
이는 보조정리 2의 증명에서 사용자 비용 함수의 편도함수에 기초한다.It is based on the partial derivative of the user cost function in the proof of Lemma 2.
따라서 사용자 비용 함수는 모든 에 대하여 동일한 값을 가지고, l에 대해 l이 이상 증가하면 증가한다.Therefore, the user cost function is has the same value for , and l for l Increases more than
보조정리 4를 기준으로 l에 대한 지불 기울기가 과 같다면 서버에서 초당 Fa' 컴퓨팅 사이클을 사용하는 경우 을 보내는지 여부에 따라 사용자는 동일한 비용을 갖는다. 그러나 오프로딩 시 사용자는 에너지 소비의 혜택을 받을 수 있고 로컬 컴퓨팅 시간을 줄일 수 있어 다른 태스크를 처리할 수 있는 시간이 주어진다. 따라서 l에 대한 지불 기울기가 과 같을 때 사용자 비용이 같더라도 사용자가 비트의 데이터를 오프로드한다고 가정한다.Based on
가정 1. l에 대한 지불 기울기가 과 같을 경우, 사용자는 전송 여부와 상관없이 사용자 비용이 동일하더라도 데이터의 비트의 데이터를 오프로드한다.
그러면 보조정리 2, 3, 4 및 가정 1에서 정리 1을 도출할 수 있다.Then, theorem 1 can be derived from
정리 1. 사용자는 이면, 오프로딩에서 혜택을 가질 수 있다. 그러지 않다면, 오프로딩은 사용자에게 혜택을 줄 수 없다.
증명. 보조정리 2에 기초하여, 이면, 사용자 비용 함수는 l에 대하여 증가 함수이다. 즉, 오프로드된 데이터의 크기가 커질수록 사용자 비용이 증가하는 것이다. 따라서 사용자가 오프로드하지 않는 것이 최적이다. 이면 사용자는 보조정리 3에 근거한 오프로드의 혜택을 얻을 수 있다. 보조정리 4와 가정 1에 따르면 사용자 역시 오프로드의 혜택을 누릴 수 있다.proof. Based on the lemma 2, , 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. If this is the case, the user can benefit from offloading based on
이제 일반성 상실 없이 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.
이것은 하기 [수학식 16]과 같이 다시 표현될 수 있다.This can be re-expressed as in [Equation 16] below.
l의 경우 상기 [수학식 16]와 같은 조건이 충족되면 만큼 오프로드하는 것이 최적 오프로드 결정이다. 그렇지 않으면 사용자는 오프로드의 혜택을 받을 수 없으므로 사용자의 최적 전략은 오프로드하지 않는 것이다.In the case of l, if the condition as in [Equation 16] is satisfied, 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.
이 점에서 는 사용자가 서버에서 Fa 계산 용량을 사용할 때 오프로드할 수 있는 최적의 데이터 크기이다. 상기 [수학식 16]과 같은 조건이 충족되면 Fa에서도 최적의 오프로드 결정을 찾아야 한다. 따라서 앞으로는 사용자가 를 상기 [수학식 16]과 같은 조건으로 오프로드할 때 최적의 Fa를 찾는다.in this respect 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 When offloading is performed under the same conditions as in [Equation 16] above, the optimal F a is found.
상기 [수학식 16]과 같은 조건이 충족되고 사용자가 비트의 데이터를 오프로드하면 실행 지연은 로컬 처리 시간과 동일해진다. 문제 1의 세 번째 제약 조건은 하기 [수학식 18]과 같이 다시 쓸 수 있다.If the condition as in [Equation 16] above is satisfied, the user By offloading a bit of data, the execution delay equals the local processing time. The third constraint of
이는 하기 [수학식 19]와 같다.This is as shown in [Equation 19] below.
그 후 상기 [수학식 16]와 같은 조건을 충족하고 사용자가 비트의 데이터를 오프로드할 때 상기 [수학식 14]에 근거하여 Fa에 대한 최적 오프로드 결정 문제를 다음과 같이 수정할 수 있다.After that, the condition as in [Equation 16] is satisfied, and the user 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).
여기서, 상기 [수학식 20]에 대한 제약 조건들은 문제 1의 두 번째 제약 조건, 네 번째 제약 조건, 상기 [수학식 16] 및 상기 [수학식 19]와 같다. Here, the constraints for [Equation 20] are the same as the second and fourth constraints of
상기 [수학식 20]에서 수정 비용 함수는 사용자가 을 오프로딩할 때 사용자 비용 함수로, 사용자가 서버에서 계산 용량 Fa를 사용할 때 오프로딩할 데이터 크기에 대한 최적의 오프로드 결정이다. 우리는 이 비용 함수를 으로 정의한다. In [Equation 20], the correction cost function is 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 Defined by
정의 6. 사용자가 데이터의 비트를 로 오프로딩할 때 사용자 비용 함수를 하기[수학식 21]과 같이 정의한다.
그것은 상기 [수학식 20]과 같다.It is the same as [Equation 20] above.
사용자 비용 함수 은 Fa≥0에서 볼록함수로, 다음과 같이 설명한다.user cost function is a convex function at Fa≥0, and is described as follows.
보조정리 5. 사용자 비용 함수 는 Fa≥0에서 볼록 함수이다.
증명. 사용자 비용 함수 의 2차 편도 함수는 다음과 같이 표현된다.proof. user cost function The second order partial derivative of is expressed as
문제 1의 두 번째 제약조건과 상기 [수학식 16]과 같은 조건에 따르면 는 항상 0보다 크거나 같기 때문에 비용함수의 2차 편도함수는 항상 Fa≥0이다. 따라서 비용함수 는 Fa≥0에서 볼록 함수이다.According to the second constraint of
따라서 이 수정 문제는 볼록한 제약을 가진 볼록 최적화 문제로서, 수정 비용 함수를 최소화하는 해결책은 보조정리 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
보조정리 6. 수정 비용 함수를 최소화하는 해결책 는
여기서 B는 이다.where B is am.
증명. 의 1차 편도 함수는 다음과 같이 표현된다.proof. The first partial derivative of is expressed as
를 1차 편도 함수가 0과 동일하게 만드는 값을 나타낸다 하자. 그러면 이는 다음과 같이 표현된다. Let denote the value that makes the first-order partial derivative equal to zero. Then this is expressed as:
B가 문제 1의 두 번째 제약 조건과 상기 [수학식 16]과 같은 조건에 기초하여 항상 음의 값을 가지기 때문에 는 항상 양의 값을 가진다. Fa가 Ca≥0에서 보다 작다면, 비용은 감소하고 그렇지 않으면 증가한다. 는 수정 비용 함수 를 최소화한다.Since B always has a negative value based on the second constraint of
그러나 는 실현 가능한 범위를 벗어나면 최적의 해결책이 아닐 수 있다. Fmin은 하한을 나타내며, Fmax는 문제 1의 두 번째 제약 조건, 상기 [수학식 16], 상기 [수학식 19]에 근거하여 실현 가능한 Fa 범위의 상한을 나타내도록 한다.however 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
이러한 실현 가능한 한도에 근거하여 실현 가능한 최적 해결책 는 정리 2에 의해 설명된다.Based on these feasible limits, the best feasible solution is explained by Theorem 2.
정리2. 수정 비용 함수를 최소화하는 실현 가능한 최적 솔루션 는 상기 [수학식 17], [수학식 23], [수학식 24], 보조정리 5 및 보조정리 6에 근거하여 다음과 같다. Organize 2. A feasible optimal solution that minimizes the modified cost function is as follows based on [Equation 17], [Equation 23], [Equation 24],
증명. 문제 1의 두 번째 제약 조건과 상기 [수학식 16]을 충족하기 위해서는 계산 용량이 음의 값을 가질 수 없으므로 이라는 조건이 충족되어야 한다. 그렇지 않다면 실현 가능한 해결책은 존재하지 않는다. 즉, 사용자의 최적 전략은 오프로드하지 않는 것이므로 실현 가능한 최적 솔루션은 (0, 0)이다.proof. In order to satisfy the second constraint of
가 실현 가능한 범위라면, 은 보조정리 6을 기준으로 하는 것이 최적이다. is within the feasible range, is optimally based on
Fmin보다 가 적으면 수정 비용 함수를 최소화한 해결책이 사용자의 실행지연 요건을 충족하지 못하는 경우다. 이 경우 사용자는 요건을 충족하기 위해 서버에서 최소한 Fmin 계산 용량을 사용해야 한다. 비용 함수는 보조정리 5를 기반으로 한 볼록 함수이기 때문에 다음과 같은 불균등이 유지된다.Than F min 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
따라서 이 경우 은 사용자 비용을 최소화하는 것이 실현 가능한 최적의 해결책이다. So in this case is the optimal feasible solution to minimize user cost.
Fmax보다 가 크면 서버의 남은 용량이 부족하거나 사용자가 오프로드로 혜택을 볼 수 없는 경우다. 같은 방법으로 다음과 같은 불균등이 지속된다.than F max 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.
따라서 가 Fmax보다 큰 경우 는 사용자 비용을 최소화하는 실현 가능한 최적 해결책이다.thus is greater than F max is a feasible optimal solution that minimizes user cost.
이 는 서버가 사용자에게 가격 입찰 기능을 제안했을 때 최적의 오프로드 결정이다. 일 때 사용자는 비용을 최소화할 수 있으며, 이 결정에 근거한 오프로딩으로 실행 지연 요건을 충족할 수 있다. 일 때, 사용자는 오프로드 결정 체계에 기초하여 오프로드 태스크를 수행할 수 없다는 것을 알 수 있다. 따라서 이러한 오프로드 의사결정 방식에 기초한 오프로드 태스크는 사용자의 최적의 전략이다.this is the optimal offload decision when the server offers the price bidding function to the user. When , the user can minimize cost, and offloading based on this decision can meet the execution delay requirement. 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를 결정해야 하며, 이것들은 서버의 결정 변수들이다. 와 는 상술된 사용자의 최적 오프로드 결정이다. 서버가 a와 b를 변경하면 와 가 함께 변경된다. 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. and is the user's optimal offload decision described above. If the server changes a and b and 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).
다양한 실시예들에서는, 적절한 계수 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
통신 모듈(711)은 컴퓨터 시스템(710)에서 외부 장치와 통신을 수행할 수 있다. 통신 모듈(711)은 컴퓨터 시스템(710)과 외부 장치 간 통신 채널을 수립하고, 통신 채널을 통해 외부 장치와 통신을 수행할 수 있다. 통신 모듈(711)은 유선 통신 모듈 또는 무선 통신 모듈 중 적어도 하나를 포함할 수 있다. 유선 통신 모듈은 외부 장치와 유선으로 연결되어, 유선으로 통신할 수 있다. 무선 통신 모듈은 근거리 통신 모듈 또는 원거리 통신 모듈 중 적어도 어느 하나를 포함할 수 있다. 근거리 통신 모듈은 외부 장치와 근거리 통신 방식으로 통신할 수 있다. 원거리 통신 모듈은 외부 장치와 원거리 통신 방식으로 통신할 수 있다. 여기서, 원거리 통신 모듈은 무선 네트워크를 통해 외부 장치와 통신할 수 있다. 이 때 외부 장치는 전자 장치(720)를 포함할 수 있다. The
메모리(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
통신 모듈(721)은 전자 장치(720)에서 외부 장치와 통신을 수행할 수 있다. 통신 모듈(721)은 전자 장치(720)와 외부 장치 간 통신 채널을 수립하고, 통신 채널을 통해 외부 장치와 통신을 수행할 수 있다. 통신 모듈(721)은 유선 통신 모듈 또는 무선 통신 모듈 중 적어도 하나를 포함할 수 있다. 유선 통신 모듈은 외부 장치와 유선으로 연결되어, 유선으로 통신할 수 있다. 무선 통신 모듈은 근거리 통신 모듈 또는 원거리 통신 모듈 중 적어도 어느 하나를 포함할 수 있다. 근거리 통신 모듈은 외부 장치와 근거리 통신 방식으로 통신할 수 있다. 원거리 통신 모듈은 외부 장치와 원거리 통신 방식으로 통신할 수 있다. 여기서, 원거리 통신 모듈은 무선 네트워크를 통해 외부 장치와 통신할 수 있다. 이 때 외부 장치는 컴퓨터 시스템(710)을 포함할 수 있다.The
인터페이스 모듈(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
프로세서(727)는 메모리(725)의 프로그램을 실행하여, 전자 장치(720)의 적어도 하나의 구성 요소를 제어할 수 있다. 이를 통해, 프로세서(727)는 데이터 처리 또는 연산을 수행할 수 있다. 이 때 프로세서(727)는 메모리(725)에 저장된 명령을 실행할 수 있다. 그리고, 프로세서(727)는 CPU를 포함할 수 있다. The
프로세서(727)는, 전자 장치(720)에서 사용하기 위한 컴퓨터 시스템(710)으로부터 컴퓨터 시스템(710)의 CPU 사용에 대한 초당 단가를 설정하기 위한 가격 입찰 함수를 수신할 수 있다. 그리고, 프로세서(727)는 가격 입찰 함수를 기반으로, 전자 장치(720)에서 사용하기 위한 컴퓨터 시스템(710)의 CPU 처리 시간을 결정하고, 이를 컴퓨터 시스템(710)에 전송할 수 있다. 프로세서(727), 전자 장치에서 구동 중인 애플리케이션에 대한 지연 시간 조건 및 컴퓨터 시스템(710)의 CPU 사용에 따른 지불을 기반으로, CPU 처리 시간을 결정할 수 있다. 이를 통해, 프로세서(727)는 CPU 처리 시간 동안, 컴퓨터 시스템(710)에 태스크를 오프로드할 수 있다. The
다양한 실시예들에 따르면, 전자 장치의 사용자는, 초당 단가 및 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
컴퓨터 시스템(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
컴퓨터 시스템(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
컴퓨터 시스템(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
도 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
전자 장치(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
전자 장치(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
전자 장치(720)는 940 단계에서 컴퓨터 시스템(710)으로부터 할당되는 자원들을 검출될 수 있다. 프로세서(727)는 통신 모듈(721)을 통해, 컴퓨터 시스템(710)으로부터 할당되는 자원들을 검출될 수 있다. 이 때 컴퓨터 시스템(710)은 CPU 처리 시간을 기반으로, 전자 장치(720)에 대해 자원들을 할당할 수 있다. The electronic device 720 may detect resources allocated from the computer system 710 in
전자 장치(720)는 950 단계에서 컴퓨터 시스템(710)에 태스크를 오프로드할 수 있다. 프로세서(727)는 통신 모듈(721)을 통해, 컴퓨터 시스템(710)에 태스크를 오프로드할 수 있다. 이 때 프로세서(727)는 CPU 처리 시간 동안, 태스크를 오프로드할 수 있다.The electronic device 720 may offload the task to the computer system 710 in
전자 장치(720)는 960 단계에서 컴퓨터 시스템(710)으로부터 처리 결과를 수신할 수 있다. CPU 처리 시간이 종료된 후에, 프로세서(727)는 통신 모듈(721)을 통해, 컴퓨터 시스템(710)으로부터 태스크에 대한 처리 결과를 확인할 수 있다. The electronic device 720 may receive a processing result from the computer system 710 in
다양한 실시예들에 따른 컴퓨터 시스템의 방법은, 오프로드하고자 하는 전자 장치를 검출하는 단계, 전자 장치를 위해 컴퓨터 시스템의 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.
상기 전자 장치의 사용자는,
상기 초당 단가 및 상기 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.
상기 태스크를 처리하는 단계는,
상기 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.
상기 전자 장치의 사용자는,
상기 초당 단가 및 상기 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.
상기 프로세서는,
상기 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.
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)
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 |
-
2020
- 2020-12-21 KR KR1020200179692A patent/KR102514798B1/en active IP Right Grant
Patent Citations (5)
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 |