KR102607808B1 - Dynamic reallocating resources for optimized job performance in distributed heterogeneous computer system - Google Patents
Dynamic reallocating resources for optimized job performance in distributed heterogeneous computer system Download PDFInfo
- Publication number
- KR102607808B1 KR102607808B1 KR1020160116753A KR20160116753A KR102607808B1 KR 102607808 B1 KR102607808 B1 KR 102607808B1 KR 1020160116753 A KR1020160116753 A KR 1020160116753A KR 20160116753 A KR20160116753 A KR 20160116753A KR 102607808 B1 KR102607808 B1 KR 102607808B1
- Authority
- KR
- South Korea
- Prior art keywords
- job
- application
- data distribution
- task
- computer nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Environmental & Geological Engineering (AREA)
- Multi Processors (AREA)
Abstract
복수의 컴���터 노드를 포함하는 분산 이종 컴퓨터 시스템에서 최적화된 잡 성능을 제공하기 위해 자원들을 동적으로 재할당하는 장치가 제공된다. 이 장치는 컴퓨터 노드들 중 적어도 하나의 컴퓨터 노드 상에서 수행될 적어도 하나의 잡을 동작시키기 위한 어플리케이션 주입기를 포함한다. 이 장치는 각 컴퓨터 노드 상에서 작업 부하 값을 동적으로 수집하기 위한 수집기를 더 포함한다. 이 장치는 각 컴퓨터 노드 상에서 알려진 및 알려지지 않은 잡들을 판별하기 위한 잡 알림기를 더 포함한다. 이 장치는 각 컴퓨터 노드 상에서 작업 부하 값 및 알려진 및 알려지지 않은 잡들에 기초하여 데이터 분산 벡터를 판별하기 위한 잡 최적화기를 더 포함한다. 데이터 분산 벡터는 적어도 하나의 잡을 수행하기 위해 컴퓨터 노드들로 분산될 데이터의 양을 정의한다.An apparatus for dynamically reallocating resources to provide optimized job performance in a distributed heterogeneous computer system including a plurality of computer nodes is provided. The apparatus includes an application injector for operating at least one job to be performed on at least one of the computer nodes. The device further includes a collector for dynamically collecting workload values on each computer node. The device further includes a job notifier for determining known and unknown jobs on each computer node. The apparatus further includes a job optimizer for determining a data distribution vector based on workload values and known and unknown jobs on each computer node. The data distribution vector defines the amount of data to be distributed to computer nodes to perform at least one job.
Description
본 발명은 이종 컴퓨터 시스템들에 관한 것으로써, 좀 더 상세하게는 최적화된 잡 성능을 위하여 동적으로 자원을 재할당하는 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템 및 방법에 관한 것이다. The present invention relates to heterogeneous computer systems, and more specifically, to a distributed heterogeneous computer system and method including a plurality of computer nodes that dynamically reallocate resources for optimized job performance.
제조업, 광���, 헬스-케어, 금융 등과 같은 다양한 분야에서의 발전은 최소화된 사용자 개입을 갖는 비져닝 자동화 시스템(visioning automated system)과 연관된다. 이러한 시스템을 위한 세가지 중요한 부분들은 감지(sense), 처리(process), 및 반응(react)이다. 감지에 대하여, 더욱 새로운 장치들은 많은 수의 센서들을 장착한다. 또한, 이러한 센서들은 많은 양의 데이터를 연속적으로 생성한다. 그러므로, 이러한 많은 데이터를 처리하는데 요구되는 거대한 프로세싱 클러스터들에 대한 수요가 있을 것이다. 이러한 프로세싱의 결과는 자동화된 동작들로 변환되어 자동화된 시스템의 비젼을 완전히 인식할 수 있다. Advances in fields as diverse as manufacturing, advertising, healthcare, finance, etc. are associated with visioning automated systems with minimal user intervention. The three important parts for such a system are sense, process, and react. Regarding sensing, newer devices are equipped with large numbers of sensors. Additionally, these sensors continuously generate large amounts of data. Therefore, there will be a demand for huge processing clusters required to process this much data. The results of this processing can be converted into automated actions to fully recognize the vision of the automated system.
프로세싱 클러스터를 셋업하는 연관된 처리 방법은 성능을 최대하는 것을 목적으로 하고, 열, 에너지, 및 다른 신뢰성 팩터들을 필수적으로 고려하지 않는다. 이는 열을 감소시키도록 설치가 요구되는 쿨러들과 같은 대응하는 시스템들에서 설치 및 구동 비용을 증가시킨다. 더욱이, 그것들의 클러스터들 상에서 구동하도록 개발된 애플리케이션들은 이러한 시스템들을 위하여 특별하게 설계되고, 하드웨어 특정 최적화(hardware specific optimization)을 포함한다. 그래서 현존하는 시스템의 하드웨어에서의 업데이트는 애플리케이션들에서 대응하는 업데이트가 최적화(optimizations)를 포함하는 것을 요구한다. 애플리케이션 개발자들 및 시스템 설계자들은 관계 있는 시스템에 대한 적절한 최적화를 수행하기 위한 전문 지식을 갖지 못할 수 있다. 또한 애플리케이션 개발자들은 시스템에서 경쟁하는 다른 애플리케이션에 대한 지식을 갖지 못할 수 있다. 이는 애플리케이션 업데이트 태스크를 시간 단위에서 복잡하게 하고, 수행된 최적화 태스크가 정확하지 않을 수 있게 한다.The associated processing method of setting up a processing cluster aims to maximize performance and does not necessarily consider heat, energy, and other reliability factors. This increases installation and operating costs in corresponding systems such as coolers that require installation to reduce heat. Moreover, applications developed to run on their clusters are designed specifically for these systems and include hardware specific optimization. So updates in the hardware of existing systems require corresponding updates in applications to include optimizations. Application developers and system designers may not have the expertise to perform appropriate optimization for the systems involved. Additionally, application developers may not have knowledge of other applications competing in the system. This complicates the application update task on an hourly basis and may cause the performed optimization tasks to be inaccurate.
다른 처리 방법은 스스로 전용 태스크 스케줄러를 포함할 수 있는 다양한 컴퓨팅/컴퓨터 노드 검색을 포함한다. 태스크 스케줄러들은 보통(usually) 성능을 최대화하도록 구현될 수 있다. 그러나 태스크 스케줄러들은 에너지 최적화를 고려하거나 또는 고려하지 않을 수 있다. 태스크 스케줄러들이 에너지 최적화를 고려하더라도, 주어진 태스크 스케줄러의 레벨에서 모든 컴퓨팅 노드들의 제한된 가시성(limited visibility)으로 인하여, 시스템을 위한 광범위한 에너지 최적화 포인트를 달성하는 것은 불가능하다. 에너지 최적화를 위하여 태스크 스케줄러들에 기반된 애플리케이션들은 광범위한 최적화를 달성하지 못할 수 있으며, 이에 따라, 제어되지 않고 감시되지 않는 에너지의 낭비가 발생할 수 있다. Another processing method involves searching for various computing/computer nodes that may themselves contain dedicated task schedulers. Task schedulers can usually be implemented to maximize performance. However, task schedulers may or may not consider energy optimization. Even if task schedulers take energy optimization into account, it is impossible to achieve a broad energy optimization point for the system due to limited visibility of all computing nodes at a given task scheduler level. Applications that rely on task schedulers for energy optimization may not achieve extensive optimization, resulting in uncontrolled and unmonitored waste of energy.
더욱이, 애플리케이션들은 최대화된 성능을 위하여 기입되는 반면에, 애플리케이션이 구동되는 컴퓨팅 노드 상에서 실제로 고려되지 않는다. 예를 들어, 다양한 컴퓨팅 노드들 외에, 오직 일부 노드들이 광범위하게 사용되고, 컴퓨팅 노드들에 손상을 주고 열을 발생시킨다. 이러한 시스템들은 많은 관리 비용을 발생시키는 지속적인 관리를 요구한���. Moreover, while applications are written for maximized performance, they are not actually considered on the computing node on which the application runs. For example, besides various computing nodes, only some nodes are used extensively and generate heat and damage the computing nodes. These systems require ongoing management, which results in high management costs.
실시 예들은 최적화된 잡 성능을 위하여 동적으로 자원을 재할당하는 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템을 제공할 수 있다. Embodiments may provide a distributed heterogeneous computer system including a plurality of computer nodes that dynamically reallocate resources for optimized job performance.
실시 예들은 수행될 적어도 하나의 잡을 호출하는, 복수의 컴퓨터 노드들로부터 적어도 하나의 컴퓨터 노드에서의 애플리케이션 인젝터(application injector)를 제공할 수 있다. Embodiments may provide an application injector at at least one computer node from a plurality of computer nodes that invokes at least one job to be performed.
실시 예들은 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하는, 적어도 하나의 컴퓨터 노드에서의 콜렉터(collector)를 제공할 수 있다. Embodiments may provide a collector on at least one computer node that dynamically collects workload values from each of the computer nodes.
실시 예들은 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하는, 적어도 하나의 컴퓨터 노드에서의 잡 인포머(job informe)를 제공할 수 있다.Embodiments may provide a job informer at at least one computer node that determines known and unknown jobs at each of the computer nodes.
실시 예들은 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하는, 적어도 하나의 노드에서 잡 옵티마이저를 제공할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행할 데이터의 크기를 정의한다.Embodiments may provide a job optimizer at at least one node that determines a data distribution vector based on known and unknown jobs and workload values at each of the computer nodes. The data distribution vector defines the size of data to be distributed to a plurality of nodes to perform at least one job.
실시 예는 애플리케이션 계층 및 최적화 계층을 분리하기 위한 메커니즘을 제공할 수 있다. Embodiments may provide a mechanism to separate the application layer and optimization layer.
따라서, 실시 예들은 분산 이종 컴퓨터 시스템을 제공할 수 있다. 분산 이종 컴퓨터 시스템은 복수의 컴퓨터 노드들을 포함할 수 있고, 복수의 컴퓨터 노드들 각각은 네트워크 인터페이스를 통해 네트워크와 기능적으로 연결되어 컴퓨터 노드들 사이의 데이터 통신을 제공할 수 있다. 컴퓨터 노드들 각각은 수행될 적어도 하나의 잡을 포함할 수 있다. 또한 분산 이종 컴퓨터 시스템은 수행될 적어도 하나의 잡을 호출하는, 복수의 컴퓨터 노드들 중 적어도 하나의 노드에서의 애플리케이션 인젝터를 포함할 수 있다. 또한, 분산 이종 컴퓨터 시스템은 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하는, 적어도 하나의 컴퓨터 노드에서의 콜렉터를 포함할 수 있다. 또한 분산 이종 컴퓨터 시스템은 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하는, 적어도 하나의 컴퓨터 노드에서의 잡 인포머를 포함할 수 있다. 또한, 분산 이종 컴퓨터 시스템은 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하는, 적어도 하나의 컴퓨터 노드에서의 잡 옵티마이저를 포함할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행하는 데이터의 총량을 정의할 수 있다.Accordingly, embodiments may provide distributed heterogeneous computer systems. A distributed heterogeneous computer system may include a plurality of computer nodes, and each of the plurality of computer nodes may be functionally connected to a network through a network interface to provide data communication between the computer nodes. Each of the computer nodes may include at least one job to be performed. The distributed heterogeneous computer system may also include an application injector on at least one node of the plurality of computer nodes that invokes at least one job to be performed. Additionally, the distributed heterogeneous computer system may include a collector on at least one computer node that dynamically collects workload values from each of the computer nodes. The distributed heterogeneous computer system may also include a job informer at at least one computer node that determines known and unknown jobs at each of the computer nodes. Additionally, the distributed heterogeneous computer system may include a job optimizer in at least one computer node that determines a data distribution vector based on known and unknown jobs and workload values in each of the computer nodes. The data distribution vector may define the total amount of data distributed to a plurality of nodes to perform at least one job.
또한, 실시 예들은 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템에서 최적화된 컴퓨터 성능을 위하여 자원들을 동적으로 재할당하는 장치를 제공할 수 있다. 장치는 복수의 컴퓨터 노드들 중 적어도 하나의 컴퓨터 노드에서 수행될 적어도 하나의 잡을 호출하도록 구성되는 애플리케이션 인젝터를 포함할 수 있다. 또한 장치는 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하도록 구성되는 콜렉터를 포함할 수 있다. 또한 장치는 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하도록 구성되는 잡 인포머를 포함할 수 있다. 또한 장치는 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하도록 구성되는 잡 옵티마이저를 포함할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행할 데이터의 총량을 정의할 수 있다. Additionally, embodiments may provide an apparatus for dynamically reallocating resources for optimized computer performance in a distributed heterogeneous computer system including a plurality of computer nodes. The apparatus may include an application injector configured to invoke at least one job to be performed on at least one computer node of the plurality of computer nodes. The device may also include a collector configured to dynamically collect workload values from each of the computer nodes. The device may also include a job informer configured to determine known and unknown jobs at each of the computer nodes. The apparatus may also include a job optimizer configured to determine a data distribution vector based on known and unknown jobs and workload values at each of the computer nodes. The data distribution vector can define the total amount of data to be distributed across a plurality of nodes to perform at least one job.
또한, 실시 예들은 분산 이종 컴퓨터 시스템에서 최적화된 잡 성능을 위하여 자원들을 동적으로 재할당하는 방법을 제공할 수 있다. 방법은, 인공의 인젝터에 의해, 복수의 컴퓨터 노드들 중 적어도 하나의 컴퓨터 노드에서 수행될 적어도 하나의 잡을 호출하는 것을 포함할 수 있다. 또한, 방법은, 콜렉터에 의해 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하는 것을 포함할 수 있다. 또한, 방법은, 잡 인포머에 의해 컴퓨터 노드들 각각에서, 알려진 그리고 알려지지 않은 잡들을 판별하는 것을 포함할 수 있다. 또한, 방법은, 잡 옵티마이저에 의해, 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하는 것을 포함할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행할 데이터의 총량을 정의할 수 있다. Additionally, embodiments may provide a method for dynamically reallocating resources for optimized job performance in a distributed heterogeneous computer system. The method may include calling, by the artificial injector, at least one job to be performed on at least one computer node of the plurality of computer nodes. Additionally, the method may include dynamically collecting workload values from each of the computer nodes by a collector. Additionally, the method may include determining known and unknown jobs at each of the computer nodes by a job informer. Additionally, the method may include determining, by the job optimizer, a data distribution vector based on known and unknown jobs and workload values at each of the computer nodes. The data distribution vector can define the total amount of data to be distributed across a plurality of nodes to perform at least one job.
일부 실시 예들에서, 워크로드 값은 성능 메트릭, 신뢰성 메트릭, 추가 팩터들, 및 데이터 분산률 중 적어도 하나의 함수일 수 있다.In some embodiments, the workload value may be a function of at least one of a performance metric, a reliability metric, additional factors, and a data distribution rate.
일부 실시 예들에서, 데이터 분산 벡터는 룩업 테이블에 저장될 수 있다.In some embodiments, the data distribution vector may be stored in a lookup table.
일부 실시 예들에서, 방법은 적어도 하나의 잡을 구동하는 실제 시간 및 예상 시간의 차이를 포함하는 룩업 테이블 엔트리들을 피드백할 수 있다.In some embodiments, the method may feed back lookup table entries containing the difference between the actual time and the expected time to run at least one job.
일부 실시 예들에서, 시스템의 컴퓨터 노드들 각각에서 적어도 하나의 잡 성능은 컴퓨터 시스템에서의 리프레셔에 의해 주기적으로 최적화될 수 있다.In some embodiments, the performance of at least one job on each of the computer nodes of the system may be periodically optimized by a refresher in the computer system.
일부 실시 예들에서, 리프레셔는 적어도 하나의 잡을 구동하는 실제 시간 및 예상 시간의 차이를 사용하여 시스템의 컴퓨터 노드들 각각의 적어도 하나의 잡 성능을 최적화하기 위한 시간 구간을 동적으로 판별할 수 있다. In some embodiments, the refresher may dynamically determine a time interval for optimizing the performance of at least one job of each computer node of the system using the difference between the actual time and the expected time for running at least one job.
일부 실시 예들에서, 분산 벡터는 선형 최적화 모델 및 비선형 최적화 모델 중 적어도 하나를 사용하여 판별될 수 있다.In some embodiments, the variance vector may be determined using at least one of a linear optimization model and a non-linear optimization model.
실시 예들의 이러한 그리고 다른 면들은 이하의 상세한 설명 및 첨부된 도면들과 함께 고려될 때, 더욱 잘 이해될 것이다. 그러나 예시적인 실시 예들 및 그것들의 다양한 상세한 설명들을 가리키는 이하의 상세한 설명들은 실례로써 주어지나 한정되지 않는 것은 이해될 수 있다. 다양한 변화 및 변형들은 본 발명의 기술적 사상으로부터의 벗어남 없이 실시 예들의 범위 내에서 행해질 수 있으며, 실시 예들은 이러한 모든 변형들�� 포함할 수 있다. These and other aspects of the embodiments will be better understood when considered in conjunction with the following detailed description and accompanying drawings. However, it is to be understood that the following detailed description, which refers to exemplary embodiments and various detailed descriptions thereof, is given by way of example and not limitation. Various changes and modifications may be made within the scope of the embodiments without departing from the technical spirit of the present invention, and the embodiments may include all such modifications.
본 발명에 따르면, 최적화 태스크로부터 애플리케이션 개발자들이 자유로워 지는 것이 가능할 수 있다. 즉, 빠른 업데이트가 가능할 수 있다. 최적화 태스크가 독립적으로 수행되고, 모든 컴퓨터 노드들의 완전한 가시성(complete visibility)를 포함하기 때문에, 광범위한 최적화 값이 달성될 수 있다. 따라서, 개별적인 컴퓨터 노드들의 신뢰성이 향상되고, 비용 절감의 향상이 보장된다. 더욱이, 본 발명은 전체 시스템의 관점에서 에너지 절감을 도울 수 있다. According to the present invention, it may be possible to free application developers from optimization tasks. In other words, fast updates may be possible. Because the optimization tasks are performed independently and include complete visibility of all computer nodes, a wide range of optimization values can be achieved. Accordingly, the reliability of individual computer nodes is improved and improved cost savings are ensured. Moreover, the present invention can help save energy from an overall system perspective.
본 발명의 특정한 실시 예들의 이점들, 특징들, 다른 관점들은 이하의 상세한 설명 및 도면들을 참조하여 더욱 명확해질 수 있다.
도 1은 연관된 기술 분야에서 애플리케이션 프로세스가 최적화 프로세스와 연결된 컴퓨터 노드의 블록도를 보여준다.
도 2는 일부 실시 예들에 따라, 애플리케이션 프로세스 및 최적화 프로세스가 분리된 컴퓨터 노드의 블록도를 보여준다.
도 3은 일부 실시 예들에 따라, 최적화된 잡 성능을 위하여 동적으로 자원들을 재할당하는 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템을 보여준다.
도 4는 일부 실시 예들에 따라, 애플리케이션 계층 및 최적화 계층이 분리되어 광범위한 최적화를 달성하는 컴퓨터 노드의 블록도를 보여준다.
도 5는 일부 실시 예들에 따라, 분산 이종 컴퓨터 시스템에서 최적화된 잡 성능을 위하여 동적으로 자원을 재할당하는 방법을 보여주는 순서도이다.
도 6은 일부 실시 예들에 따른, 다른 컴퓨터 노드들 사이에서 잡들을 호출하는 애플리케이션 인젝터의 다양한 동작들을 보여주는 개념도이다.
도 7은 본 발명의 실시 예에 따라 최적화 프로세스/최적화 계층에 포함된 다양한 동작들을 보여주는 개념도이다.
도 8은 일부 실시 예들에 따른, 컴퓨터 노드 각각에서 워크로드 값을 동적으로 수집하기 위한 콜렉터의 블록도를 보여준다.
도 9a는 일부 실시 예들에 따라, 완료 태스크 노드를 위한 데이터 분산 벡터를 획득하기 위한 최적화 프로세스의 예를 보여준다.
도 9b는 일부 실시 예들에 따른, 데이터 분산 벡터를 노멀 벡터로 변환하는 일반화 프로세스의 예를 보여준다.
도 10은 일부 실시 예들에 따라, 분산 이종 시스템에서 구동하는 다른 태스크들을 위한 정보 저장을 유지하는 잡 인포머/태스크 정보 저장소를 보여준다.
도 11은 일부 실시 예들에 따른, 알려지지 않은 태스크 식별자를 위한 태스크 정보를 생성하는 방법을 보여주는 순서도이다.
도 12는 일부 실시 예들에 따라, 최적화 프로세스를 위하여 리프레셔(refresher)가 트리거되는 예시적인 시나리오(scenario)를 보여준다.
도 13은 일부 실시 예들에 따라, 제조 산업에서의 사용 사례를 보여주는 블록도이다.
도 14는 일부 실시 예들에 따라, 분산 이종 컴퓨터 시스템의 실시간 구동 시스템을 보여주는 순서도이다.
도 15는 본 발명의 실시 예에 따른 최적화된 잡 성능을 위하여 동적으로 자원을 할당하는 분산 이종 컴퓨터 시스템 및 방법을 적용한 컴퓨팅 환경을 보여준다.Advantages, features and other aspects of specific embodiments of the present invention may become more apparent with reference to the following detailed description and drawings.
1 shows a block diagram of a computer node with application processes connected to an optimization process in a related technical field.
Figure 2 shows a block diagram of a computer node with separate application processes and optimization processes, according to some embodiments.
3 shows a distributed heterogeneous computer system including a plurality of computer nodes that dynamically reallocate resources for optimized job performance, according to some embodiments.
Figure 4 shows a block diagram of a computer node with separate application and optimization layers to achieve extensive optimization, according to some embodiments.
Figure 5 is a flowchart showing a method of dynamically reallocating resources for optimized job performance in a distributed heterogeneous computer system, according to some embodiments.
FIG. 6 is a conceptual diagram showing various operations of an application injector that calls jobs between different computer nodes, according to some embodiments.
Figure 7 is a conceptual diagram showing various operations included in the optimization process/optimization layer according to an embodiment of the present invention.
Figure 8 shows a block diagram of a collector for dynamically collecting workload values from each computer node, according to some embodiments.
Figure 9A shows an example of an optimization process for obtaining a data distribution vector for a completion task node, according to some embodiments.
FIG. 9B shows an example of a generalization process for converting a data variance vector to a normal vector, according to some embodiments.
10 shows a job informer/task information repository that maintains information storage for different tasks running in a distributed heterogeneous system, according to some embodiments.
11 is a flowchart showing a method of generating task information for an unknown task identifier, according to some embodiments.
12 shows an example scenario in which a refresher is triggered for an optimization process, according to some embodiments.
13 is a block diagram showing a use case in the manufacturing industry, according to some embodiments.
14 is a flowchart showing a real-time operation system of a distributed heterogeneous computer system, according to some embodiments.
Figure 15 shows a computing environment applying a distributed heterogeneous computer system and method for dynamically allocating resources for optimized job performance according to an embodiment of the present invention.
본 발명의 다양한 실시 예들은 첨부된 도면을 참조하여 상세하게 설명될 것이다. 이하의 상세한 설명에서, 상세한 구성 및 요소들과 같은 구체적인 설명들은 단순히 본 발명의 실시 예들의 전반적인 이해를 가능하게 하기 위하여 제공된다. 그러므로 본문에 기재된 실시 예들은 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 다양하게 변형될 수 있음은 당업자에 의해 잘 이해될 것이다. 더욱이 잘 알려진 기능들 및 구조들은 설명의 편의 및 명확성을 위하여 생략될 것이다.Various embodiments of the present invention will be described in detail with reference to the attached drawings. In the following detailed description, specific descriptions, such as detailed configurations and elements, are provided simply to enable a general understanding of embodiments of the present invention. Therefore, it will be well understood by those skilled in the art that the embodiments described in the text can be modified in various ways without departing from the technical spirit and scope of the present invention. Furthermore, well-known functions and structures will be omitted for convenience and clarity of explanation.
또한, 본문에 기재된 다양한 실시 예들은 반드시 상호 배타적이지 않으며, 이러한 실시 예들은 하나 또는 그 이상의 실시 예들과 조합되어 다른 새로운 실시 예들을 형성할 수 있다. 본문에서, "또는"의 용어는, 다르게 정의되지 않는 한, 비-배타적(non-exclusive) or를 가리킨다. 본문에서 사용되는 예시들은 단순히 당업자가 실시 예들을 구현하는 방법을 이해하기 위한 것으로 간주된다. 따라서 예시들은 실시 예들의 범위에 한정되는 것으로 간주되지 않을 수 있다.Additionally, the various embodiments described in the text are not necessarily mutually exclusive, and these embodiments may be combined with one or more embodiments to form other new embodiments. In the text, the term “or” refers to the non-exclusive or, unless otherwise defined. The examples used in the text are considered simply to help those skilled in the art understand how to implement the embodiments. Accordingly, the examples should not be considered limiting to the scope of the embodiments.
본 발명이 속하는 기술 분야의 일반적인 것으로써, 실시 예들은 기능 설명된 기능 또는 기능들을 수행하는 블록들의 용어들로 설명되고, 도시된다. 유닛들 또는 모듈들 등으로 본문에서 지칭되는 이러한 블록들은 로직 게이트, 집적 회로, 마이크로프로세서, 마이크로 컨트롤러, 메모리 회로, 수동 전자 소자, 능동 전자 소자, 광학 소자, 하드웨어 회로, 등과 같은 아날로그 또는 디지털 회로들에 의해 물리적으로 구현될 수 있고, 펌웨어 또는 소프트웨어에 의해 선택적으로 구동될 수 있다. 예를 들어, 회로들은 하나 또는 그 이상의 반도체 칩들 또는 인쇄 회로 기판 등과 같은 기판 지지체 상에 실장될 수 있다. 블록을 구성하는 회로들은 전용 하드웨어 또는 프로세서(하나 또는 그 이상의 프로그램된 마이크로 프로세서 및 연관된 회로), 또는 전용 하드웨어의 조합에 의해 구현되어 블록의 일부 기능을 수행하고, 프로세서는 블록의 다른 기능들을 수행할 수 있다. 실시 예들의 각 블록은 본 발명의 범위로부터의 벗어남 없이 둘 또는 그 이상의 통신하는 별개의 블록들의 블록들로 물리적으로 구분될 수 있다. 마찬가지로, 실시 예들의 블록들은 본 발명의 범위로부터의 벗어남 없이 좀 더 복잡한 블록들로 물리적으로 조합될 수 있다. As is common in the technical field to which the present invention pertains, embodiments are described and illustrated in terms of the described function or blocks that perform the functions. These blocks, referred to herein as units or modules, are analog or digital circuits such as logic gates, integrated circuits, microprocessors, microcontrollers, memory circuits, passive electronic devices, active electronic devices, optical devices, hardware circuits, etc. It can be physically implemented and can be selectively driven by firmware or software. For example, circuits may be mounted on a substrate support such as one or more semiconductor chips or a printed circuit board. The circuits that make up the block are implemented by dedicated hardware or processors (one or more programmed microprocessors and associated circuits), or a combination of dedicated hardware to perform some functions of the block, and the processor performs other functions of the block. You can. Each block of the embodiments may be physically divided into two or more communicating distinct blocks without departing from the scope of the present invention. Likewise, the blocks of the embodiments may be physically combined into more complex blocks without departing from the scope of the invention.
따라서, 실시 예들은 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템에서 최적화된 잡 성능을 위하여 자원을 동적으로 재할당하는 장치를 제공할 수 있다. 장치는 복수의 컴퓨터 노드들 중 적어도 하나의 컴퓨터 노드에서 수행될 적어도 하나의 잡을 호출하도록 구성되는 애플리케이션 인젝터를 포함할 수 있다. 또한, 장치는 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하도록 구성되는 콜렉터(collector)를 포함할 수 있다. 또한, 장치는 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하도록 구성되는 잡 인포머(job informer)를 포함할 수 있다. 또한, 장치는 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하도록 구성되는 잡 옵티마이저(job optimizer)를 포함할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행할 데이터의 총량을 정의할 수 있다.Accordingly, embodiments may provide an apparatus for dynamically reallocating resources for optimized job performance in a distributed heterogeneous computer system including a plurality of computer nodes. The apparatus may include an application injector configured to invoke at least one job to be performed on at least one computer node of the plurality of computer nodes. Additionally, the device may include a collector configured to dynamically collect workload values from each of the computer nodes. Additionally, the device may include a job informer configured to determine known and unknown jobs in each of the computer nodes. Additionally, the device may include a job optimizer configured to determine a data distribution vector based on known and unknown jobs and workload values in each of the computer nodes. The data distribution vector can define the total amount of data to be distributed across a plurality of nodes to perform at least one job.
종래의 시스템들 및 방법들과 달리, 제안된 방법 및 시스템은 좀 더 복잡한 비선형 최적화 기법들을 사용할 수 있도록 애플리케이션 프로세스 및 최적화 프로세스를 분리시켜 컴퓨터 노드들의 광범위한 최적화를 달성할 수 있다. 또한 제안된 방법 및 시스템은 횡적으로, 뿐만 아니라, 종적으로 확장될 수 있다. 이는 내장된 장치로부터 완성된 계층 구조의 컴퓨터 클러스터로 확장하는 다양한 컴퓨터 노드들을 사용하는 것을 가능하게 할 수 있다. Unlike conventional systems and methods, the proposed method and system can achieve extensive optimization of computer nodes by separating the application process and optimization process so that more complex nonlinear optimization techniques can be used. Additionally, the proposed method and system can be expanded horizontally as well as vertically. This may make it possible to use a variety of computer nodes to expand from an embedded device to a complete hierarchical computer cluster.
종래의 시스템들 및 방법들과 달리, 본 발명의 시스템 및 방법은 애플리케이션 개발 및 최적화 프로세스를 분리시킬 수 있다. 즉, 애플리케이션 개발자들이 최적화 태스크로부터 자유로워지는 것이 가능할 수 있으며, 이는 빠른 업데이트를 가능하게 한다. 최적화 태스크가 독립적으로 수행되고, 모든 컴퓨터 노드들(예를 들어, 도 3의 100a~100n)의 완전한 가시성(complete visibility)를 갖기 때문에, 광범위한 최적화 값이 달성될 수 있고, 그로 인하여 개별적인 컴퓨터 노드들의 신뢰성이 향상되고, 비용 절감의 향상이 보장된다.Unlike conventional systems and methods, the system and method of the present invention can separate the application development and optimization processes. That is, it may be possible to free application developers from optimization tasks, allowing for faster updates. Because the optimization task is performed independently and with complete visibility of all computer nodes (e.g., 100a to 100n in Figure 3), a wide range of optimization values can be achieved, thereby reducing the visibility of individual computer nodes. Reliability is improved and cost savings are guaranteed.
이하의 도면들, 특히 도 1 내지 도 15를 참조하면, 본 발명의 실시 예들이 도시된다. 이하의 도면들에서, 유사한 참조 기호들은 도면들 전체에 걸쳐 일괄적으로 대응하는 특징들을 가리킨다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring to the following drawings, particularly FIGS. 1 to 15, embodiments of the present invention are shown. In the following drawings, similar reference symbols collectively indicate corresponding features throughout the drawings.
도 1은 일부 연관된 기술 분야에서, 애플리케이션 프로세스가 최적화 프로세스와 연결된 컴퓨터 노드(100)의 블록도를 보여준다. 종래의 방법들에서, 개발자는 최적화 프로세스 및 데이터 분산 기법(예를 들어, OpenVX)를 작성해야 한다. 데이터 분산은 애플리케이션 프로세스가 구동 중인 프로세서에 최적화 프로세스가 첨부되는 종래의 방법들을 사용하여 수행될 수 있다. 그러므로, 복잡한 최적화 기법들은 구동될 수 없으며, 보조-최적화 분산 벡터(sub-optimal distribution vector)가 충분해야 한다. 또한, 종래의 방법들은 다른 활성 태스크들 및 컴퓨터 노드(100)의 적은 가시성(less visibility)을 포함한다. 또한, 종래의 방법들은 멀티-컴퓨터 클러스터 환경(예를 들어, Hadoop cluster)에서 확장되지 않으며, 입력/출력(I/O) 집중 태스크(intensive task), 랜덤 메모리 액세스 등과 같은 태스크들의 일부 형태를 관리할 수 없다.1 shows a block diagram of a
인더스트리 4.0(industry 4.0)은 가시적으로 스마트하고 좀 더 자동화된 장비를 포함한다. 결과적으로, 동작 수행 메커니즘 및 자동화된 의사 결정에서의 활용을 보장하기 위하여, 현재 장치에 의해 생성되는 ���은 감각 데이터 획득(huge sensory data getting)은 실시간으로 많은 데이터 프로세싱을 요구한다. 즉, 거대한 데이터 센터들, 특히, 제조업 분야에서의 요구는 앞으로 계속 증가할 것이다. 새로운 데이터 센터를 설치하는 것은 앞서 언급된 것들과 함께 다양한 문제점들을 직면한다. 그러나 에너지 ���적화, 향상�� 신뢰성, 및 지속적인 성능 업데이트 등과 같은 문제점들은 데이터 센터들 및 제조 제작의 전체적인 운영 비용에 큰 영향을 가질 것이다. 제조사들이 1일 하나의 장비당 1 달러의 비용을 절약하도록 관리하더라도, 1년에 수백만 달러의 비용이 절약될 수 있다. 이를 고려하면, 제조 설비 비용을 제외하고, 설비 중단으로 인한 페널티 및 제조의 유지 비용은 매우 크다.Industry 4.0 includes visibly smarter and more automated equipment. As a result, getting massive sensory data generated by current devices requires a lot of data processing in real time to ensure utilization in action performance mechanisms and automated decision making. In other words, the demand for large data centers, especially in the manufacturing sector, will continue to increase in the future. Setting up a new data center faces a variety of challenges in addition to those mentioned previously. However, issues such as energy optimization, improved reliability, and continuous performance updates will have a significant impact on the overall operating costs of data centers and manufacturing. Even if manufacturers manage to save just $1 per device per day, this could result in savings of millions of dollars per year. Considering this, excluding manufacturing facility costs, the penalty due to facility outage and the maintenance costs of manufacturing are very large.
도 2는 일부 실시 예들에 따라, 애플리케이션 프로세스 및 최적화 프로세스가 분리된 컴퓨터 노드(100)의 블록도를 보여준다. 도 2에 도시된 바와 같이, 애플리케이션 프로세스 및 분산 기법들(distribution techniques)은 분리된다. 그러므로 애플리케이션 개발자 또는 애플리케이션 프로세스 개발자는 데이터 분산 벡터를 고려하지 않아도 된다. 애플리케이션 프로세스와 연관된 애플리케이션은 단순히 태스크들에 대한 데이터 분산 벡터를 문의(query)할 수 있다. 그러나, 데이터 분산은 별도로 수행될 수 있고, 복잡한 비선형 최적화들(complex non-linear optimizations)은 시스템이 안정화되도록 사용될 수 있다.Figure 2 shows a block diagram of a
애플리케이션 프로세스 및 데이터 분산 기법들이 분리되기 때문에, 애플리케이션 프로세스 및 데이터 분산 기법들이 모든 다른 컴퓨터 노드들 뿐만 아니라 모든 다른 활성 태스크들의 좀 더 많은 가시성(more visibility)을 가질 수 있다. 도 1의 컴퓨터 노드(100)를 사용하는 종래의 시스템들 및 방법들과 달리, 도 2의 컴퓨터 노드(100)를 사용하는 제안된 방법은 멀티-컴퓨터 클러스터 환경으로 확장하기 용이할 수 있고, I/O 집중 태스크, 랜덤 메모리 액세스 등과 같은 모든 종류의 태스크들을 관리할 수 있다. Because the application process and data distribution techniques are separated, the application process and data distribution techniques can have more visibility of all other computer nodes as well as all other active tasks. Unlike conventional systems and methods using the
종래의 시스템들 및 방법들과 달리, 제안된 시스템 및 방법은 컴퓨터 노드(100)의 광범위한 스케일에서 애플리케이션 계층들로부터 생성된 태스크들을 분산시킬 수 있고, 이로 인하여, 요구되는 최소 성능에 영향을 미치지 않고, 또한 태스크들의 분산에 포함된 비용을 최소화하면서, 신뢰성이 향상될 수 있다.Unlike conventional systems and methods, the proposed system and method can distribute tasks generated from application layers over a broad scale of
종래의 시스템들 및 방법들은 애플리케이션 개발(즉, 기술) 및 최적화 프로세스 사이에서 고정된 연결(static linkage)을 제공할 수 있다. 애플리케이션 개발자들은 최적화들과 관계될 수 있다. 다른 종래의 시스템들 및 방법들에서, 일부 설계들은 이종 컴퓨팅을 위한 향상된 컴파일러와 같이 제안된다. 이러한 종류의 설계들에서, 애플리케이션들은 컴파일러가 최적화를 위하여 동일한 프로세스를 사용하나, 컴파일러는 OpenCL(Open Computing Language)로 특정되는 방식에서 개발되었다. 유사하게, 다른 설계들은 이종 컴퓨팅을 위한 설계 프레임워크와 같이 제안된다. 이러한 종류의 설계 프레임워크에서, 설계 프레임워크를 고수하지 않는 애플리케이션은 최적화로부터의 이점을 얻을 수 없다.Conventional systems and methods can provide a static linkage between the application development (i.e., technology) and optimization processes. Application developers may be concerned with optimizations. In other conventional systems and methods, some designs are proposed such as an improved compiler for heterogeneous computing. In these types of designs, applications are developed in such a way that the compiler uses the same process for optimization, but the compiler is specified as Open Computing Language (OpenCL). Similarly, other designs are proposed such as design frameworks for heterogeneous computing. In this kind of design framework, applications that do not adhere to the design framework cannot benefit from optimization.
종래 시스템들 및 방법들의 문제점은 애플리케이션 개발 및 최적화 프로세스 구성 사이의 고정된 연결에 기반된다. 이러한 문제점은 종래의 시스템들 및 방법들의 사용을 제한한다. 그러나 개발자들은 시스템 레벨 가시성(개발자들의 애플리케이션과 함께 시스템에서 구동되는 다른 애플리케이션들)을 포함하지 않는다. 그러므로, 최적화는 애플리케이션에 특화된다. 그러나 제안된 시스템 및 방법에서, 애플리케이션 프로세스 및 최적화 프로세스는 서로 분리될 수 있다. 또한, 개발자들은 완전한 시스템 레벨 가시성(complete system level visibility)을 가질 수 있다. 즉, 애플리케이션 개발자들은 데이터 분산 벡터를 고려하지 않아도 된다. The problem with prior art systems and methods is based on a fixed connection between application development and optimization process configuration. These problems limit the use of conventional systems and methods. However, developers do not include system-level visibility (of other applications running on the system along with their application). Therefore, optimization is application specific. However, in the proposed system and method, the application process and optimization process can be separated from each other. Additionally, developers can have complete system level visibility. In other words, application developers do not need to consider data distribution vectors.
도 3은 일부 실시 예들에 따라, 최적화된 잡 성능을 위하여 자원들을 동적으로 재할당하기 위한 복수의 컴퓨터 노드들(100a~100n)(본문에서 컴퓨터 노드들(100)으로 지칭될 수 있음)을 포함하는 분산 이종 컴퓨터 시스템(300)을 보여준다. 일부 실시 예들에서, 분산 이종 컴퓨터 시스템(300)은 복수의 컴퓨터 노드들(100a~100n)을 포함할 수 있다. 컴퓨터 노드들(100) 각각은 네트워크 인터페이스를 통해 네트워크(301)와 기능적으로 연결되어, 컴퓨터 노드들(100) 사이의 데이터 통신, 예를 들어, 컴퓨터 노드(100a) 및 컴퓨터 노드(100b) 사이의 데이터 통신을 제공할 수 있다.3 includes a plurality of
컴퓨터 노드들(100) 각각은 애플리케이션 계층(110)(예를 들어, 110a, 110b, 110n) 및 최적화 계층(120)(예를 들어, 120a, 120b, 120n)을 포함할 수 있다. 애플리케이션 계층(110)(또는 애플리케이션 프로세스)은 복수의 태스크들에 대한 데이터 분산 벡터(data distribution vector)를 문의(query)할 수 있다. 최적화 계층(120)은 별도로 데이터 분산을 처리할 수 있다. 애플리케이션 계층(110) 및 최적화 계층(120)의 상세한 기능들은 도 4를 참조하여 더욱 상세하게 설명된다.Each of the
도 4는 일부 실시 예들에 따라, 애플리케이션 계층(110) 및 최적화 계층(120)이 분리되어 광범위한 최적화를 달성하는 컴퓨터 노드(100)의 블록도를 보여준다. 일부 실시 예들에서, 컴퓨터 노드(100)는 애플리케이션 계층(110) 및 최적화 계층(120)을 포함할 수 있다. 애플리케이션 계층(110)은 애플리케이션 특정 구성들(111)(application specific components) 및 애플리케이션 인젝터(112)(AI; application injector)를 포함할 수 있다. 최적화 계층(120)은 콜렉터(121), 잡 옵티마이저(122), 리프레셔(123), 잡 인포머(124), 룩-업 테이블(LT) 매니저(125), 쿼리 인터페이스(126), 및 LT(127)를 포함할 수 있다.Figure 4 shows a block diagram of a
애플리케이션 특정 구성들(111)은 AI(112)와 데이터 로드 및 태스크 종류(task type)를 공유하도록 구성될 수 있다. 일부 실시 예들에서, AI(112)는 컴퓨터 노드(110)에서 수행될 적어도 하나의 잡(at least one job to be performed)을 호출하도록 구성될 수 있다. 일부 예들에서, AI(112)는 애플리케이션 특정 구성들(111) 및 최적화 계층(120) 사이의 커넥터로써 동작하는 매우 가벼운 무게의 구성(very light weight component)일 수 있다.Application-
태스크 종류 및 데이터 로드를 수신한 이후에, AI(112)는 최적화 계층(120)으로 문의하여 데이터 분산 벡터를 획득할 수 있다. 데이터 분산 벡터에 따라, 태스크는 분산 벡터의 데이터 로드들과 함께 다른 컴퓨터 노드들(100) 사이에서 스케줄될 수 있다. 그러나 AI(112)에 의해 발생되는 오버헤드는 AI(112)가 O(1) 시간 동안 구동하므로(the AI 112 runs in O(1) time.), 무시될 수 있다.After receiving the task type and data load,
최적화 계층(120)의 구성들은 이하에서 설명된다.The configurations of the
콜렉터(121)는 컴퓨터 노드들(100) 각각에서 워크로드 값을 동적으로 수집하도록 구성될 수 있다. 일부 실시 예들에서, 콜렉터(121)는 노드마다 도 3의 분산 이종 컴퓨터 시스템(300)의 수집 파라미터들(성능과 연관된 파라미터들, 신뢰성과 연관된 파라미터들, 에너지와 연관된 파라미터들 등)의 태스크를 기본적으로 처리할 수 있다. 또한, 분산 이종 컴퓨터 시스템(300)의 파라미터들은 고정된 것 및 동적인 것 등과 같이 2개의 카테고리들로 분류될 수 있다. 고정 및 동적 카테고리들의 상세한 설명은 도 8을 참조하여 설명될 것이다. 또한, 콜렉터(121)는 특정 사용-사례 시나리오들에서 특정 컴퓨터 노드(100)로 확장될 수 있는 개념 계층(abstraction)을 기본적으로 정의할 수 있다.The
리프레셔(1223)는 최적화 계층(120)의 활성화를 트리거하도록 구성될 수 있다. 또한, 리프레셔(123)는 콜렉터(121)를 트리거하여 분산 이종 컴퓨터 시스템(300)의 파라미터들을 업데이트할 수 있다. 잡 옵티마이저(122)는 잡 인포머(124)(또는 태스크 정보 저장소)에 리스팅된 전체 태스크들에 대하여 수집된 파라미터들을 기반으로 태스크들을 최적화하도록 구성될 수 있다. 일부 예들에서, 활성화(activation)는 주기적(periodic) 또는 비주기적(non-periodic)인 사용-사례 시나리오에 기반된 외부 트리거 신호일 수 있다. Refresher 1223 may be configured to trigger activation of
잡 인포머(124)는 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하도록 구성될 수 있다. 또한, 잡 인포머(124)는 분산 이종 컴퓨터 시스템(300)에서 구동하는 태스크들에 대한 지식 베이스(knowledge-base)를 유지하고 저장하도록 구성될 수 있다. 일부 예들에서, 지식 베이스는 분산 이종 컴퓨터 시스템(300)이 설치되기 이전에 수동으로 생성될 수 있다. 일부 다른 예들에서, 지식 베이스는 일정 시간의 기간 동안 자동으로 생성될 수 있다. 더욱이, 잡 인포머(124)는 시간 복잡도, 속성(예를 들어, 메모리 집중, 프로세서 집중, 또는 I/O 집중), 종류(예를 들어, 중요(critical) 또는 일반(normal)), 완료 예상 시간 등과 같은 태스크들과 연관된 정보를 저장하도록 구성될 수 있다. 잡 인포머(124)에 리스팅된 각 태스크는 유일한 태스크 식별자(unique task identifier)가 주어진다.
또한, 잡 옵티마이저(122)는 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들, 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하도록 구성될 수 있다. 데이터 분산 벡터는 다른 컴퓨터 노드들(100)로 분산되어 적어도 하나의 잡을 수행할 데이터의 크기를 정의할 수 있다. 일부 실시 예들에서, 워크로드 값은 성능 메트릭(performance metric), 신뢰성 메트릭(reliability metric), 추가 팩터들(extra factors), 데이터 분산율(data distribution ratio), 및 그것들의 조합의 함수(function)일 수 있다.Additionally, the
일부 예들에서, 잡 옵티마이저(122)는 태스크 수행 시간 및 소모되는 에너지를 최적화하기 위하여 구체적으로 설계된 수학적 모델(mathematical model specifically designed)을 기반으로 잡들/태스크들을 최적화할 수 있다. 선택된 수학적 모델은 분산 이종 컴퓨터 시스템(300)에 대한 사용-사례 시나리오(use-case scenario)에 기반된 선형, 비선형, 확률적, 또는 그것들의 조합(예를 들어, 하이브리드 모델)일 수 있다. 또한, 잡 옵티마이저(122)는 콜렉터(121)로부터 수집된 파라미터 및 잡 인포머(124)에 저장된 정보를 입력으로써 수신할 수 있다. 또한, 잡 옵티마이저(122)는 비용-함수 모델(cost-function model)에 적용 가능한 단순화 방식(simplex method), 내점 방식(Interior-point method), 및 기울기 강하/상승 방식(gradient descent/ascent method)과 같은 최적화 기법들을 실행할 수 있다. 획득된 결과는 잡 인포머(124)에 리스팅된 태스크들 각각에 대한 데이터 분산 벡터일 수 있다. 또한 데이터 분산 벡터는 LT(127)에 저장되고, 캐싱될 수 있다.In some examples,
LT(127)의 각 행 엔트리는 잡 인포머(124)에 유지되는 유일한 태스크 식별자와 연관될 수 있고, 대응하는 플로팅 엔트리들(corresponding floating entries)은 데이터 분산 벡터를 정의할 수 있다. 각 행의 플로팅 엔트리들의 합은 1.0과 같다. 태스크에 대한 컴퓨터 노드(100)의 더 높은 플로팅 값은 주어진 컴퓨터 노드(100)가 그 때의 태스크에 대한 더 높은 데이터를 관리하는데 좀 더 적��한 것�� 의미��� 수 있다. ���상 ���료 시간 엔트리는 데이터 크기당 단위로 태스크들에 대한 이론적인 값일 수 있다. 주어진 데이터 크기에 대한 태스크는 데이터 크기에 대한 시간 내에 완료되는 것이 예상될 수 있다. LT(127)는 실제 구동 시간들 및 이론상의 추정된 시간들 사이의 차이(variance)를 유지하도록 구성될 수 있다. 최대 값에 대응하는 차이는 태스크를 구동하는 애플리케이션에 의해 보고될 수 있다. 이하의 표 1은 예시적인 룩업 테이블을 보여준다.Each row entry in
일부 실시 예들에서, 장치/컴퓨터 노드(100)는 LT(127)에 데이터 분산 벡터를 저장하는, 적어도 하나의 컴퓨터 노드(100)에서 룩업 테이블 매니저(125)를 포함할 수 있다. LT 매니저(125)는 LT(127)를 유지하고, 데이터 분산 벡터를 회수하기 위하여 AI(112)로 쿼리 인터페이스(126)를 제공하도록 구성될 수 있다. LT 매니저(125)는 LT(127)의 컨텐츠를 빠르게 색인하고 회수하기 위한 해시 기법(hashing technique)을 정의할 수 있다. LT 매니저(125)는 AI(112)에 의해 구동되는 태스크들에 대한 데이터 분산 벡터를 AI(112)가 문의하고 회수하는 인터페이스를 제공할 수 있다. AI(112)의 기능은 LT(127)로부터 특정 태스크 식별자에 대한 데이터 분산 벡터를 페치(fetch)하도록 의도될 수 있다. 포함된 시간 복��성은 O(1)이다.In some embodiments, device/
종래의 시스템들 및 방법들과 달리, 제안된 최적화 프로세스는 AI(112)를 독립적으로 작동할 수 있다. AI(112)는 최적화 계층(120)과 통신하는 기법을 사용하여 설계될 수 있다. 통신 기법(communication technique)은 소켓 기반(socket based)의 태스크들간 통신으로의 프로세스간 통신(a socket based, an inter process communication to an inter task communication)일 수 있다. 이는 AI(112)로부터 최적화 계층(120)을 분리시킬 수 있다. 즉, 어떤 언어를 사용하는 어느 애플리케이션 설계라도 최적화 계층(120)의 이점을 활용할 수 있다. 이는 태스크 최적화로부터 애플리케이션 개발자들을 끌어낼 수 있다. 대신에, 그들은 애플리케이션 개발에 좀 더 집중할 수 있고, 이는 전체적인 개발 시간의 단축을 야기한다.Unlike conventional systems and methods, the proposed optimization process can operate
도 5는 본 발명의 실시 예들에 따른 분산 이종 컴퓨터 시스템(300)에서 최적화된 잡 성능을 위하여 자원을 재할당하는 방법을 보여주는 순서도(500)이다. 502 동작에서, 방법은 컴퓨터 노드(100)에서 수행될 적어도 하나의 잡을 호출(invoke)하는 것을 포함할 수 있다. 일부 실시 예들에서, 방법은 AI(112)가 컴퓨터 노드(100)에서 수행될 적어도 하나의 잡을 호출하도록 할 수 있다. 일부 실시 예들에서, 복수의 컴퓨터 노드들(100a~100n) 중 컴퓨터 노드(100a)에서 수행될 적어도 하나의 잡이 호출될 수 있다. 일부 다른 예들에서, 복수의 컴퓨터 노드들(100a~100n) 중 컴퓨터 노드(100b)에서 수행될 적어도 하나의 잡이 호출될 수 있다.Figure 5 is a
504 동작에서, 방법은 컴퓨터 노드들(100) 각각에서 워크로드 값(workload value)을 동적으로 수집하는 것을 포함할 수 있다. 방법은 콜렉터(121)가 컴퓨터 노드들(100) 각각에서 워크로드 값을 동적으로 수집하도록 할 수 있다. 동작 506에서, 방법은 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하도록 할 수 있다. At
동작 508에서, 방법은 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하는 것을 포함할 수 있다. 방법은 잡 옵티마이저(122)가 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하도록 할 수 있다. 일부 실시 예들에서, 데이터 분산 벡터는 복수의 컴퓨터 노드들(110a~100n)로 분산되어 적어도 하나의 잡을 수행하는 데이터의 총량을 정의할 수 있다.At
510 동작에서, 방법은 데이터 분산 벡터를 저장하는 것을 포함할 수 있다. 방법은 LT(127)가 데이터 분산 벡터를 저장하도록 할 수 있다. 512 동작에서, 방법은 분산 이종 컴퓨터 시스템(300)의 컴퓨터 노드들(100) 각각에서 적어도 하나의 잡의 성능을 주기적으로 관리하는 것(예를 들어, 최적화하는 것)을 포함할 수 있다. 방법은 리프레셔(123)가 분산 이종 컴퓨터 시스템(300)의 컴퓨터 노드들(100) 각각에서 적어도 하나의 잡의 성능을 주기적으로 관리하도록(예를 들어, 최적화하도록) 할 수 있다. At
방법 및 순서도(500)에서의 다양한 동작들, 행동들, 블록들, 단계들 등은 도시된 순서, 또는 다른 순서 또는 동시에 수행될 수 있다. 또한, 일부 실시 예들에서, 동작들, 행동들, 블록들, 단계들 등의 일부는 본 발명의 범위로부터의 벗어남 없이 생략되거나, 추가되거나, 변형되거나, 또는 스킵�� 수 있다.The various operations, actions, blocks, steps, etc. in method and
도 6은 본 발명의 실시 예들에 따른 다른 컴퓨터 노드들(100) 사이에서 잡을 호출하는 AI(122)의 다양한 동작을 보여주는 개��도(600)이다.FIG. 6 is a conceptual diagram 600 showing various operations of the
602 동작에서, 방법은 데이터 정보 및 태스크 정보를 포함하는 태스크를 호출하는 것을 포함할 수 있다. 방법은 AI(112)가 데이터 정보 및 태스크 정보를 포함하는 태스크를 호출하도록 할 수 있다. 604 동작에서, 방법은 특정 태스크 식별자에 대한 데이터 분산 벡터에 대하여 LT 매니저(125)로 문의하는 것을 포함할 수 있다. 방법은 AI(112)가 특정 태스크 식별자에 대한 데이터 분산 벡터에 대하여 LT 매니저(125)로 문의하도록 할 수 있다.At
606 동작에서, 방법은 대응하는 태스크 식별자에 대한 데이터 분산 벡터를 LT 매니저(125)로부터 수신하는 것을 포함할 수 있다. 방법은 AI(112)가 대응하는 태스크 식별자에 대한 데이터 분산 벡터를 LT 매니저(125)로부터 수신하도록 할 수 있다. 608 동작에서, 방법은 데이터 분산 벡터에 따라 태스크를 스케줄링하는 것을 포함할 수 있다. 방법은 AI(112)가 데이터 분산 벡터에 따라 태스크를 스케줄링하도록 할 수 있다.At
610 동작에서, 방법은 최적화를 위한 증가 데이터로써 역할을 할 수 있는 LT 매니저(125)로 태스크에 의한 바이트-데이터 당 소모 시간의 차이(the variance time-taken per byte-data by the task)를 전송할 수 있다. 방법은 AI(112)가 최적화를 위한 증가 데이터로써 역할을 할 수 있는 LT 매니저(125)로 태스크에 의한 바이트-데이터 당 소모 시간의 차이를 전송하도록 할 수 있다.In
방법 및 개념도(600)에서의 다양한 동작들, 행동들, 블록들, 단계들 등은 도시된 순서, 또는 다른 순서 또는 동시에 수행될 수 있다. 또한, 일부 실시 예들에서, 동작들, 행동들, 블록들, 단계들 등의 일부는 본 발명의 범위로부터의 벗어남 없이 생략되거나, 추가되거나, 변형되거나, 또는 스킵될 수 있다.Various operations, actions, blocks, steps, etc. in the method and conceptual diagram 600 may be performed in the order shown, in a different order, or simultaneously. Additionally, in some embodiments, some of the operations, actions, blocks, steps, etc. may be omitted, added, modified, or skipped without departing from the scope of the present invention.
도 7은 일부 실시 예들에 따른, 최적화 프로세스/최적화 계층(120)에 포함된 다양한 동작들을 보여주는 개념도(700)이다. 최적화 계층(120)은 분산 이종 컴퓨터 시스템(300)에서 오직 하나의 인스턴스를 구동할 수 있다. 또한, 최적화 계층(120)은 LT 매니저(125) 및 잡 옵티마이저(122)를 병렬로 트리거함으로써, 그것의 프로세스들을 시작할 수 있다. LT 매니저(125)는 쿼리 및 응답 서비스를 시작할 수 있고, AI(112)로부터 수신된 쿼리들을 들을 수 있다. 쿼리들은 이하에서 설명되는 종류들 중 하나일 수 있다.FIG. 7 is a conceptual diagram 700 showing various operations included in the optimization process/
데이터 분산 벡터 쿼리(Data distribution vector query): AI(112)는 특정 태스크 식별자에 대한 쿼리를 시작하여 최적화된 데이터 분산 벡터(optimized data distribution vector)를 획득할 수 있다. 또한, LT 매니저(125)는 데이터 분산 벡터를 LT(127)로부터 페치할 수 있다. 데이터 분산 벡터가 LT(127)에서 가용하지 않는(unavailable) 경우, LT(127)는 기본 분산 벡터(default distribution vector)로 응답할 수 있다. 일부 실시 예들에서, LT 매니저(125)에 의해 예상되는 수신된 데이터 분산 벡터 쿼리는 이하의 포맷을 가질 수 있다. Data distribution vector query :
Query Type="Data Distribution Vector", Task ID='1"Query Type="Data Distribution Vector", Task ID='1"
또한, 상술된 데이터 분산 벡터 쿼리를 수신할 때, LT 매니저(125)는 이하의 값으로 응답할 수 있다.Additionally, upon receiving the data distribution vector query described above,
Task ID="1", Task ID="1", Node1Node1 =0.2, =0.2, Node2Node2 =0.1, =0.1, Node3Node3 =0.3, =0.3, Node4Node4 =0.3, Node N=0.1, Expected Time=1.2=0.3, Node N=0.1, Expected Time=1.2
테이블 엔트리들은 LT(127) 엔트리들과 동일한 의미를 포함할 수 있다. 상술된 쿼리의 태스크 식별자 필드는 알려지지 않은 태스크(unknown task)을 지칭하는 NULL일 수 있다. Table entries may contain the same meaning as LT (127) entries. The task identifier field of the above-described query may be NULL, indicating an unknown task.
피드백 쿼리(Feedback query): AI(112)는 데이터 분산 벡터를 기반으로 태스크를 스케줄링한 이후에, 바이트 당 소모된 시간 차이(time-variance)를 LT 매니저(125)로 반환(return)할 수 있다. 또한, LT 매니저(125)는 수신된 값이 LT(127)에 현재 값보다 큰 경우에만, LT(127)로 정보를 업데이트할 수 있다. 예시적인 피드백 쿼리는 이하의 포맷을 가질 수 있다. Feedback query: After scheduling the task based on the data distribution vector, the
Query Type="Feedback", Task ID='1", Variance Report=0.02Query Type="Feedback", Task ID='1", Variance Report=0.02
피드백 쿼리를 수신할 때, 보고된 차이가 최대라면, LT 매니저(125)는 LT(127)의 차이 엔트리(variance entry)를 갱신할 수 있다. AI(112)는 LT 매니저(125)로부터 승인(acknowledgment)을 기다리지 않을 수 있다.Upon receiving the feedback query, if the reported difference is maximum,
셧다운 쿼리(Shutdown query): LT 매니저(125)는 외부 소스들(external sources)로부터 비동기 셧다운 쿼리(asynchronous shutdown query)를 수신할 수 있다. 셧다운 쿼리를 수신할 때, LT 매니저(125)는 셧다운 요청을 잡 옵티마이저(122)로 시작할 수 있다. Shutdown query: The
Query Type= "Query Type=" Shutdown" Shutdown"
최적화 계층(120)은 최적화의 태스크를 수행할 수 있다. 각 반복 동작 이후에, 최적화 계층(120)은 분산 이종 컴퓨터 시스템(300)으로 알려진 모든 태스크에 대한 데이터 분산 벡터를 출력할 수 있다. 이러한 데이터 분산은 다음 반복까지 유효한 것으로 가정될 것이다.The
콜렉터(121)의 상세한 설명은 도 8과 함께 설명될 것이다. 잡 옵티마이저(122)의 상세한 설명은 도 9a 및 도 9b와 함께 설명될 것이다. 잡 인포머(124)의 상세한 설명은 도 10과 함께 설명될 것이다. 리프레셔의 상세한 설명은 도 12와 함께 설명될 것이다.A detailed description of the
도 8은 일부 실시 예에 따른, 컴퓨터 노드들(100) 각각에서 워크로드 값을 동적으로 수집하는 콜렉터(121)의 블록도를 보여준다. 콜렉터(121)는 데이터 입력(121a), 고정 콜렉터(121b)(static collector), 동적 콜렉터(121c)(dynamic collector), 데이터 출력(121d), 내부 클럭(121e), 및 트리거 프로세서(121f)를 포함할 수 있다.FIG. 8 shows a block diagram of a
콜렉터(121)는 잡 옵티마이저(122)에 의해 요청되는 파라미터 값들을 수집하도록 구성될 수 있다. 고정 콜렉터(121b)는 고정 파라미터들(static parameters)(예를 들어, 최대 메모리 용량, 최대 프로세서 클럭 스피드 등)을 수집할 수 있다. 고정 파라미터들은 주기적으로 변화되지 않을 수 있거나 또는 하드웨어 업그레이드와 같은 외부 이벤트들에 의해 변화될 수 있다. 그러므로, 고정 콜렉터(121b)는 외부 이벤트가 발생하고, 트리거 이벤트가 트리거 프로세서(121f)를 통해 처리되는 경우에만 데이터 입력의 인터페이스를 통해 호출될 수 있다.The
동적 콜렉터(121c)는 데이터 입력(121a)의 인터페이스를 통해 주기적으로 수집될 수 있는 동적 파라미터들(dynamic parameters)(예를 들어, 메모리 사용량, 현재 프로세서 사용량, 및 프로세서 온도 등)를 수집하도록 구성될 수 있다. 동적 콜렉터(121c)는 내부 클럭(121e)에 응답하여 연속 데이터의 샘플링을 수행할 수 있다. 일부 실시 예들에서, 콜렉터(121)는 콜렉터(121)가 확장되는 방식, 예를 들어, 새로운 콜렉터들이 시스템 구성 업데이트를 기반으로 나중에 추가될 수 있는 방식으로 설계될 수 있다. 콜렉터(121)는 "키=밸류" 쌍(key=value pair)으로써 값을 (예를 들어, 데이터 데이터 출력(121d)의 인터페이스를 통해) 출력할 수 있다. 키(key)는 최적화 수학적 모델에 의해 고려되는 유일한 파라미터 명칭을 정의할 수 있다.The
도 9a는 일부 실시 예들에 따른, 완료 태스크 로드에 대한 데이터 분산 벡터를 획득하는 최적화 프로세스의 예를 보여준다. 잡 옵티마이저(122)는 콜렉터(121) 및 잡 인포머(124)로부터 데이터를 수신할 수 있고, 이후에, 최적화 기법(예를 들어, 선형 최적화 문제에서의 단순 방식)을 시작할 수 있다. 잡 옵티마이저(122)는 이하의 제안된 수학적 프레임워크를 기반으로 최적화 동작을 시작할 수 있다. Figure 9A shows an example of an optimization process to obtain a data distribution vector for a completed task load, according to some embodiments.
"D"는 m의 컴퓨터 노드들(100) 각각에 대한 상수 C={Cp}의 세트에 따른 수행 시간 "t"를 최소화하는 데이터 분산 벡터이다. "P"는 중요한 자원들에 관하여 서로 독립적이고 동시에 작용할 수 있는 함수일 수 있는 것으로 가정한다.“D” is a data distribution vector that minimizes the execution time “t” according to the set of constants C={C p } for each of
"P"의 값은 1~m의 범위를 가질 수 있고, p는 P의 최대 원소 개수를 갖는 K의 서브셋인 세트 KP의 원소일 수 있다. 또한 개별적인 수행 시간들 tp는 성능 메트릭스(performance metrics)(예를 들어, 컴퓨터 노드 스피드, 노드 데이터 용량 또는 Pp 적용성), 신뢰성 메트릭스(reliability metrics)(예를 들어, MTBF(mean time between failures) 사이의 평균 시간 또는 Rp), 추가 팩터들(예를 들어, 태스크 성질 메트릭스, 데이터 성질 메트릭스, 태스크-노드 선호도, 에너지 친화도, 또는 Ep), 및 Dk에 의해 지칭되는 데이터 분산율들(%)의 함수를 포함할 수 있다. 상술된 프레임워크는 단일 최소를 갖는, 즉, 야코비안 행렬이 양의 값을 갖는 경우에 유일 해가 존재하는 볼록면(convex)을 포함할 수 있다. 파라미터들(Cp, Pp, Rp)은 콜렉터(121)로부터 생성될 수 있다. 파라미터(Ep)는 잡 인포머(124)로부터 생성될 수 있다. 함수(f)는 (선형/비선형, 확률적, 또는 하이브리드일 수 있는) 최���화를 위하여 사용되는 수학적 모델을 설명할 수 있다. The value of "P" can range from 1 to m, and p can be an element of the set K P, which is a subset of K with the maximum number of elements of P. Additionally, individual execution times t p can be used to measure performance metrics (e.g., computer node speed, node data capacity, or P p applicability), reliability metrics (e.g., mean time between failures (MTBF), ) or R p ), additional factors (e.g., task nature metrics, data nature metrics, task-node affinity, energy affinity, or E p ), and data dispersion rates referred to by D k It may contain a function of (%). The framework described above may include a convex surface with a single minimum, i.e., a unique solution exists if the Jacobian matrix is positive. Parameters (C p , P p , R p ) may be generated from the
첫 번째 단계에서, 데이터 단위당 요구되는 다수의 플로팅 포인트 동작들(FLOPs, flops)이 태스크 복잡도(task complexity)를 기반으로 잡 인포머(124)에 리스팅된 모든 태스크들에 대하여 계산될 수 있다. 이러한 로드는 모든 태스크에 추가되어 총 로드(total load)를 획득할 수 있다. 총 로드(total load)는 현재 Cp, Pp, Rp, 및 Ep를 포함하는 상술된 수학적 프레임워크로 적용될 수 있다. 또한, 단순 방식, 그레디언트 감소/증가, 내점 방식 등과 같은 최적화 기법들은 수학적 모델을 해결하기 위하여 사용될 수 있다. 첫 전째 단계 이후에, 태스크는 총 로드에 대한 단일 데이터 분산 벡터를 남길 수 있다. In the first step, the number of floating point operations (FLOPs, flops) required per data unit can be calculated for all tasks listed in the
예를 들어, 도 9a에 도시된 바와 같이, 총 로드가 60 플롭/유닛(=20+30+10)인 것으로 가정하자. 콜렉터(121)의 값은 3개의 다른 콜렉터에 대하여 Matrix Collector "Ic" [2, 3, 1]로써 주어질 수 있다. 이종 컴퓨터 시스템은 4개의 다른 컴퓨터 노드들(100)을 포함하고, 모든 태스크들은 컴퓨터 노드들(100)로 동일한 관련성(same affinity)을 갖는 것으로 가정하자. 최적화 모델은 아래와 같이 간주될 수 있다. For example, assume the total load is 60 flops/unit (=20+30+10), as shown in Figure 9A. The value of
Time = 60 * Ic * A * cn1 + 60 * Ic * B * cn2 + 60 * Ic * C * cn3 + 60 * Ic * D * cn4Time = 60 * Ic * A * cn1 + 60 * Ic * B * cn2 + 60 * Ic * C * cn3 + 60 * Ic * D * cn4
상술된 수식에서, 각 컴퓨터 노드(100)에 대한 데이터 분산 값인 변수들 cn1, cn2, cn3, 및 cn4가 결정될 수 있다. (수학적 모델에 의존되는) 주어진 상수 A, B, C, 및 D에 대하여, 총 시간이 최소화될 수 있다. 예를 들어, 주어진 상수는 아래와 같을 수 있다. In the above-described equation, variables cn1, cn2, cn3, and cn4, which are data distribution values for each
A = Transpose [2.5, 3.5, 0.5] A = Transpose [2.5, 3.5, 0.5]
B = Transpose [0.8, 1.17, 0.167]B = Transpose [0.8, 1.17, 0.167]
C = Transpose [0.65, 0.875, 0.125]C = Transpose [0.65, 0.875, 0.125]
D = Transpose [1.25, 1.75, 0.25]D = Transpose [1.25, 1.75, 0.25]
또한, 단순 기법의 수행은 cn1, cn2, cn3, 및 cn4의 최적 값을 각각 0.1, 0.3, 0.4, 및 0.2가 되도록 할 수 있다.Additionally, performing the simple technique can cause the optimal values of cn1, cn2, cn3, and cn4 to be 0.1, 0.3, 0.4, and 0.2, respectively.
도 9b는 일부 실시 예들에 따른, 데이터 분산 벡터를 노멀 벡터로 변환하는 정규화 프로세스(normalization process)의 예를 보여준다. FIG. 9B shows an example of a normalization process for converting a data variance vector into a normal vector, according to some embodiments.
두 번째 단계에서, 잡 옵티마이저(122)는 총 로드의 데이터 분산 벡터를 사용하고, 잡 인포머(124)로 리스팅된 모든 태스크에 대한 총 로드를 정규화할 수 있다. 정규화는 전체 로드에 대한 태스크의 로드 기여도(load contribution)를 기반으로 수행되어 그것의 데이터 분산 벡터를 획득할 수 있다. 모든 태스크에 대하여 정규화된 벡터는 LT(127)에 업데이트될 수 있다.In a second step,
도 10은 일부 실시 예에 따른, 분산 이종 컴퓨터 시스템(300)에서 구동되는 다른 태스크들에 대한 정보 저장을 유지하는 잡 인포머/태스크 정보 저장(124)을 보여준다.FIG. 10 shows a job informer/
잡 인포머(124)는 태스크 식별자, 복잡성 및 최적화 모델 추가 파라미터들을 저장할 수 있다. 태스크 식별자는 태스크로 주어진 유일한 태스크 식별자(unique task identifier)일 수 있다. 복잡성(complexity)은 이하의 표기법들: 1, 2, e1, e2 등에 의해 정의될 수 있다. 이 때, 1 = O(n), 2 = O(n2), e1 = O(en), 및 e2 = O(en^2)이다. 추가 파라미터들은 데이터 액세스 동작들(data access behaviors), 컴퓨터 노드 선호도 등과 관련될 수 있다. 잡 인포머(124)는 요구되는 정보를 얻기 위하여 두 단계들을 포함할 수 있다.
사용자 구성 파일 로더(User Configuration File loader): 분산 이종 컴퓨터 시스템(300)의 사용자는 공통적으로 알려진 태스크와 연관된 정보를 포함하는 구성 파일(configuration file)을 제공할 수 있다. 또한 잡 인포머(124)는 그것의 정보 저장을 로드하고 업데이트할 수 있다. 구성 파일의 포맷은 구현 의존성(implementation dependent)이다. User Configuration File loader: A user of the distributed
자동 분석(Automatic Analysis): 자동 분석은 요구되는 정보를 모으고 알려지지 않은 태스크를 분석하는 것을 포함할 수 있고, 잡 인포머(124)에 정보를 갱신할 수 있다. 알려지지 않은 태스크들은 사용자가 어떤 정보를 제공하지 않는 그것들의 태스크들일 수 있다. LT 매니저(125)가 NULL로 채워진 "태스크 식별자"를 갖는 데이터 분산 쿼리를 수신할 때마다, LT 매니저(125)는 유일한 태스크 식별자를 알려지지 않은 태스크로 제공할 수 있고, 잡 인포머(125)를 트리거하여 알려지지 않은 태스크의 분석을 시작하고 요구되는 정보를 모으는 것을 시도할 수 있다. Automatic Analysis: Automatic analysis may include gathering required information and analyzing unknown tasks, and may update information in
도 11은 일부 실시 예들에 따른, 알려지지 않은 태스크 식별자에 대한 태스크 정보를 생성하는 방법을 보여주는 순서도(1100)이다. 1102 동작에서, 방법은 특정 태스크 식별자에 대한 데이터 분산 벡터를 위한 LT 매니저(125)로의 쿼리를 입력하는 것를 포함한다. 일부 실시 예들에서, 방법은 AI(112)가 특정 태스크 식별자에 대한 데이터 분산 벡터를 위하여 LT 매니저(125)로 쿼리를 입력하도록 할 수 있다.FIG. 11 is a
1104 동작에서, 방법은 요청된 태스크 식별자가 잡 인포머(124)에 존재하는지 또는 없는지 판별하는 것을 포함할 수 있다. 일부 실시 예들에서, 방법은 LT 매니저(125)가 요청된 태스크 식별자가 잡 인포머(124)에 존재하는지 또는 없는지 판별하도록 할 수 있다. 만약 태스크 식별자가 잡 인포머(124)에 없는 경우, 잡 인포머(124)는 자동 분석 프로세스(예를 들어, 교정(calibration))를 1106 동작에서, 시작할 수 있다. 잡 인포머(124)가 태스크 식별자가 존재하는 것으로 판별한 경우, 잡 인포머(124)는 요청된 태스크 정보를 1108 동작에서 반환(return)할 수 있다. At
1106 동작에서, 방법은 자동 분석 프로세스를 시작하여 태스크 식별자에 대한 정보를 판별하는 것을 포함할 수 있다. 정보가 특정 태스크 식별자에 대해 유효하지 않은 경우, 태스크 식별자는 교정 태그(calibration tag)로 마킹될 수 있다. 방법은 잡 인포머(124)가 자동 분석 프로세스를 시작하여 태스크 식별자에 대한 정보를 판별하도록 할 수 있다. 정보가 특정 태스크 식별자에 대해 유효하지 않은 경우, 태스크 식별자는 교정 태그로 마킹될 수 있다.At
1110 동작에서, 방법은 자동 분석을 사용하여 알려지지 않은 태스크들을 알려진 태스크들로 매핑하는 것 및 알려진 태스크 모델에 대한 데이터 분산 벡터를 반환하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 자동 분석을 사용하여 알려지지 않은 태스크들을 알려진 태스크들로 매핑하고, 알려진 태스크 모델에 대한 데이터 분산 벡터를 반환하도록 할 수 있다. In
1112 동작에서, 방법은 고정된 횟수의 반복 동작(the fixed number of iterations)에 대한 차이(variance)를 분석하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 자동 분석을 사용하여 고정된 횟수의 반복(the fixed number of iterations)에 대한 차이를 분석하도록 할 수 있다. 1114 동작에서, 방법은 고정된 횟수의 반복 동안 연산된 차이의 분석을 기반으로 평균 제곱 오차(MSE; mean square error)를 계산하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 고정된 횟수의 반복 동안 연산된 차이의 분석을 기반으로 평균 제곱 오차(MSE)를 연산하도록 할 수 있다. 또한, 동일한 프로세스는 모든 알려진 태스크 모델들과 함께 모든 알려지지 않은 태스크 식별자들에 대하여 반복될 수 있다. In
1116 동작에서, 방법은 알려지지 않은 태스크에 대한 최적의 결과(best fit result)로써 최소 평균 제곱 오차(minimum MSE)를 갖는 알려�� 태스크에 ���킹하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 알려지지 않은 태스크에 대한 최적의 결과(best fit result)로써 최소 평균 제곱 오차(minimum MSE)를 갖는 알려진 태스크에 마킹하도록 할 수 있다. 예를 들어, 최소의 평균 제곱 오차를 야기하는 태스크 모델이 알려지지 않은 태스크에 대한 최적의 태스크 모델로써 사용될 수 있다. In
1118 동작에서, 방법은 교정(calibration)을 수행하여 알려지지 않은 태스크 식별자에 대한 교정 태그를 제거하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 교정(calibration)을 수행하여 알려지지 않은 태스크 식별자에 대한 교정 태그를 제거하도록 할 수 있다. 1120 동작에서, 방법은 다음을 위하여 최적의 태스크 모델의 정보를 갖는 알려지지 않은 태스크 식별자를 업데이트하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 다음을 위하여 최적의 태스크 모델의 정보를 갖는 알려지지 않은 태스크 식별자를 저장/업데이트하도록 할 수 있다. At
방법 및 순서도(1100)에서의 다양한 동작들, 행동들, 블록들, 단계들 등은 도시된 순서, 또는 다른 순서 또는 동시에 수행될 수 있다. 또한, 일부 실시 예들에서, 동작들, 행동들, 블록들, 단계들 등의 일부는 본 발명의 범위로부터의 벗어남 없이 생략되거나, 추가되거나, 변형되거나, 또는 스킵될 수 있다.The various operations, actions, blocks, steps, etc. in method and
종래의 시스템들 및 방법들과 달리, 제안된 시스템은 (프로세서+열 싱크/쿨러/팬+보드+디스크/메모리 등의 전체 시스템의 관점으로부터의)에너지 절약을 도울 수 있다. 요약하자면, 소비되는 전체 에너지는 컴퓨터 노드들(100)(예를 들어, 프로세서, 쿨러/팬 시스탬, 디스크 액세스 드라이버들, 메모리, 및 보드 상의 다른 구성들)에 의해 소비되고 제공되는 에너지들의 합에 비례할 수 있다. 또한, 컴퓨터 노드들(100)에 의해 낭비되는 에너지는 프로세싱 로드 및 비율에 차례차례 의존되는 온도 프로파일(temperature profile)의 영역과 직접적으로 연관된다. Unlike conventional systems and methods, the proposed system can help save energy (from the perspective of the entire system: processor + heat sink / cooler / fan + board + disk / memory, etc.). In summary, the total energy consumed is the sum of the energies consumed and provided by computer nodes 100 (e.g., processor, cooler/fan system, disk access drivers, memory, and other components on the board). It can be proportional. Additionally, the energy wasted by
온도 프로파일 및 그것의 1차 미분이 연속이기 때문에, 평균 값은 이하의 수학식에 의해 주어진다. Since the temperature profile and its first derivative are continuous, the average value is given by the equation below.
즉, 평균 온도는 컴퓨터 노드들(100)에 의해 낭비된 에너지와 직접적으로 연관된다. 컴퓨터 노드들(100)의 프로세서 코어 온도를 최적 레벨에서 유지하여 컴퓨터 노드들에서 에너지 절약을 달성하는 것은 1차 근사식에 있어서 중요할 수 있다. (It may be important, to first order of approximation, to maintain processor core temperature of the computer nodes 100 at optimum level to achieve energy saving in the computer nodes 100.) 이는 쿨러들 및 팬 시스템에 의해 달성될 수 있다. 이는 그것들의 시스템들이 에너지를 소비하여 동작하기 때문에, 간단한 방법은 아니다. 더 나은 대안은 복수의 컴퓨터 노드들(100) 사이에서 동작들을 분산시킴으로써 전체 시스템의 에너지 소비가 억제되는 것이다. 분산 이종 컴퓨터 시스템(300)은 프로세서들 및 보조 프로세서들로 구성되고, 프로세서 및 보조 프로세서들 상에서 동시에 구동되는 태스크들을 고려하는 것으로 간주될 것이다. That is, the average temperature is directly related to the energy wasted by
사례 I. 일정한 클럭 주파수(Constant clock frequency): 태스크가 수행될 때, 프로세서 주파수는 변함없이 유지되는 것으로 가정될 것이다. (예를 들어, 오버-클럭 또는 언더-클럭이 없다.) Case I. Constant clock frequency : When a task is performed, the processor frequency will be assumed to remain constant. (i.e. no over-clocking or under-clocking.)
부 사례 1: 컴퓨터 노드들(100) 사이의 데이터 분산은 사실상 동일하다. Sub-Case 1 : Data distribution between
부 사례 2: 컴퓨터 노드들(100) 사이의 데이터 분산은 사실상 동일하지 않다. Sub-Case 2 : Data distribution among
사례 Ⅱ. 동적 클럭 주파수(Dynamic clock frequency): 컴퓨터 노드들(100)에서 최신의 프로세서들은 프로세서들이 그들의 주파수는 변경하여 과열을 방지하는 PROCHOT# 신호를 갖춘다. 이는 컴퓨터 노드들(100)의 처리 스피드 및 가열되는 속도를 변경할 것이다. 에너지 바이어스는 두 개의 동일한 프로세서들을 포함하는 분산 이종 컴퓨터 시스템(300)에 대하여 계산된다. 에너지 바이어스는 제안된 방법을 사용하여 절약된 에너지의 총량을 반영할 수 있다. Case Ⅱ. Dynamic clock frequency : The latest processors in
는 데이터 분산이 없는 경우 요구되는 에너지이고, 및 는 d1 데이터가 제1 동일 프로세서로 제공될 경우 요구되는 에너지 및 d2 데이터가 제2 동일 프로세서로 제공될 경우 요구되는 에너지이다. 그것들은 이하의 수학식들에 의해 주어진다. is the energy required when there is no data dispersion, and is the energy required when d 1 data is provided to the first same processor and is the energy required when d 2 data is provided to the second same processor. They are given by the following equations:
종래의 시스템들 및 방법들과 달리, 제안된 방법은 분산 이종 컴퓨터 시스템(300)의 신뢰성의 이론적인 분석을 수행할 수 있다. 신뢰성(페일의 확률 또는 페일율의 역변환에 의해 한정되는 바와 같은)은 온도 의존적인 객체이고, 그것은 온도가 증가함에 따라 감소된다. 즉, 평균보다 낮은 레벨들에서 온도를 유지하는 것이 중요하다. 좀 더 나은 이해를 돕기 위하여, 최적화 데이터 분산과 비교하여 데이터 분산이 없는 사례가 고려될 것이다. 제안된 방법을 사용할 때, 단일 프로세서가 모든 데이터 로드를 관리하는 사례 및 복수의 프로세서들/보조 프로세스들이 존재하는 경우의 제안된 데이터 분산을 사용하는 사례를 비교하면, 에너지 소비가 후자의 사례에서 좀 더 감소될 수 있다. 이는 제안된 방법을 사용하는 최적 데이터 분산 및 랜덤/국부적인 데이터 분산에 적용된다. 국부적인 데이터 분산 기법은 로컬 프로세서 스케줄러들과 같이 완전한 가시성을 갖지 않는다. 즉, 확립된 관계로부터, 평균 온도는 후자의 경우에서 비교적 낮다. 즉, 낮은 페일율과 높은 MTBF 및 최종적으로 높은 신뢰성을 야기할 수 있다.Unlike conventional systems and methods, the proposed method can perform theoretical analysis of the reliability of a distributed
종래의 시스템들 및 방법들과 달리 제안된 방법은 시스템 및 환경에 대하여 의존도가 더 낮다. 제안된 시스템 및 방법이 시스템 및 환경에서 의존도가 낮은 것을 보여주는 일부 실시 예들에서, 제안된 시스템은 다른 구성들을 포함하는 두 개의 시스템들을 기본적으로 포함할 수 있다. 제1 시스템은 좀 더 느린 프로세서(예를 들어, 느린 CPU) 및 좀 더 느린 보조 프로세서(예를 들어, 느린 GPU)로 구성될 수 있다. 제2 시스템은 좀 더 빠른 프로세서 및 좀 더 빠른 GPU로 구성될 수 있다. Unlike conventional systems and methods, the proposed method is less dependent on the system and environment. In some embodiments where the proposed system and method demonstrate low dependency on the system and environment, the proposed system may essentially include two systems with different configurations. The first system may be comprised of a slower processor (eg, a slow CPU) and a slower secondary processor (eg, a slow GPU). The second system may consist of a faster processor and a faster GPU.
상술된 제안 방법 및 시스템을 사용하여 이미지를 블러링하기 위하여 예시적인 애플리케이션이 개발될 수 있다. 선택된 시스템 구성들은 제2 시스템이 제1 시스템의 업그레이드 버전으로써 간주될 수 있도록 한다. 개발된 블러 애플리케이션은 제1 시스템을 위하여 최적화될 수 있다. 제2 시스템으로의 제1 시스템의 업데이트를 포함하는 현재 시나리오에 있어서는, 제1 시스템을 위하여 최적화된 애플리케이션이 업데이트되는 것을 요구할 수 있다. 그러나 본문에서, 제안 방법을 사용하여 애플리케이션이 개발된 경우, 유사한 최적화를 사용하여 제2 시스템상에서 구동될 수 있다. 이는 최적화 기법을 변형하여 모든 호출(every call)에 대한 다른 데이터 분산 벡터를 획득하는 것에 의해 경험될 수 있다. An example application may be developed for blurring images using the proposed methods and systems described above. The selected system configurations allow the second system to be considered an upgraded version of the first system. The developed blur application can be optimized for the first system. In the current scenario involving an update of a first system to a second system, applications optimized for the first system may require to be updated. However, in the text, if an application is developed using the proposed method, it can be run on a second system using similar optimizations. This can be experienced by modifying the optimization technique to obtain a different data distribution vector for every call.
도 12는 일부 실시 예들에 따른, 리프레셔(123)가 최적화 프로세스에 대하여 트리거되는 예시적인 시나리오를 보여준다. 리프레셔(123)는 상술된 최적화 프로세서의 다음 반복 동작의 시작을 트리거할 수 있다. 트리거는 주기적인 타이머 만료(periodic timer expiration) 또는 외부 요인에 기인할 수 있다. 타이머 기반의 트리거는 일부 타임 구간 이후에, 다음 최적화 반복 동작을 시작하기 위하여 사용될 수 있다. 이전 반복 동작에 대한 LT(127)의 차이 엔트리들을 기반으로 타이머 구간은 증가되거나 또는 감소될 수 있다.Figure 12 shows an example scenario where
리프레셔(123)는 피드백을 기반으로 타이머 구간/시간 스탬프를 변화시키는 곱증가/합 감소(MIAD; multiplicative increase and additive decrease) 방식을 따를 수 있다. MSE가 사용자-특정 임계치보다 낮은 경우, 타이머 구간은 증가될 수 있고, 그렇지 않다면, 타이머 구간은 감소될 수 있다. 외부 신호(external siganl)는 시스템이 일부 변화들을 겪은 경우에만, 다음 반복 동작을 시작하기 위하여 트리거될 수 있다. 모든 활성 애플리케이션들에 의해 보고된 차이가 임계치보다 낮은 경우, 리프레셔(123)의 타임 스탬프(timestamp)가 증가될 수 있다. 모든 활성 애플리케이션들에 의해 보고된 차이가 특정된 임계치 내에 포함되지 않는 경우, 리프레셔(123)의 타임 스탬프(timestamp)가 감소될 수 있다. LT(127)의 차이 값 엔트리를 사용하여 평균 제곱 오차(MSE; mean square error)가 계산될 수 있다.The
도 13은 일부 실시 예들에 따른, 제조 산업 사용 사례를 보여주는 블록도���다. 이러한 제조 산업 사용 사례 시나리오(fabrication industry use case scenario)에서, 다른 데이터(연 당 60TB까지 생성되는) 와 함께 장치(EQ; equipment) 센서 데이터는 데이터 레이크(Data Lake)라 불리는 프로세싱 수퍼-클러스터(processing super-cluster)에 의해 동시에 처리될 수 있다. 제안된 메커니즘의 사용은 하드웨어/소프트웨어 업그레이드들 동안 그리고 새로운 시스템들(또는 태스크들)의 추가 동안, 신뢰성의 저하(및 길어진 미작동 시간)을 완화시킬 수 있다. 업그레이드는 최적으로 수행되므로, 원활하게 행해질 것이다.13 is a block diagram showing a manufacturing industry use case, according to some embodiments. In this manufacturing industry use case scenario, equipment sensor data, along with other data (generating up to 60 TB per year), is processed into a processing super-cluster called a data lake. Can be processed simultaneously by super-cluster). Use of the proposed mechanism can mitigate degradation of reliability (and extended downtime) during hardware/software upgrades and during the addition of new systems (or tasks). The upgrade will be performed optimally and therefore smoothly.
종래의 시스템 및 방법들과 달리, 제안된 시스템 및 방법은 인더스트리 4.0구상에 따라 제작 애플리케이션 작성 표준(fabrication application writing standard)의 일부로써 제안될 수 있다. 종래의 시스템 및 방법들과 달리, 제안된 시스템은 칩 제조 동작들 동안 생성되는 거대한 데이터를 분석하는데 요구되는 IT 인프라구조 백본을 창안하는데 매우 중요한 역할을 수행할 수 있고, 분석된 결과는 제조 라인들의 생산량을 직접적으로 최대화하는데 사용될 수 있다.Unlike conventional systems and methods, the proposed system and method can be proposed as part of a fabrication application writing standard according to the Industry 4.0 initiative. Unlike conventional systems and methods, the proposed system can play a very important role in creating the IT infrastructure backbone required to analyze the huge data generated during chip manufacturing operations, and the analyzed results can be used to analyze the huge data generated during chip manufacturing operations. It can be used to directly maximize production.
제작 크기가 14nm에서 10nm 및 그 이상으로 변화한 이후의 제조 산업의 사례에서, 생성된 데이터의 총량은 기하급수적으로 증가할 수 있고, 이는 거대한 프로세싱 클러스터들이 데이터를 분석하는 것을 필요로 한다. 프로세스에서 절감된 에너지의 작은 양은 동작 비용을 낮춤으로써 전체 제작 라인으로 거대한 이점을 제공할 수 있다. 제안된 시스템 및 방법은 제조 산업의 프로세싱 클러스터들의 에너지 절감에서 매우 중요한 역할을 수행할 수 있다.In the case of the manufacturing industry after fabrication sizes change from 14nm to 10nm and beyond, the total amount of data generated can increase exponentially, requiring huge processing clusters to analyze the data. The small amount of energy saved in the process can provide huge benefits to the entire production line by lowering operating costs. The proposed system and method can play a very important role in energy savings in processing clusters in the manufacturing industry.
종래의 시스템들 및 방법들에서, 존재하는 소프트웨어 계층을 위한 하드웨어 업그레이드들은 하드웨어를 이용한 애플리케이션 프로세스 및 최적화 프로세스의 강력한 연결에 기인한 동기화되지 않는 솔루션을 만들 수 있다. 그러나 제안된 시스템 및 방법은 최적화 프로세스 및 애플리케이션 프로세스를 분리할 수 있기 때문에, 하드웨어 업그레이드의 비용이 종래의 업그레이드 메커니즘들과 비교하여 훨씬 낮아질 수 있다. In conventional systems and methods, hardware upgrades for an existing software layer can create an unsynchronized solution due to the strong coupling of application processes and optimization processes with hardware. However, because the proposed system and method can separate the optimization process and the application process, the cost of hardware upgrades can be much lower compared to conventional upgrade mechanisms.
도 14는 일부 실시 예에 따른, 분산 이종 컴퓨터 시스템(300)의 실시간 구동 시스템(RTOS; real-time operating system)을 보여주는 순서도(1400)이다. FIG. 14 is a
1402 동작에서, 방법은 완료를 위한 임계 시간(Tc)을 포함하는 입력되는 임계 프로세스/태스크(critical process/task)를 수신하는 것을 포함할 수 있다. 방법은 AI(112)가 완료를 위한 임계 시간(Tc)을 포함하는 입력되는 임계 프로세스/태스크를 수신하도록 할 수 있다.At
1404 동작에서, 방법은 입력되는 임계 프로세스 요청을 쿼리 인터페이스(126)로 전송하는 것을 포함할 수 있다. 방법은 AI(112)가 입력되는 임계 프로세스 요청을 쿼리 인터페이스(126)로 전송하도록 할 수 있다.At
1406 동작에서, 방법은 입력되는 임계 프로세스를 완료하기 위한 예상 시간(TReply)을 응답하는 것을 포함할 수 있다. 방법은 쿼리 인터페이스(126)가 입력되는 임계 프로세스를 완료하기 위한 예상 시간(TReply)을 응답하도록 할 수 있다.At
1408 동작에서, 방법은 임계 시간이 완료를 위한 예상 시간보다 적은지 체크하는 것을 포함할 수 있다. 방법은 AI(112)가 임계 시간이 완료를 위한 예상 시간보다 적은지 체크하도록 할 수 있다. AI(112)가 Tc < TReply인 것으로 판별한 경우, AI(112)는 1410 동작에서, 태스크 런치(task launch)를 리젝트하고, 그렇지 않은 경우, 1412 동작에서, 태스크 런치(task launch)를 수용할 수 있다.At
실시간 동작 시스템은 제안된 방법을 지원할 수 있는 사용-사례 중 하나이다. 제조 산업에서, 실시간 구동 시스템을 요구하는 일부 시간-임계 태스크들(time-critical tasks)(예를 들어, 스케줄링)이 존재할 수 있다. 현재, 그것들의 태스크들을 수행하는 장치(EQ)는 실시간 구동 시스템을 이용하는 특별한 구동 시스템에 의존할 수 있다. 이는 EQ를 두 개의 그룹들(하나는 실시간 구동 시스템에서 동작할 수 있고, 다른 하나는 일반 구동 시스템에서 동작할 수 있다.)로의 구분을 야기할 수 있다. 애플리케이션 개발자들은 두 개의 구동 시스템들 전부에 대하여 별도로 소프트웨어를 설계해야 할 수 있다. 그러나, 제안된 방법은 애플리케이션을 개발하는 동안 제약 사항과 같은 Soft-RTOS을 이용하는 이점을 본질적으로 애플리케이션 개발자에게 제공할 수 있다. AI(112)가 태스크에 대한 데이터 분산 벡터를 문의한 경우, 데이터 분산 벡터는 예상 완료 시간을 포함할 수 있다. 이러한 예상 완료 시간을 사용하여, 애플리케이션 개발자들은 임계 태스크를 스케줄링할지 말지를 결정할 수 있다. 애플리케이션 측면에서의 결정을 가능하게 하는 것은 제약과 같은 Soft-RTOS라 불린다. Real-time operating systems are one of the use-cases that can support the proposed method. In the manufacturing industry, there may be some time-critical tasks (eg, scheduling) that require a real-time operating system. Currently, devices (EQs) that perform their tasks may rely on special drive systems that utilize real-time drive systems. This can result in the division of the EQ into two groups, one that can operate in a real-time drive system and the other in a normal drive system. Application developers may need to design software separately for both operating systems. However, the proposed method can inherently provide application developers with the benefits of using Soft-RTOS such as constraints while developing applications. When the
제안된 방법 및 시스템은 이종 컴퓨터 노드들(100) 상에서 Soft-RTOS를 달성하는 것을 도울 수 있다. 데이터 분산 벡터는 모든 시스템 파라미터들을 고려하는 최적화 방식으로 구동하는 것을 나타내는 태스크를 위하여 연산될 수 있다. 그러므로, 실시간 구동 시스템 시나리오에서의 태스크에 의해 제공되는 시간 제약 및 데이터 로드에 따라, 제안된 방법 및 시스템은 태스크가 예상 시간 내에 수행될 것인지 아닌지를 결정할 수 있다.The proposed method and system can help achieve Soft-RTOS on heterogeneous computer nodes (100). Data distribution vectors can be computed for the task indicating running in an optimized manner that takes into account all system parameters. Therefore, depending on the time constraints and data load provided by the task in a real-time operating system scenario, the proposed method and system can determine whether the task will be performed within the expected time or not.
하드웨어가 없는 테스트 베드 시뮬레이터의 인기로 기인한 연산의 필요가 증가하고 있다. 실제 하드웨어를 시뮬레이션하여 하드웨어로 의도된 소프트웨어 개발을 가능하게 하기 위하여 가끔 거대한 서버들이 요구된다. 이러한 종류의 시나리오에서, 제안된 방법은 쉽게 확장되고, 에너지를 절감하고, 신뢰성을 향상시킬 수 있다.Computational needs are increasing due to the popularity of hardware-free test bed simulators. Huge servers are sometimes required to simulate real hardware and enable hardware-intended software development. In these kinds of scenarios, the proposed method can be easily scaled up, save energy, and improve reliability.
현재, 이종 컴퓨터 노드들(100) 사이의 태스크를 위하여 최적화된 데이터 분산을 제공하는 구동 시스템은 없다. 제안된 방법은 이종 컴퓨터 노드들(100) 사이의 태스크를 위한 데이터 분산이 원활할 수 있도록, 구동 시스템의 일부로써 생성될 수 있다. 이는 배터리 에너지를 절감하고, 장치 신뢰성을 증가시키고, 다른 컴퓨터 노드들(100)의 최적화 사용을 가능하게 하는 것을 도울 수 있다.Currently, there is no operating system that provides optimized data distribution for tasks between
도 15는 일부 실시 예들 따른, 최적화된 잡 성능을 위하여 자원들을 동적으로 재할당하는 분산 이종 컴퓨터 시스템 및 방법을 적용한 컴퓨팅 환경(1502)을 보여준다. 도 15에 도시된 바와 같이, 컴퓨팅 환경(1502)은 제어 유닛(1506) 및 산술 처리 유닛(ALU)(1508)을 장착한 적어도 하나의 프로세싱 유닛(1504), 메모리(1510), 스토리지 유닛(1512), 복수의 네트워킹 장치들(1516), 및 복수의 입력/출력(I/O) 장치들(1514)을 포함할 수 있다.Figure 15 shows a
프로세싱 유닛(1504)은 제안된 방법의 명령어들을 처리할 수 있다. 프로세싱 유닛(1504)은 제어 유닛으로부터 커맨드들을 수신하여 그것의 처리를 수행할 수 있다. 또한 명령어들의 실행에 포함된 산술 동작들은 ALU(1508)의 도움으로 연산될 수 있다.
스토리지 유닛(1512)은 하나 또는 그 이상의 컴퓨터-판독 가능한 스토리지 매체를 포함할 수 있다. 스토리지 유닛(1512)은 불휘발성 스토리지 구성 요소들을 포함할 수 있다. 이러한 불휘발성 스토리지 구성 요소들의 예들로써, 자기 하드 디스크들, 광 디스크들, 플로피 디스크들, 플래시 메모리들, 전기적으로 프로그램 가능한 메모리들(예를 들어, EPROM) 및/또는 전기적으로 소거 및 프로그램 가능한 메모리들(EEPROM)이 있을 수 있다. 또한, 일부 예들에서, 스토리지 유닛(1512)은 비-일시적인 스토리지 매체로써 간주될 수 있다. "비-일시적인"의 용어는 스토리지 매체가 반송파(carrier wave) 또는 전파 신호(propagated signal)에서 구현되지 않음을 가리킬 수 있다. 그러나, "비-일시적인"의 용어는 스토리지 유닛(1512)이 이동할 수 없는 의미로 해석될 수 없다. 일부 예들에서, 스토리지 유닛(1512)은 메모리보다 더 많은 정보를 저장하도록 구성될 수 있다. 일부 예들에서, 비-일시적인 스토리지 매체는 시간이 흐름에 따라 변화할 수 있는 데이터(예를 들어, 랜덤 액세스 메모리(RAM) 또는 캐시 메모리 내의 데이터)를 저장할 수 있다.
본문에 기재된 실시 예들은 적어도 하나의 하드웨어 장치에서 구동되고, 네트워크 관리 기능들을 수행하여 구성 요소들을 제어하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1 내지 도 15에 도시된 구성 요소들은 하드웨어 장치들 중 적어도 하나, 또는 하드웨어 장치 및 소프트 웨어 모듈의 조합일 수 있는 블록들을 포함할 수 있다. Embodiments described in the text may be implemented through at least one software program that runs on at least one hardware device and controls components by performing network management functions. 1 to 15 may include blocks that may be at least one of hardware devices or a combination of hardware devices and software modules.
특정한 실시 예들의 상술된 설명들은 당업자가 현재의 지식을 적용함으로써 일반적인 사상으로부터의 벗어남 없이 다양한 애플리케이션들을 위한 특정한 실시 예들을 적용하교 변형할 수 있도록 기술적 사상의 일반적인 내용을 전체적으로 보여줄 수 잇다. 그러므로, 이러한 적용들 및 변형들은 기재된 실시 예들의 동등물의 사상 및 의미 내에서 이해되도록 간주될 수 있다. 본문에서 사용된 용어들 또는 어법들은 설명의 목적을 위한 것이며, 한정되지 않음이 잘 이해될 것이다. 그러므로, 실시 예들이 특정 실시 예들의 용어에서 설명되더라도, 당업자는 실시 예들이 본문에 기재된 실시 예들의 기술적 사상 및 범위 내의 변형으로 구현될 수 있음을 인지할 것이다. The above descriptions of specific embodiments can present the general content of the technical idea as a whole so that those skilled in the art can adapt and modify the specific embodiments for various applications without departing from the general idea by applying current knowledge. Therefore, these applications and modifications are to be considered to be understood within the spirit and meaning of equivalents of the described embodiments. It will be understood that the terms or phraseology used in the text are for explanatory purposes and are not limiting. Therefore, although the embodiments are described in terms of specific embodiments, those skilled in the art will recognize that the embodiments may be implemented with modifications within the spirit and scope of the embodiments described in the text.
Claims (20)
복수의 컴퓨터 노드들을 포함하고,
상기 복수의 컴퓨터 노드들 각각은 네트워크 인터페이스를 통해 네트워크와 기능적으로 연결되어 상기 복수의 컴퓨터 노드들 사이의 데이터 통신을 제공하고,
상기 복수의 컴퓨터 노드들 각각은:
애플리케이션 계층;
상기 애플리케이션 계층으로부터 분리된 최적화 계층; 및
상기 애플리케이션 계층 및 상기 최적화 계층의 동작들을 수행하도록 구성된 하나 또는 그 이상의 프로세서들을 포함하고,
상기 애플리케이션 계층은:
수행될 적어도 하나의 잡을 호출하도록 구성된 애플리케이션 인젝터; 및
상기 적어도 하나의 잡이 일반(normal)인지 중요(critical)인지를 가리키는 상기 적어도 하나의 잡의 태스크 종류 및 상기 적어도 하나의 잡에 대한 데이터 로드 를 상기 애플리케이션 인젝터로 공유하도록 구성된 애플리케이션 특정 구성을 포함하고,
상기 최적화 계층은:
상기 복수의 컴퓨터 노드들 각각에 대한 데이터 성능 메트릭, 신뢰성 메트릭, 추가 팩터, 및 데이터 분산 비율 중 적어도 하나의 함수인 워크로드 값을 동적으로 수집하도록 구성된 콜렉터;
상기 복수의 컴퓨터 노드들 각각에 대하여 알려진 잡들 및 알려지지 않은 잡들의 각각의 타입들을 판별하도록 구성된 잡 인포머;
상기 워크로드 값 및 상기 복수의 컴퓨터 노드들 각각에 대하여 상기 알려진 잡들 및 상기 알려지지 않은 잡들의 상기 각각의 타입들을 기반으로, 상기 적어도 하나의 잡을 수행하기 위해 상기 복수의 컴퓨터 노드들로 분산될 상기 데이터 로드의 각각의 크기를 정의하는 데이터 분산 벡터를 판별하도록 구성된 잡 옵티마이저;
상기 데이터 분산 벡터를 저장하도록 구성된 룩업 테이블; 및
상기 룩업 테이블을 유지하고, 상기 애플리케이션 인젝터로 쿼리 인터페이스를 제공하도록 구성된 룩업 테이블 관리자를 포함하고,
상기 애플리케이션 인젝터는 상기 쿼리 인터페이스를 통해 상기 룩업 테이블 관리자로 상기 적어도 하나의 잡의 태스크 식별자에 대한 쿼리를 전송하고, 상기 쿼리 인터페이스를 통해 상기 룩업 테이블 관리자로부터 상기 데이터 분산 벡터를 수신하고, 상기 데이터 분산 벡터를 기반으로 상기 적어도 하나의 잡을 스케쥴링하도록 더 구성되고,
상기 룩업 테이블 관리자는 상기 쿼리에 응답하여, 상기 룩업 테이블로부터 상기 데이터 분산 벡터를 상기 애플리케이션 인젝터로 전송하도록 더 구성되고,
상기 애플리케이션 인젝터는 상기 데이터 분산 벡터를 기반으로 상기 적어도 하나의 잡을 스케쥴링한 이후에, 상기 룩업 테이블 관리로 바이트 당 소모 시간 차이를 반환하도록 더 구성되고,
상기 룩업 테이블 관리자는 상기 반환된 시간 차이가 상기 룩업 테이블의 차이 엔트리의 현재 값보다 큰 경우, 상기 룩업 테이블의 상기 차이 엔트리를 갱신하도록 더 구성되는 분산 이종 컴퓨터 시스템.
In a distributed heterogeneous computer system,
comprising a plurality of computer nodes,
Each of the plurality of computer nodes is functionally connected to a network through a network interface to provide data communication between the plurality of computer nodes,
Each of the plurality of computer nodes:
application layer;
an optimization layer separate from the application layer; and
Comprising one or more processors configured to perform operations of the application layer and the optimization layer,
The application layer is:
an application injector configured to invoke at least one job to be performed; and
An application-specific configuration configured to share a task type of the at least one job indicating whether the at least one job is normal or critical and a data load for the at least one job with the application injector,
The optimization layer is:
a collector configured to dynamically collect a workload value that is a function of at least one of a data performance metric, a reliability metric, an additive factor, and a data distribution ratio for each of the plurality of computer nodes;
a job informer configured to determine respective types of known jobs and unknown jobs for each of the plurality of computer nodes;
Based on the workload value and the respective types of the known jobs and the unknown jobs for each of the plurality of computer nodes, the data to be distributed to the plurality of computer nodes to perform the at least one job a job optimizer configured to determine a data distribution vector defining each size of load;
a lookup table configured to store the data distribution vector; and
a lookup table manager configured to maintain the lookup table and provide a query interface to the application injector;
The application injector transmits a query for the task identifier of the at least one job to the lookup table manager through the query interface, receives the data distribution vector from the lookup table manager through the query interface, and operates the data distribution. further configured to schedule the at least one job based on a vector,
the lookup table manager is further configured to transmit the data distribution vector from the lookup table to the application injector in response to the query,
The application injector is further configured to return a consumption time difference per byte to the lookup table management after scheduling the at least one job based on the data distribution vector,
The lookup table manager is further configured to update the difference entry in the lookup table if the returned time difference is greater than the current value of the difference entry in the lookup table.
상기 잡 인포머는 상기 룩업 테이블 관리자에 응답하여, 상기 알려지지 않은 잡들의 자동 분석을 수행하도록 더 구성된 분산 이종 컴퓨터 시스템.
According to claim 1,
The job informer is further configured to perform automatic analysis of the unknown jobs in response to the lookup table manager.
상기 최적화 계층은
상기 적어도 하나의 잡의 구동의 예상 시간 및 실제 시간의 차이를 사용하여 상기 복수의 컴퓨터 노드들 각각에서 상기 적어도 하나의 잡의 상기 성능을 관리하기 위한 시간 구간을 동적으로 판별하도록 구성된 리프레셔를 더 포함하는 분산 이종 컴퓨터 시스템.
According to claim 1,
The optimization layer is
It further includes a refresher configured to dynamically determine a time interval for managing the performance of the at least one job in each of the plurality of computer nodes using the difference between the expected time of running the at least one job and the actual time. A distributed heterogeneous computer system.
상기 데이터 분산 벡터는 선형 최적화 모델 및 비선형 최적화 모델 중 적어도 하나를 사용하여 판별되는 분산 이종 컴퓨터 시스템.
According to claim 1,
A distributed heterogeneous computer system wherein the data distribution vector is determined using at least one of a linear optimization model and a non-linear optimization model.
상기 애플리케이션 인젝터는 상기 애플리케이션 특정 구성 및 상기 최적화 계층 사이의 커넥터로서 동작하는 분산 이종 컴퓨터 시스템.
According to claim 1,
A distributed heterogeneous computer system wherein the application injector acts as a connector between the application specific configuration and the optimization layer.
복수의 컴퓨터 노드들을 포함하고,
상기 복수의 컴퓨터 노드들 각각은 네트워크 인터페이스를 통해 네트워크와 기능적으로 연결되어 상기 복수의 컴퓨터 노드들 사이의 데이터 통신을 제공하고,
상기 복수의 컴퓨터 노드들 각각은:
애플리케이션 계층;
상기 애플리케이션 계층으로부터 분리된 최적화 계층; 및
상기 애플리케이션 계층 및 상기 최적화 계층의 동작들을 수행하도록 구성된 하나 또는 그 이상의 프로세서들을 포함하고,
상기 애플리케이션 계층은:
수행될 적어도 하나의 잡을 호출하도록 구성된 애플리케이션 인젝터; 및
상기 적어도 하나의 잡이 일반(normal)인지 중요(critical)인지를 가리키는 상기 적어도 하나의 잡의 태스크 종류 및 상기 적어도 하나의 잡에 대한 데이터 로드 를 상기 애플리케이션 인젝터로 공유하도록 구성된 애플리케이션 특정 구성을 포함하고,
상기 최적화 계층은:
상기 복수의 컴퓨터 노드들 각각에 대한 데이터 성능 메트릭, 신뢰성 메트릭, 추가 팩터, 및 데이터 분산 비율 중 적어도 하나의 함수인 워크로드 값을 동적으로 수집하도록 구성된 콜렉터;
상기 복수의 컴퓨터 노드들 각각에 대하여 알려진 잡들 및 알려지지 않은 잡들의 각각의 타입들을 판별하도록 구성된 잡 인포머;
상기 워크로드 값 및 상기 복수의 컴퓨터 노드들 각각에 대하여 상기 알려진 잡들 및 상기 알려지지 않은 잡들의 상기 각각의 타입들을 기반으로, 상기 적어도 하나의 잡을 수행하기 위해 상기 복수의 컴퓨터 노드들로 분산될 상기 데이터 로드의 각각의 크기를 정의하는 데이터 분산 벡터를 판별하도록 구성된 잡 옵티마이저;
상기 데이터 분산 벡터를 저장하도록 구성된 룩업 테이블; 및
상기 룩업 테이블을 유지하고, 상기 애플리케이션 인젝터로 쿼리 인터페이스를 제공하도록 구성된 룩업 테이블 관리자를 포함하고,
상기 애플리케이션 인젝터는 상기 쿼리 인터페이스를 통해 상기 룩업 테이블 관리자로 상기 적어도 하나의 잡의 태스크 식별자에 대한 쿼리를 전송하고, 상기 쿼리 인터페이스를 통해 상기 룩업 테이블 관리자로부터 상기 데이터 분산 벡터를 수신하고, 상기 데이터 분산 벡터를 기반으로 상기 적어도 하나의 잡을 스케쥴링하도록 더 구성되고,
상기 애플리케이션 인젝터는 중요 태스크를 완료하기 위한 중요 시간과 함께 상기 중요 태스크에 대한 요청을 수신하고, 상기 중요 태스크에 대한 요청을 상기 쿼리 인터페이스로 전송하도록 더 구성되고,
상기 쿼리 인터페이스는 상기 중요 태스크에 대한 예상 시간을 상기 애플리케이션 인젝터로 응답하도록 구성된 분산 이종 컴퓨터 시스템.
In a distributed heterogeneous computer system,
comprising a plurality of computer nodes,
Each of the plurality of computer nodes is functionally connected to a network through a network interface to provide data communication between the plurality of computer nodes,
Each of the plurality of computer nodes:
application layer;
an optimization layer separate from the application layer; and
Comprising one or more processors configured to perform operations of the application layer and the optimization layer,
The application layer is:
an application injector configured to invoke at least one job to be performed; and
An application-specific configuration configured to share a task type of the at least one job indicating whether the at least one job is normal or critical and a data load for the at least one job with the application injector,
The optimization layer is:
a collector configured to dynamically collect a workload value that is a function of at least one of a data performance metric, a reliability metric, an additive factor, and a data distribution ratio for each of the plurality of computer nodes;
a job informer configured to determine respective types of known jobs and unknown jobs for each of the plurality of computer nodes;
Based on the workload value and the respective types of the known jobs and the unknown jobs for each of the plurality of computer nodes, the data to be distributed to the plurality of computer nodes to perform the at least one job a job optimizer configured to determine a data distribution vector defining each size of load;
a lookup table configured to store the data distribution vector; and
a lookup table manager configured to maintain the lookup table and provide a query interface to the application injector;
The application injector transmits a query for the task identifier of the at least one job to the lookup table manager through the query interface, receives the data distribution vector from the lookup table manager through the query interface, and operates the data distribution. further configured to schedule the at least one job based on a vector,
the application injector is further configured to receive a request for the critical task along with a critical time to complete the critical task, and transmit the request for the critical task to the query interface,
The query interface is configured to respond to the application injector with an estimated time for the critical task.
상기 애플리케이션 인젝터는:
상기 중요 시간이 상기 예상 시간보다 작은지 판별하고;
상기 중요 시간이 상기 예상 시간보다 작은 경우, 상기 중요 태스크에 대한 태스크 런치를 리���트하고;
상기 중요 시간이 상기 예상 시간보다 작지 않은 경우, 상기 중요 태스크에 대한 상기 태스크 런치를 수용하도록 더 구성된 분산 이종 컴퓨터 시스템.
According to claim 6,
The application injector:
determine whether the critical time is less than the expected time;
if the critical time is less than the expected time, reject task launch for the critical task;
If the critical time is not less than the expected time, the distributed heterogeneous computer system is further configured to accommodate the task launch for the critical task.
상기 데이터 분산 벡터는 선형 최적화 모델 및 비선형 최적화 모델 중 적어도 하나를 사용하여 판별되는 분산 이종 컴퓨터 시스템.
According to claim 6,
A distributed heterogeneous computer system wherein the data distribution vector is determined using at least one of a linear optimization model and a non-linear optimization model.
상기 최적화 계층은
상기 적어도 하나의 잡의 구동의 예상 시간 및 실제 시간의 차이를 사용하여 상기 복수의 컴퓨터 노드들 각각에서 상기 적어도 하나의 잡의 상기 성능을 관리하기 위한 시간 구간을 동적으로 판별하도록 구성된 리프레셔를 더 포함하는 분산 이종 컴퓨터 시스템.
According to claim 6,
The optimization layer is
It further includes a refresher configured to dynamically determine a time interval for managing the performance of the at least one job in each of the plurality of computer nodes using the difference between the expected time of running the at least one job and the actual time. A distributed heterogeneous computer system.
상기 애플리케이션 인젝터는 상기 애플리케이션 특정 구성 및 상기 최적화 계층 사이의 커넥터로서 동작하는 분산 이종 컴퓨터 시스템.
According to claim 6,
A distributed heterogeneous computer system wherein the application injector acts as a connector between the application specific configuration and the optimization layer.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN4845/CHE/2015 | 2015-09-11 | ||
| IN4845CH2015 | 2015-09-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20170035797A KR20170035797A (en) | 2017-03-31 |
| KR102607808B1 true KR102607808B1 (en) | 2023-11-30 |
Family
ID=58257807
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020160116753A Active KR102607808B1 (en) | 2015-09-11 | 2016-09-09 | Dynamic reallocating resources for optimized job performance in distributed heterogeneous computer system |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10567490B2 (en) |
| KR (1) | KR102607808B1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102022972B1 (en) | 2018-03-09 | 2019-09-19 | 울산과학기술원 | Runtime management apparatus for heterogeneous multi-processing system and method thereof |
| US11269879B2 (en) * | 2020-01-13 | 2022-03-08 | Google Llc | Optimal query scheduling according to data freshness requirements |
| US11789770B2 (en) | 2020-05-19 | 2023-10-17 | General Electric Company | Systems and methods for creating surrogate models |
| CN113347249B (en) * | 2021-05-31 | 2022-11-29 | 中国工商银行股份有限公司 | Operation loading method, device and equipment |
| KR102572143B1 (en) | 2022-05-04 | 2023-08-29 | 코싸인온 주식회사 | Method of sharing memory resource for memory cloud and memory resource sharing system using the same |
| US20240111592A1 (en) * | 2022-10-03 | 2024-04-04 | Informatica Llc | Method, system, and computer readable media for elastic heterogeneous clustering and heterogeneity-aware job configuration |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110246267A1 (en) | 2010-03-31 | 2011-10-06 | Williams Gregory D | Systems and Methods for Attribution of a Conversion to an Impression Via a Demand Side Platform |
| US20150277980A1 (en) | 2014-03-28 | 2015-10-01 | Linkedln Corporation | Using predictive optimization to facilitate distributed computation in a multi-tenant system |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7099936B2 (en) * | 2002-03-29 | 2006-08-29 | International Business Machines Corporation | Multi-tier service level agreement method and system |
| EP2439641B1 (en) * | 2009-06-01 | 2016-10-12 | Fujitsu Limited | Server control program, control server, virtual server distribution method |
| NZ607113A (en) * | 2010-07-08 | 2014-08-29 | Greenbutton Ltd | A method for estimating job run time |
| US8838830B2 (en) * | 2010-10-12 | 2014-09-16 | Sap Portals Israel Ltd | Optimizing distributed computer networks |
| US8386286B2 (en) * | 2011-05-26 | 2013-02-26 | Xerox Corporation | System and method for the dynamic allocation of resources |
| US20120303413A1 (en) * | 2011-05-27 | 2012-11-29 | Vpisystems Inc. | Methods and systems for network traffic forecast and analysis |
| WO2013039555A1 (en) * | 2011-09-16 | 2013-03-21 | Narayam Amit | A scalable and web-based dr platform for communication of a dr signal using a network server |
| JP6236586B2 (en) * | 2011-09-17 | 2017-11-29 | オートグリッド インコーポレイテッド | Determining load reduction in demand response systems |
| US8761953B2 (en) * | 2012-04-30 | 2014-06-24 | Innovari, Inc. | Grid optimization resource dispatch scheduling |
| US8706798B1 (en) * | 2013-06-28 | 2014-04-22 | Pepperdata, Inc. | Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system |
-
2016
- 2016-09-09 KR KR1020160116753A patent/KR102607808B1/en active Active
- 2016-09-09 US US15/261,181 patent/US10567490B2/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110246267A1 (en) | 2010-03-31 | 2011-10-06 | Williams Gregory D | Systems and Methods for Attribution of a Conversion to an Impression Via a Demand Side Platform |
| US20150277980A1 (en) | 2014-03-28 | 2015-10-01 | Linkedln Corporation | Using predictive optimization to facilitate distributed computation in a multi-tenant system |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20170035797A (en) | 2017-03-31 |
| US20170078373A1 (en) | 2017-03-16 |
| US10567490B2 (en) | 2020-02-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102607808B1 (en) | Dynamic reallocating resources for optimized job performance in distributed heterogeneous computer system | |
| Choppara et al. | An efficient deep reinforcement learning based task scheduler in cloud-fog environment | |
| US20210004000A1 (en) | Automated maintenance window predictions for datacenters | |
| US20180060133A1 (en) | Event-driven resource pool management | |
| CN118672790B (en) | A method and system for summarizing massive data based on task chain and divide-and-conquer method | |
| US10909114B1 (en) | Predicting partitions of a database table for processing a database query | |
| CN104956325A (en) | Physical resource allocation | |
| CN110825518A (en) | Microservice-oriented nanosecond power resource allocation method and system | |
| Xu et al. | Practice of Alibaba cloud on elastic resource provisioning for large‐scale microservices cluster | |
| Procaccianti et al. | A catalogue of green architectural tactics for the cloud | |
| EP4189542A1 (en) | Sharing of compute resources between the virtualized radio access network (vran) and other workloads | |
| Wang et al. | Lube: Mitigating bottlenecks in wide area data analytics | |
| Yu et al. | System-wide trade-off modeling of performance, power, and resilience on petascale systems | |
| Li et al. | Flink‐ER: An Elastic Resource‐Scheduling Strategy for Processing Fluctuating Mobile Stream Data on Flink | |
| US8863060B2 (en) | Programmable intelligent storage architecture based on application and business requirements | |
| CN103500126B (en) | A kind of automatization fault-tolerant configuration method of cloud computing platform | |
| US20230185620A1 (en) | Information infrastructure management method, management server of information infrastructure, and non-transitory computer-readable recording medium for information infrastructure management program | |
| US11297163B2 (en) | Scenario profile based partitioning and management of application code | |
| Medeiros et al. | ARC-V: Vertical Resource Adaptivity for HPC Workloads in Containerized Environments | |
| Wang et al. | Mitigating bottlenecks in wide area data analytics via machine learning | |
| Su et al. | Achieving self-aware parallelism in stream programs | |
| Sun et al. | Toward High‐Availability Distributed Stream Computing Systems via Checkpoint Adaptation | |
| Fazul et al. | DARB: A dynamic architecture for data replica balancing | |
| CN114090201A (en) | Resource scheduling method, apparatus, device and storage medium | |
| Mahjoub et al. | The management of energy-aware virtual machine deployment and load balancing using mapping in network-on-chip for cyber-physical systems in cloud computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
