KR102607808B1 - 분산 이종 컴퓨터 시스템에서의 최적화된 잡 성능을 위한 동적 자원 재할당 - Google Patents

분산 이종 컴퓨터 시스템에서의 최적화된 잡 성능을 위한 동적 자원 재할당 Download PDF

Info

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
Application number
KR1020160116753A
Other languages
English (en)
Other versions
KR20170035797A (ko
Inventor
바라드와자 하야바다나 사미라
쿠마르 가우라브
티와리 라자니시
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20170035797A publication Critical patent/KR20170035797A/ko
Application granted granted Critical
Publication of KR102607808B1 publication Critical patent/KR102607808B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring 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)
  • Multi Processors (AREA)
  • Environmental & Geological Engineering (AREA)

Abstract

복수의 컴퓨터 노드를 포함하는 분산 이종 컴퓨터 시스템에서 최적화된 잡 성능을 제공하기 위해 자원들을 동적으로 재할당하는 장치가 제공된다. 이 장치는 컴퓨터 노드들 중 적어도 하나의 컴퓨터 노드 상에서 수행될 적어도 하나의 잡을 동작시키기 위한 어플리케이션 주입기를 포함한다. 이 장치는 각 컴퓨터 노드 상에서 작업 부하 값을 동적으로 수집하기 위한 수집기를 더 포함한다. 이 장치는 각 컴퓨터 노드 상에서 알려진 및 알려지지 않은 잡들을 판별하기 위한 잡 알림기를 더 포함한다. 이 장치는 각 컴퓨터 노드 상에서 작업 부하 값 및 알려진 및 알려지지 않은 잡들에 기초하여 데이터 분산 벡터를 판별하기 위한 잡 최적화기를 더 포함한다. 데이터 분산 벡터는 적어도 하나의 잡을 수행하기 위해 컴퓨터 노드들로 분산될 데이터의 양을 정의한다.

Description

분산 이종 컴퓨터 시스템에서의 최적화된 잡 성능을 위한 동적 자원 재할당{DYNAMIC REALLOCATING RESOURCES FOR OPTIMIZED JOB PERFORMANCE IN DISTRIBUTED HETEROGENEOUS COMPUTER SYSTEM}
본 발명은 이종 컴퓨터 시스템들에 관한 것으로써, 좀 더 상세하게는 최적화된 잡 성능을 위하여 동적으로 자원을 재할당하는 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템 및 방법에 관한 것이다.
제조업, 광고, 헬스-케어, 금융 등과 같은 다양한 분야에서의 발전은 최소화된 사용자 개입을 갖는 비져닝 자동화 시스템(visioning automated system)과 연관된다. 이러한 시스템을 위한 세가지 중요한 부분들은 감지(sense), 처리(process), 및 반응(react)이다. 감지에 대하여, 더욱 새로운 장치들은 많은 수의 센서들을 장착한다. 또한, 이러한 센서들은 많은 양의 데이터를 연속적으로 생성한다. 그러므로, 이러한 많은 데이터를 처리하는데 요구되는 거대한 프로세싱 클러스터들에 대한 수요가 있을 것이다. 이러한 프로세싱의 결과는 자동화된 동작들로 변환되어 자동화된 시스템의 비젼을 완전히 인식할 수 있다.
프로세싱 클러스터를 셋업하는 연관된 처리 방법은 성능을 최대하는 것을 목적으로 하고, 열, 에너지, 및 다른 신뢰성 팩터들을 필수적으로 고려하지 않는다. 이는 열을 감소시키도록 설치가 요구되는 쿨러들과 같은 대응하는 시스템들에서 설치 및 구동 비용을 증가시킨다. 더욱이, 그것들의 클러스터들 상에서 구동하도록 개발된 애플리케이션들은 이러한 시스템들을 위하여 특별하게 설계되고, 하드웨어 특정 최적화(hardware specific optimization)을 포함한다. 그래서 현존하는 시스템의 하드웨어에서의 업데이트는 애플리케이션들에서 대응하는 업데이트가 최적화(optimizations)를 포함하는 것을 요구한다. 애플리케이션 개발자들 및 시스템 설계자들은 관계 있는 시스템에 대한 적절한 최적화를 수행하기 위한 전문 지식을 갖지 못할 수 있다. 또한 애플리케이션 개발자들은 시스템에서 경쟁하는 다른 애플리케이션에 대한 지식을 갖지 못할 수 있다. 이는 애플리케이션 업데이트 태스크를 시간 단위에서 복잡하게 하고, 수행된 최적화 태스크가 정확하지 않을 수 있게 한다.
다른 처리 방법은 스스로 전용 태스크 스케줄러를 포함할 수 있는 다양한 컴퓨팅/컴퓨터 노드 검색을 포함한다. 태스크 스케줄러들은 보통(usually) 성능을 최대화하도록 구현될 수 있다. 그러나 태스크 스케줄러들은 에너지 최적화를 고려하거나 또는 고려하지 않을 수 있다. 태스크 스케줄러들이 에너지 최적화를 고려하더라도, 주어진 태스크 스케줄러의 레벨에서 모든 컴퓨팅 노드들의 제한된 가시성(limited visibility)으로 인하여, 시스템을 위한 광범위한 에너지 최적화 포인트를 달성하는 것은 불가능하다. 에너지 최적화를 위하여 태스크 스케줄러들에 기반된 애플리케이션들은 광범위한 최적화를 달성하지 못할 수 있으며, 이에 따라, 제어되지 않고 감시되지 않는 에너지의 낭비가 발생할 수 있다.
더욱이, 애플리케이션들은 최대화된 성능을 위하여 기입되는 반면에, 애플리케이션이 구동되는 컴퓨팅 노드 상에서 실제로 고려되지 않는다. 예를 들어, 다양한 컴퓨팅 노드들 외에, 오직 일부 노드들이 광범위하게 사용되고, 컴퓨팅 노드들에 손상을 주고 열을 발생시킨다. 이러한 시스템들은 많은 관리 비용을 발생시키는 지속적인 관리를 요구한다.
실시 예들은 최적화된 잡 성능을 위하여 동적으로 자원을 재할당하는 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템을 제공할 수 있다.
실시 예들은 수행될 적어도 하나의 잡을 호출하는, 복수의 컴퓨터 노드들로부터 적어도 하나의 컴퓨터 노드에서의 애플리케이션 인젝터(application injector)를 제공할 수 있다.
실시 예들은 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하는, 적어도 하나의 컴퓨터 노드에서의 콜렉터(collector)를 제공할 수 있다.
실시 예들은 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하는, 적어도 하나의 컴퓨터 노드에서의 잡 인포머(job informe)를 제공할 수 있다.
실시 예들은 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하는, 적어도 하나의 노드에서 잡 옵티마이저를 제공할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행할 데이터의 크기를 정의한다.
실시 예는 애플리케이션 계층 및 최적화 계층을 분리하기 위한 메커니즘을 제공할 수 있다.
따라서, 실시 예들은 분산 이종 컴퓨터 시스템을 제공할 수 있다. 분산 이종 컴퓨터 시스템은 복수의 컴퓨터 노드들을 포함할 수 있고, 복수의 컴퓨터 노드들 각각은 네트워크 인터페이스를 통해 네트워크와 기능적으로 연결되어 컴퓨터 노드들 사이의 데이터 통신을 제공할 수 있다. 컴퓨터 노드들 각각은 수행될 적어도 하나의 잡을 포함할 수 있다. 또한 분산 이종 컴퓨터 시스템은 수행될 적어도 하나의 잡을 호출하는, 복수의 컴퓨터 노드들 중 적어도 하나의 노드에서의 애플리케이션 인젝터를 포함할 수 있다. 또한, 분산 이종 컴퓨터 시스템은 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하는, 적어도 하나의 컴퓨터 노드에서의 콜렉터를 포함할 수 있다. 또한 분산 이종 컴퓨터 시스템은 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하는, 적어도 하나의 컴퓨터 노드에서의 잡 인포머를 포함할 수 있다. 또한, 분산 이종 컴퓨터 시스템은 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하는, 적어도 하나의 컴퓨터 노드에서의 잡 옵티마이저를 포함할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행하는 데이터의 총량을 정의할 수 있다.
또한, 실시 예들은 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템에서 최적화된 컴퓨터 성능을 위하여 자원들을 동적으로 재할당하는 장치를 제공할 수 있다. 장치는 복수의 컴퓨터 노드들 중 적어도 하나의 컴퓨터 노드에서 수행될 적어도 하나의 잡을 호출하도록 구성되는 애플리케이션 인젝터를 포함할 수 있다. 또한 장치는 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하도록 구성되는 콜렉터를 포함할 수 있다. 또한 장치는 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하도록 구성되는 잡 인포머를 포함할 수 있다. 또한 장치는 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하도록 구성되는 잡 옵티마이저를 포함할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행할 데이터의 총량을 정의할 수 있다.
또한, 실시 예들은 분산 이종 컴퓨터 시스템에서 최적화된 잡 성능을 위하여 자원들을 동적으로 재할당하는 방법을 제공할 수 있다. 방법은, 인공의 인젝터에 의해, 복수의 컴퓨터 노드들 중 적어도 하나의 컴퓨터 노드에서 수행될 적어도 하나의 잡을 호출하는 것을 포함할 수 있다. 또한, 방법은, 콜렉터에 의해 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하는 것을 포함할 수 있다. 또한, 방법은, 잡 인포머에 의해 컴퓨터 노드들 각각에서, 알려진 그리고 알려지지 않은 잡들을 판별하는 것을 포함할 수 있다. 또한, 방법은, 잡 옵티마이저에 의해, 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하는 것을 포함할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행할 데이터의 총량을 정의할 수 있다.
일부 실시 예들에서, 워크로드 값은 성능 메트릭, 신뢰성 메트릭, 추가 팩터들, 및 데이터 분산률 중 적어도 하나의 함수일 수 있다.
일부 실시 예들에서, 데이터 분산 벡터는 룩업 테이블에 저장될 수 있다.
일부 실시 예들에서, 방법은 적어도 하나의 잡을 구동하는 실제 시간 및 예상 시간의 차이를 포함하는 룩업 테이블 엔트리들을 피드백할 수 있다.
일부 실시 예들에서, 시스템의 컴퓨터 노드들 각각에서 적어도 하나의 잡 성능은 컴퓨터 시스템에서의 리프레셔에 의해 주기적으로 최적화될 수 있다.
일부 실시 예들에서, 리프레셔는 적어도 하나의 잡을 구동하는 실제 시간 및 예상 시간의 차이를 사용하여 시스템의 컴퓨터 노드들 각각의 적어도 하나의 잡 성능을 최적화하기 위한 시간 구간을 동적으로 판별할 수 있다.
일부 실시 예들에서, 분산 벡터는 선형 최적화 모델 및 비선형 최적화 모델 중 적어도 하나를 사용하여 판별될 수 있다.
실시 예들의 이러한 그리고 다른 면들은 이하의 상세한 설명 및 첨부된 도면들과 함께 고려될 때, 더욱 잘 이해될 것이다. 그러나 예시적인 실시 예들 및 그것들의 다양한 상세한 설명들을 가리키는 이하의 상세한 설명들은 실례로써 주어지나 한정되지 않는 것은 이해될 수 있다. 다양한 변화 및 변형들은 본 발명의 기술적 사상으로부터의 벗어남 없이 실시 예들의 범위 내에서 행해질 수 있으며, 실시 예들은 이러한 모든 변형들을 포함할 수 있다.
본 발명에 따르면, 최적화 태스크로부터 애플리케이션 개발자들이 자유로워 지는 것이 가능할 수 있다. 즉, 빠른 업데이트가 가능할 수 있다. 최적화 태스크가 독립적으로 수행되고, 모든 컴퓨터 노드들의 완전한 가시성(complete visibility)를 포함하기 때문에, 광범위한 최적화 값이 달성될 수 있다. 따라서, 개별적인 컴퓨터 노드들의 신뢰성이 향상되고, 비용 절감의 향상이 보장된다. 더욱이, 본 발명은 전체 시스템의 관점에서 에너지 절감을 도울 수 있다.
본 발명의 특정한 실시 예들의 이점들, 특징들, 다른 관점들은 이하의 상세한 설명 및 도면들을 참조하여 더욱 명확해질 수 있다.
도 1은 연관된 기술 분야에서 애플리케이션 프로세스가 최적화 프로세스와 연결된 컴퓨터 노드의 블록도를 보여준다.
도 2는 일부 실시 예들에 따라, 애플리케이션 프로세스 및 최적화 프로세스가 분리된 컴퓨터 노드의 블록도를 보여준다.
도 3은 일부 실시 예들에 따라, 최적화된 잡 성능을 위하여 동적으로 자원들을 재할당하는 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템을 보여준다.
도 4는 일부 실시 예들에 따라, 애플리케이션 계층 및 최적화 계층이 분리되어 광범위한 최적화를 달성하는 컴퓨터 노드의 블록도를 보여준다.
도 5는 일부 실시 예들에 따라, 분산 이종 컴퓨터 시스템에서 최적화된 잡 성능을 위하여 동적으로 자원을 재할당하는 방법을 보여주는 순서도이다.
도 6은 일부 실시 예들에 따른, 다른 컴퓨터 노드들 사이에서 잡들을 호출하는 애플리케이션 인젝터의 다양한 동작들을 보여주는 개념도이다.
도 7은 본 발명의 실시 예에 따라 최적화 프로세스/최적화 계층에 포함된 다양한 동작들을 보여주는 개념도이다.
도 8은 일부 실시 예들에 따른, 컴퓨터 노드 각각에서 워크로드 값을 동적으로 수집하기 위한 콜렉터의 블록도를 보여준다.
도 9a는 일부 실시 예들에 따라, 완료 태스크 노드를 위한 데이터 분산 벡터를 획득하기 위한 최적화 프로세스의 예를 보여준다.
도 9b는 일부 실시 예들에 따른, 데이터 분산 벡터를 노멀 벡터로 변환하는 일반화 프로세스의 예를 보여준다.
도 10은 일부 실시 예들에 따라, 분산 이종 시스템에서 구동하는 다른 태스크들을 위한 정보 저장을 유지하는 잡 인포머/태스크 정보 저장소를 보여준다.
도 11은 일부 실시 예들에 따른, 알려지지 않은 태스크 식별자를 위한 태스크 정보를 생성하는 방법을 보여주는 순서도이다.
도 12는 일부 실시 예들에 따라, 최적화 프로세스를 위하여 리프레셔(refresher)가 트리거되는 예시적인 시나리오(scenario)를 보여준다.
도 13은 일부 실시 예들에 따라, 제조 산업에서의 사용 사례를 보여주는 블록도이다.
도 14는 일부 실시 예들에 따라, 분산 이종 컴퓨터 시스템의 실시간 구동 시스템을 보여주는 순서도이다.
도 15는 본 발명의 실시 예에 따른 최적화된 잡 성능을 위하여 동적으로 자원을 할당하는 분산 이종 컴퓨터 시스템 및 방법을 적용한 컴퓨팅 환경을 보여준다.
본 발명의 다양한 실시 예들은 첨부된 도면을 참조하여 상세하게 설명될 것이다. 이하의 상세한 설명에서, 상세한 구성 및 요소들과 같은 구체적인 설명들은 단순히 본 발명의 실시 예들의 전반적인 이해를 가능하게 하기 위하여 제공된다. 그러므로 본문에 기재된 실시 예들은 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 다양하게 변형될 수 있음은 당업자에 의해 잘 이해될 것이다. 더욱이 잘 알려진 기능들 및 구조들은 설명의 편의 및 명확성을 위하여 생략될 것이다.
또한, 본문에 기재된 다양한 실시 예들은 반드시 상호 배타적이지 않으며, 이러한 실시 예들은 하나 또는 그 이상의 실시 예들과 조합되어 다른 새로운 실시 예들을 형성할 수 있다. 본문에서, "또는"의 용어는, 다르게 정의되지 않는 한, 비-배타적(non-exclusive) or를 가리킨다. 본문에서 사용되는 예시들은 단순히 당업자가 실시 예들을 구현하는 방법을 이해하기 위한 것으로 간주된다. 따라서 예시들은 실시 예들의 범위에 한정되는 것으로 간주되지 않을 수 있다.
본 발명이 속하는 기술 분야의 일반적인 것으로써, 실시 예들은 기능 설명된 기능 또는 기능들을 수행하는 블록들의 용어들로 설명되고, 도시된다. 유닛들 또는 모듈들 등으로 본문에서 지칭되는 이러한 블록들은 로직 게이트, 집적 회로, 마이크로프로세서, 마이크로 컨트롤러, 메모리 회로, 수동 전자 소자, 능동 전자 소자, 광학 소자, 하드웨어 회로, 등과 같은 아날로그 또는 디지털 회로들에 의해 물리적으로 구현될 수 있고, 펌웨어 또는 소프트웨어에 의해 선택적으로 구동될 수 있다. 예를 들어, 회로들은 하나 또는 그 이상의 반도체 칩들 또는 인쇄 회로 기판 등과 같은 기판 지지체 상에 실장될 수 있다. 블록을 구성하는 회로들은 전용 하드웨어 또는 프로세서(하나 또는 그 이상의 프로그램된 마이크로 프로세서 및 연관된 회로), 또는 전용 하드웨어의 조합에 의해 구현되어 블록의 일부 기능을 수행하고, 프로세서는 블록의 다른 기능들을 수행할 수 있다. 실시 예들의 각 블록은 본 발명의 범위로부터의 벗어남 없이 둘 또는 그 이상의 통신하는 별개의 블록들의 블록들로 물리적으로 구분될 수 있다. 마찬가지로, 실시 예들의 블록들은 본 발명의 범위로부터의 벗어남 없이 좀 더 복잡한 블록들로 물리적으로 조합될 수 있다.
따라서, 실시 예들은 복수의 컴퓨터 노드들을 포함하는 분산 이종 컴퓨터 시스템에서 최적화된 잡 성능을 위하여 자원을 동적으로 재할당하는 장치를 제공할 수 있다. 장치는 복수의 컴퓨터 노드들 중 적어도 하나의 컴퓨터 노드에서 수행될 적어도 하나의 잡을 호출하도록 구성되는 애플리케이션 인젝터를 포함할 수 있다. 또한, 장치는 컴퓨터 노드들 각각에서 워크로드 값을 동적으로 수집하도록 구성되는 콜렉터(collector)를 포함할 수 있다. 또한, 장치는 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하도록 구성되는 잡 인포머(job informer)를 포함할 수 있다. 또한, 장치는 컴퓨터 노드들 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하도록 구성되는 잡 옵티마이저(job optimizer)를 포함할 수 있다. 데이터 분산 벡터는 복수의 노드들로 분산되어 적어도 하나의 잡을 수행할 데이터의 총량을 정의할 수 있다.
종래의 시스템들 및 방법들과 달리, 제안된 방법 및 시스템은 좀 더 복잡한 비선형 최적화 기법들을 사용할 수 있도록 애플리케이션 프로세스 및 최적화 프로세스를 분리시켜 컴퓨터 노드들의 광범위한 최적화를 달성할 수 있다. 또한 제안된 방법 및 시스템은 횡적으로, 뿐만 아니라, 종적으로 확장될 수 있다. 이는 내장된 장치로부터 완성된 계층 구조의 컴퓨터 클러스터로 확장하는 다양한 컴퓨터 노드들을 사용하는 것을 가능하게 할 수 있다.
종래의 시스템들 및 방법들과 달리, 본 발명의 시스템 및 방법은 애플리케이션 개발 및 최적화 프로세스를 분리시킬 수 있다. 즉, 애플리케이션 개발자들이 최적화 태스크로부터 자유로워지는 것이 가능할 수 있으며, 이는 빠른 업데이트를 가능하게 한다. 최적화 태스크가 독립적으로 수행되고, 모든 컴퓨터 노드들(예를 들어, 도 3의 100a~100n)의 완전한 가시성(complete visibility)를 갖기 때문에, 광범위한 최적화 값이 달성될 수 있고, 그로 인하여 개별적인 컴퓨터 노드들의 신뢰성이 향상되고, 비용 절감의 향상이 보장된다.
이하의 도면들, 특히 도 1 내지 도 15를 참조하면, 본 발명의 실시 예들이 도시된다. 이하의 도면들에서, 유사한 참조 기호들은 도면들 전체에 걸쳐 일괄적으로 대응하는 특징들을 가리킨다.
도 1은 일부 연관된 기술 분야에서, 애플리케이션 프로세스가 최적화 프로세스와 연결된 컴퓨터 노드(100)의 블록도를 보여준다. 종래의 방법들에서, 개발자는 최적화 프로세스 및 데이터 분산 기법(예를 들어, OpenVX)를 작성해야 한다. 데이터 분산은 애플리케이션 프로세스가 구동 중인 프로세서에 최적화 프로세스가 첨부되는 종래의 방법들을 사용하여 수행될 수 있다. 그러므로, 복잡한 최적화 기법들은 구동될 수 없으며, 보조-최적화 분산 벡터(sub-optimal distribution vector)가 충분해야 한다. 또한, 종래의 방법들은 다른 활성 태스크들 및 컴퓨터 노드(100)의 적은 가시성(less visibility)을 포함한다. 또한, 종래의 방법들은 멀티-컴퓨터 클러스터 환경(예를 들어, Hadoop cluster)에서 확장되지 않으며, 입력/출력(I/O) 집중 태스크(intensive task), 랜덤 메모리 액세스 등과 같은 태스크들의 일부 형태를 관리할 수 없다.
인더스트리 4.0(industry 4.0)은 가시적으로 스마트하고 좀 더 자동화된 장비를 포함한다. 결과적으로, 동작 수행 메커니즘 및 자동화된 의사 결정에서의 활용을 보장하기 위하여, 현재 장치에 의해 생성되는 많은 감각 데이터 획득(huge sensory data getting)은 실시간으로 많은 데이터 프로세싱을 요구한다. 즉, 거대한 데이터 센터들, 특히, 제조업 분야에서의 요구는 앞으로 계속 증가할 것이다. 새로운 데이터 센터를 설치하는 것은 앞서 언급된 것들과 함께 다양한 문제점들을 직면한다. 그러나 에너지 최적화, 향상된 신뢰성, 및 지속적인 성능 업데이트 등과 같은 문제점들은 데이터 센터들 및 제조 제작의 전체적인 운영 비용에 큰 영향을 가질 것이다. 제조사들이 1일 하나의 장비당 1 달러의 비용을 절약하도록 관리하더라도, 1년에 수백만 달러의 비용이 절약될 수 있다. 이를 고려하면, 제조 설비 비용을 제외하고, 설비 중단으로 인한 페널티 및 제조의 유지 비용은 매우 크다.
도 2는 일부 실시 예들에 따라, 애플리케이션 프로세스 및 최적화 프로세스가 분리된 컴퓨터 노드(100)의 블록도를 보여준다. 도 2에 도시된 바와 같이, 애플리케이션 프로세스 및 분산 기법들(distribution techniques)은 분리된다. 그러므로 애플리케이션 개발자 또는 애플리케이션 프로세스 개발자는 데이터 분산 벡터를 고려하지 않아도 된다. 애플리케이션 프로세스와 연관된 애플리케이션은 단순히 태스크들에 대한 데이터 분산 벡터를 문의(query)할 수 있다. 그러나, 데이터 분산은 별도로 수행될 수 있고, 복잡한 비선형 최적화들(complex non-linear optimizations)은 시스템이 안정화되도록 사용될 수 있다.
애플리케이션 프로세스 및 데이터 분산 기법들이 분리되기 때문에, 애플리케이션 프로세스 및 데이터 분산 기법들이 모든 다른 컴퓨터 노드들 뿐만 아니라 모든 다른 활성 태스크들의 좀 더 많은 가시성(more visibility)을 가질 수 있다. 도 1의 컴퓨터 노드(100)를 사용하는 종래의 시스템들 및 방법들과 달리, 도 2의 컴퓨터 노드(100)를 사용하는 제안된 방법은 멀티-컴퓨터 클러스터 환경으로 확장하기 용이할 수 있고, I/O 집중 태스크, 랜덤 메모리 액세스 등과 같은 모든 종류의 태스크들을 관리할 수 있다.
종래의 시스템들 및 방법들과 달리, 제안된 시스템 및 방법은 컴퓨터 노드(100)의 광범위한 스케일에서 애플리케이션 계층들로부터 생성된 태스크들을 분산시킬 수 있고, 이로 인하여, 요구되는 최소 성능에 영향을 미치지 않고, 또한 태스크들의 분산에 포함된 비용을 최소화하면서, 신뢰성이 향상될 수 있다.
종래의 시스템들 및 방법들은 애플리케이션 개발(즉, 기술) 및 최적화 프로세스 사이에서 고정된 연결(static linkage)을 제공할 수 있다. 애플리케이션 개발자들은 최적화들과 관계될 수 있다. 다른 종래의 시스템들 및 방법들에서, 일부 설계들은 이종 컴퓨팅을 위한 향상된 컴파일러와 같이 제안된다. 이러한 종류의 설계들에서, 애플리케이션들은 컴파일러가 최적화를 위하여 동일한 프로세스를 사용하나, 컴파일러는 OpenCL(Open Computing Language)로 특정되는 방식에서 개발되었다. 유사하게, 다른 설계들은 이종 컴퓨팅을 위한 설계 프레임워크와 같이 제안된다. 이러한 종류의 설계 프레임워크에서, 설계 프레임워크를 고수하지 않는 애플리케이션은 최적화로부터의 이점을 얻을 수 없다.
종래 시스템들 및 방법들의 문제점은 애플리케이션 개발 및 최적화 프로세스 구성 사이의 고정된 연결에 기반된다. 이러한 문제점은 종래의 시스템들 및 방법들의 사용을 제한한다. 그러나 개발자들은 시스템 레벨 가시성(개발자들의 애플리케이션과 함께 시스템에서 구동되는 다른 애플리케이션들)을 포함하지 않는다. 그러므로, 최적화는 애플리케이션에 특화된다. 그러나 제안된 시스템 및 방법에서, 애플리케이션 프로세스 및 최적화 프로세스는 서로 분리될 수 있다. 또한, 개발자들은 완전한 시스템 레벨 가시성(complete system level visibility)을 가질 수 있다. 즉, 애플리케이션 개발자들은 데이터 분산 벡터를 고려하지 않아도 된다.
도 3은 일부 실시 예들에 따라, 최적화된 잡 성능을 위하여 자원들을 동적으로 재할당하기 위한 복수의 컴퓨터 노드들(100a~100n)(본문에서 컴퓨터 노드들(100)으로 지칭될 수 있음)을 포함하는 분산 이종 컴퓨터 시스템(300)을 보여준다. 일부 실시 예들에서, 분산 이종 컴퓨터 시스템(300)은 복수의 컴퓨터 노드들(100a~100n)을 포함할 수 있다. 컴퓨터 노드들(100) 각각은 네트워크 인터페이스를 통해 네트워크(301)와 기능적으로 연결되어, 컴퓨터 노드들(100) 사이의 데이터 통신, 예를 들어, 컴퓨터 노드(100a) 및 컴퓨터 노드(100b) 사이의 데이터 통신을 제공할 수 있다.
컴퓨터 노드들(100) 각각은 애플리케이션 계층(110)(예를 들어, 110a, 110b, 110n) 및 최적화 계층(120)(예를 들어, 120a, 120b, 120n)을 포함할 수 있다. 애플리케이션 계층(110)(또는 애플리케이션 프로세스)은 복수의 태스크들에 대한 데이터 분산 벡터(data distribution vector)를 문의(query)할 수 있다. 최적화 계층(120)은 별도로 데이터 분산을 처리할 수 있다. 애플리케이션 계층(110) 및 최적화 계층(120)의 상세한 기능들은 도 4를 참조하여 더욱 상세하게 설명된다.
도 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)를 포함할 수 있다.
애플리케이션 특정 구성들(111)은 AI(112)와 데이터 로드 및 태스크 종류(task type)를 공유하도록 구성될 수 있다. 일부 실시 예들에서, AI(112)는 컴퓨터 노드(110)에서 수행될 적어도 하나의 잡(at least one job to be performed)을 호출하도록 구성될 수 있다. 일부 예들에서, AI(112)는 애플리케이션 특정 구성들(111) 및 최적화 계층(120) 사이의 커넥터로써 동작하는 매우 가벼운 무게의 구성(very light weight component)일 수 있다.
태스크 종류 및 데이터 로드를 수신한 이후에, AI(112)는 최적화 계층(120)으로 문의하여 데이터 분산 벡터를 획득할 수 있다. 데이터 분산 벡터에 따라, 태스크는 분산 벡터의 데이터 로드들과 함께 다른 컴퓨터 노드들(100) 사이에서 스케줄될 수 있다. 그러나 AI(112)에 의해 발생되는 오버헤드는 AI(112)가 O(1) 시간 동안 구동하므로(the AI 112 runs in O(1) time.), 무시될 수 있다.
최적화 계층(120)의 구성들은 이하에서 설명된다.
콜렉터(121)는 컴퓨터 노드들(100) 각각에서 워크로드 값을 동적으로 수집하도록 구성될 수 있다. 일부 실시 예들에서, 콜렉터(121)는 노드마다 도 3의 분산 이종 컴퓨터 시스템(300)의 수집 파라미터들(성능과 연관된 파라미터들, 신뢰성과 연관된 파라미터들, 에너지와 연관된 파라미터들 등)의 태스크를 기본적으로 처리할 수 있다. 또한, 분산 이종 컴퓨터 시스템(300)의 파라미터들은 고정된 것 및 동적인 것 등과 같이 2개의 카테고리들로 분류될 수 있다. 고정 및 동적 카테고리들의 상세한 설명은 도 8을 참조하여 설명될 것이다. 또한, 콜렉터(121)는 특정 사용-사례 시나리오들에서 특정 컴퓨터 노드(100)로 확장될 수 있는 개념 계층(abstraction)을 기본적으로 정의할 수 있다.
리프레셔(1223)는 최적화 계층(120)의 활성화를 트리거하도록 구성될 수 있다. 또한, 리프레셔(123)는 콜렉터(121)를 트리거하여 분산 이종 컴퓨터 시스템(300)의 파라미터들을 업데이트할 수 있다. 잡 옵티마이저(122)는 잡 인포머(124)(또는 태스크 정보 저장소)에 리스팅된 전체 태스크들에 대하여 수집된 파라미터들을 기반으로 태스크들을 최적화하도록 구성될 수 있다. 일부 예들에서, 활성화(activation)는 주기적(periodic) 또는 비주기적(non-periodic)인 사용-사례 시나리오에 기반된 외부 트리거 신호일 수 있다.
잡 인포머(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)일 수 있다.
일부 예들에서, 잡 옵티마이저(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)에 저장되고, 캐싱될 수 있다.
LT(127)의 각 행 엔트리는 잡 인포머(124)에 유지되는 유일한 태스크 식별자와 연관될 수 있고, 대응하는 플로팅 엔트리들(corresponding floating entries)은 데이터 분산 벡터를 정의할 수 있다. 각 행의 플로팅 엔트리들의 합은 1.0과 같다. 태스크에 대한 컴퓨터 노드(100)의 더 높은 플로팅 값은 주어진 컴퓨터 노드(100)가 그 때의 태스크에 대한 더 높은 데이터를 관리하는데 좀 더 적절한 것을 의미할 수 있다. 예상 완료 시간 엔트리는 데이터 크기당 단위로 태스크들에 대한 이론적인 값일 수 있다. 주어진 데이터 크기에 대한 태스크는 데이터 크기에 대한 시간 내에 완료되는 것이 예상될 수 있다. LT(127)는 실제 구동 시간들 및 이론상의 추정된 시간들 사이의 차이(variance)를 유지하도록 구성될 수 있다. 최대 값에 대응하는 차이는 태스크를 구동하는 애플리케이션에 의해 보고될 수 있다. 이하의 표 1은 예시적인 룩업 테이블을 보여준다.
태스크 ID 컴퓨터 노드(100a) 컴퓨터 노드(100b) 컴퓨터 노드(100c) 컴퓨터 노드(100d) 컴퓨터 노드(100n) 예상되는 완료 시간 (단위/데이터) 차이 (단위/데이터)
1 0.2 0.1 0.3 0.3 0.1 1.2 0.02
2 0.1 0.2 0 0.4 0.3 3.1 0.1
3 0 0 0 0 1 2.5 0.005
일부 실시 예들에서, 장치/컴퓨터 노드(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)이다.
종래의 시스템들 및 방법들과 달리, 제안된 최적화 프로세스는 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)의 이점을 활용할 수 있다. 이는 태스크 최적화로부터 애플리케이션 개발자들을 끌어낼 수 있다. 대신에, 그들은 애플리케이션 개발에 좀 더 집중할 수 있고, 이는 전체적인 개발 시간의 단축을 야기한다.
도 5는 본 발명의 실시 예들에 따른 분산 이종 컴퓨터 시스템(300)에서 최적화된 잡 성능을 위하여 자원을 재할당하는 방법을 보여주는 순서도(500)이다. 502 동작에서, 방법은 컴퓨터 노드(100)에서 수행될 적어도 하나의 잡을 호출(invoke)하는 것을 포함할 수 있다. 일부 실시 예들에서, 방법은 AI(112)가 컴퓨터 노드(100)에서 수행될 적어도 하나의 잡을 호출하도록 할 수 있다. 일부 실시 예들에서, 복수의 컴퓨터 노드들(100a~100n) 중 컴퓨터 노드(100a)에서 수행될 적어도 하나의 잡이 호출될 수 있다. 일부 다른 예들에서, 복수의 컴퓨터 노드들(100a~100n) 중 컴퓨터 노드(100b)에서 수행될 적어도 하나의 잡이 호출될 수 있다.
504 동작에서, 방법은 컴퓨터 노드들(100) 각각에서 워크로드 값(workload value)을 동적으로 수집하는 것을 포함할 수 있다. 방법은 콜렉터(121)가 컴퓨터 노드들(100) 각각에서 워크로드 값을 동적으로 수집하도록 할 수 있다. 동작 506에서, 방법은 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들을 판별하도록 할 수 있다.
동작 508에서, 방법은 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하는 것을 포함할 수 있다. 방법은 잡 옵티마이저(122)가 컴퓨터 노드들(100) 각각에서 알려진 그리고 알려지지 않은 잡들 및 워크로드 값을 기반으로 데이터 분산 벡터를 판별하도록 할 수 있다. 일부 실시 예들에서, 데이터 분산 벡터는 복수의 컴퓨터 노드들(110a~100n)로 분산되어 적어도 하나의 잡을 수행하는 데이터의 총량을 정의할 수 있다.
510 동작에서, 방법은 데이터 분산 벡터를 저장하는 것을 포함할 수 있다. 방법은 LT(127)가 데이터 분산 벡터를 저장하도록 할 수 있다. 512 동작에서, 방법은 분산 이종 컴퓨터 시스템(300)의 컴퓨터 노드들(100) 각각에서 적어도 하나의 잡의 성능을 주기적으로 관리하는 것(예를 들어, 최적화하는 것)을 포함할 수 있다. 방법은 리프레셔(123)가 분산 이종 컴퓨터 시스템(300)의 컴퓨터 노드들(100) 각각에서 적어도 하나의 잡의 성능을 주기적으로 관리하도록(예를 들어, 최적화하도록) 할 수 있다.
방법 및 순서도(500)에서의 다양한 동작들, 행동들, 블록들, 단계들 등은 도시된 순서, 또는 다른 순서 또는 동시에 수행될 수 있다. 또한, 일부 실시 예들에서, 동작들, 행동들, 블록들, 단계들 등의 일부는 본 발명의 범위로부터의 벗어남 없이 생략되거나, 추가되거나, 변형되거나, 또는 스킵될 수 있다.
도 6은 본 발명의 실시 예들에 따른 다른 컴퓨터 노드들(100) 사이에서 잡을 호출하는 AI(122)의 다양한 동작을 보여주는 개념도(600)이다.
602 동작에서, 방법은 데이터 정보 및 태스크 정보를 포함하는 태스크를 호출하는 것을 포함할 수 있다. 방법은 AI(112)가 데이터 정보 및 태스크 정보를 포함하는 태스크를 호출하도록 할 수 있다. 604 동작에서, 방법은 특정 태스크 식별자에 대한 데이터 분산 벡터에 대하여 LT 매니저(125)로 문의하는 것을 포함할 수 있다. 방법은 AI(112)가 특정 태스크 식별자에 대한 데이터 분산 벡터에 대하여 LT 매니저(125)로 문의하도록 할 수 있다.
606 동작에서, 방법은 대응하는 태스크 식별자에 대한 데이터 분산 벡터를 LT 매니저(125)로부터 수신하는 것을 포함할 수 있다. 방법은 AI(112)가 대응하는 태스크 식별자에 대한 데이터 분산 벡터를 LT 매니저(125)로부터 수신하도록 할 수 있다. 608 동작에서, 방법은 데이터 분산 벡터에 따라 태스크를 스케줄링하는 것을 포함할 수 있다. 방법은 AI(112)가 데이터 분산 벡터에 따라 태스크를 스케줄링하도록 할 수 있다.
610 동작에서, 방법은 최적화를 위한 증가 데이터로써 역할을 할 수 있는 LT 매니저(125)로 태스크에 의한 바이트-데이터 당 소모 시간의 차이(the variance time-taken per byte-data by the task)를 전송할 수 있다. 방법은 AI(112)가 최적화를 위한 증가 데이터로써 역할을 할 수 있는 LT 매니저(125)로 태스크에 의한 바이트-데이터 당 소모 시간의 차이를 전송하도록 할 수 있다.
방법 및 개념도(600)에서의 다양한 동작들, 행동들, 블록들, 단계들 등은 도시된 순서, 또는 다른 순서 또는 동시에 수행될 수 있다. 또한, 일부 실시 예들에서, 동작들, 행동들, 블록들, 단계들 등의 일부는 본 발명의 범위로부터의 벗어남 없이 생략되거나, 추가되거나, 변형되거나, 또는 스킵될 수 있다.
도 7은 일부 실시 예들에 따른, 최적화 프로세스/최적화 계층(120)에 포함된 다양한 동작들을 보여주는 개념도(700)이다. 최적화 계층(120)은 분산 이종 컴퓨터 시스템(300)에서 오직 하나의 인스턴스를 구동할 수 있다. 또한, 최적화 계층(120)은 LT 매니저(125) 및 잡 옵티마이저(122)를 병렬로 트리거함으로써, 그것의 프로세스들을 시작할 수 있다. LT 매니저(125)는 쿼리 및 응답 서비스를 시작할 수 있고, AI(112)로부터 수신된 쿼리들을 들을 수 있다. 쿼리들은 이하에서 설명되는 종류들 중 하나일 수 있다.
데이터 분산 벡터 쿼리(Data distribution vector query): AI(112)는 특정 태스크 식별자에 대한 쿼리를 시작하여 최적화된 데이터 분산 벡터(optimized data distribution vector)를 획득할 수 있다. 또한, LT 매니저(125)는 데이터 분산 벡터를 LT(127)로부터 페치할 수 있다. 데이터 분산 벡터가 LT(127)에서 가용하지 않는(unavailable) 경우, LT(127)는 기본 분산 벡터(default distribution vector)로 응답할 수 있다. 일부 실시 예들에서, LT 매니저(125)에 의해 예상되는 수신된 데이터 분산 벡터 쿼리는 이하의 포맷을 가질 수 있다.
Query Type="Data Distribution Vector", Task ID='1"
또한, 상술된 데이터 분산 벡터 쿼리를 수신할 때, LT 매니저(125)는 이하의 값으로 응답할 수 있다.
Task ID="1", Node1 =0.2, Node2 =0.1, Node3 =0.3, Node4 =0.3, Node N=0.1, Expected Time=1.2
테이블 엔트리들은 LT(127) 엔트리들과 동일한 의미를 포함할 수 있다. 상술된 쿼리의 태스크 식별자 필드는 알려지지 않은 태스크(unknown task)을 지칭하는 NULL일 수 있다.
피드백 쿼리(Feedback query): AI(112)는 데이터 분산 벡터를 기반으로 태스크를 스케줄링한 이후에, 바이트 당 소모된 시간 차이(time-variance)를 LT 매니저(125)로 반환(return)할 수 있다. 또한, LT 매니저(125)는 수신된 값이 LT(127)에 현재 값보다 큰 경우에만, LT(127)로 정보를 업데이트할 수 있다. 예시적인 피드백 쿼리는 이하의 포맷을 가질 수 있다.
Query Type="Feedback", Task ID='1", Variance Report=0.02
피드백 쿼리를 수신할 때, 보고된 차이가 최대라면, LT 매니저(125)는 LT(127)의 차이 엔트리(variance entry)를 갱신할 수 있다. AI(112)는 LT 매니저(125)로부터 승인(acknowledgment)을 기다리지 않을 수 있다.
셧다운 쿼리(Shutdown query): LT 매니저(125)는 외부 소스들(external sources)로부터 비동기 셧다운 쿼리(asynchronous shutdown query)를 수신할 수 있다. 셧다운 쿼리를 수신할 때, LT 매니저(125)는 셧다운 요청을 잡 옵티마이저(122)로 시작할 수 있다.
Query Type= " Shutdown"
최적화 계층(120)은 최적화의 태스크를 수행할 수 있다. 각 반복 동작 이후에, 최적화 계층(120)은 분산 이종 컴퓨터 시스템(300)으로 알려진 모든 태스크에 대한 데이터 분산 벡터를 출력할 수 있다. 이러한 데이터 분산은 다음 반복까지 유효한 것으로 가정될 것이다.
콜렉터(121)의 상세한 설명은 도 8과 함께 설명될 것이다. 잡 옵티마이저(122)의 상세한 설명은 도 9a 및 도 9b와 함께 설명될 것이다. 잡 인포머(124)의 상세한 설명은 도 10과 함께 설명될 것이다. 리프레셔의 상세한 설명은 도 12와 함께 설명될 것이다.
도 8은 일부 실시 예에 따른, 컴퓨터 노드들(100) 각각에서 워크로드 값을 동적으로 수집하는 콜렉터(121)의 블록도를 보여준다. 콜렉터(121)는 데이터 입력(121a), 고정 콜렉터(121b)(static collector), 동적 콜렉터(121c)(dynamic collector), 데이터 출력(121d), 내부 클럭(121e), 및 트리거 프로세서(121f)를 포함할 수 있다.
콜렉터(121)는 잡 옵티마이저(122)에 의해 요청되는 파라미터 값들을 수집하도록 구성될 수 있다. 고정 콜렉터(121b)는 고정 파라미터들(static parameters)(예를 들어, 최대 메모리 용량, 최대 프로세서 클럭 스피드 등)을 수집할 수 있다. 고정 파라미터들은 주기적으로 변화되지 않을 수 있거나 또는 하드웨어 업그레이드와 같은 외부 이벤트들에 의해 변화될 수 있다. 그러므로, 고정 콜렉터(121b)는 외부 이벤트가 발생하고, 트리거 이벤트가 트리거 프로세서(121f)를 통해 처리되는 경우에만 데이터 입력의 인터페이스를 통해 호출될 수 있다.
동적 콜렉터(121c)는 데이터 입력(121a)의 인터페이스를 통해 주기적으로 수집될 수 있는 동적 파라미터들(dynamic parameters)(예를 들어, 메모리 사용량, 현재 프로세서 사용량, 및 프로세서 온도 등)를 수집하도록 구성될 수 있다. 동적 콜렉터(121c)는 내부 클럭(121e)에 응답하여 연속 데이터의 샘플링을 수행할 수 있다. 일부 실시 예들에서, 콜렉터(121)는 콜렉터(121)가 확장되는 방식, 예를 들어, 새로운 콜렉터들이 시스템 구성 업데이트를 기반으로 나중에 추가될 수 있는 방식으로 설계될 수 있다. 콜렉터(121)는 "키=밸류" 쌍(key=value pair)으로써 값을 (예를 들어, 데이터 데이터 출력(121d)의 인터페이스를 통해) 출력할 수 있다. 키(key)는 최적화 수학적 모델에 의해 고려되는 유일한 파라미터 명칭을 정의할 수 있다.
도 9a는 일부 실시 예들에 따른, 완료 태스크 로드에 대한 데이터 분산 벡터를 획득하는 최적화 프로세스의 예를 보여준다. 잡 옵티마이저(122)는 콜렉터(121) 및 잡 인포머(124)로부터 데이터를 수신할 수 있고, 이후에, 최적화 기법(예를 들어, 선형 최적화 문제에서의 단순 방식)을 시작할 수 있다. 잡 옵티마이저(122)는 이하의 제안된 수학적 프레임워크를 기반으로 최적화 동작을 시작할 수 있다.
"D"는 m의 컴퓨터 노드들(100) 각각에 대한 상수 C={Cp}의 세트에 따른 수행 시간 "t"를 최소화하는 데이터 분산 벡터이다. "P"는 중요한 자원들에 관하여 서로 독립적이고 동시에 작용할 수 있는 함수일 수 있는 것으로 가정한다.
"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)는 (선형/비선형, 확률적, 또는 하이브리드일 수 있는) 최적화를 위하여 사용되는 수학적 모델을 설명할 수 있다.
첫 번째 단계에서, 데이터 단위당 요구되는 다수의 플로팅 포인트 동작들(FLOPs, flops)이 태스크 복잡도(task complexity)를 기반으로 잡 인포머(124)에 리스팅된 모든 태스크들에 대하여 계산될 수 있다. 이러한 로드는 모든 태스크에 추가되어 총 로드(total load)를 획득할 수 있다. 총 로드(total load)는 현재 Cp, Pp, Rp, 및 Ep를 포함하는 상술된 수학적 프레임워크로 적용될 수 있다. 또한, 단순 방식, 그레디언트 감소/증가, 내점 방식 등과 같은 최적화 기법들은 수학적 모델을 해결하기 위하여 사용될 수 있다. 첫 전째 단계 이후에, 태스크는 총 로드에 대한 단일 데이터 분산 벡터를 남길 수 있다.
예를 들어, 도 9a에 도시된 바와 같이, 총 로드가 60 플롭/유닛(=20+30+10)인 것으로 가정하자. 콜렉터(121)의 값은 3개의 다른 콜렉터에 대하여 Matrix Collector "Ic" [2, 3, 1]로써 주어질 수 있다. 이종 컴퓨터 시스템은 4개의 다른 컴퓨터 노드들(100)을 포함하고, 모든 태스크들은 컴퓨터 노드들(100)로 동일한 관련성(same affinity)을 갖는 것으로 가정하자. 최적화 모델은 아래와 같이 간주될 수 있다.
Time = 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에 대하여, 총 시간이 최소화될 수 있다. 예를 들어, 주어진 상수는 아래와 같을 수 있다.
A = Transpose [2.5, 3.5, 0.5]
B = Transpose [0.8, 1.17, 0.167]
C = Transpose [0.65, 0.875, 0.125]
D = Transpose [1.25, 1.75, 0.25]
또한, 단순 기법의 수행은 cn1, cn2, cn3, 및 cn4의 최적 값을 각각 0.1, 0.3, 0.4, 및 0.2가 되도록 할 수 있다.
도 9b는 일부 실시 예들에 따른, 데이터 분산 벡터를 노멀 벡터로 변환하는 정규화 프로세스(normalization process)의 예를 보여준다.
두 번째 단계에서, 잡 옵티마이저(122)는 총 로드의 데이터 분산 벡터를 사용하고, 잡 인포머(124)로 리스팅된 모든 태스크에 대한 총 로드를 정규화할 수 있다. 정규화는 전체 로드에 대한 태스크의 로드 기여도(load contribution)를 기반으로 수행되어 그것의 데이터 분산 벡터를 획득할 수 있다. 모든 태스크에 대하여 정규화된 벡터는 LT(127)에 업데이트될 수 있다.
도 10은 일부 실시 예에 따른, 분산 이종 컴퓨터 시스템(300)에서 구동되는 다른 태스크들에 대한 정보 저장을 유지하는 잡 인포머/태스크 정보 저장(124)을 보여준다.
잡 인포머(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)이다.
자동 분석(Automatic Analysis): 자동 분석은 요구되는 정보를 모으고 알려지지 않은 태스크를 분석하는 것을 포함할 수 있고, 잡 인포머(124)에 정보를 갱신할 수 있다. 알려지지 않은 태스크들은 사용자가 어떤 정보를 제공하지 않는 그것들의 태스크들일 수 있다. LT 매니저(125)가 NULL로 채워진 "태스크 식별자"를 갖는 데이터 분산 쿼리를 수신할 때마다, LT 매니저(125)는 유일한 태스크 식별자를 알려지지 않은 태스크로 제공할 수 있고, 잡 인포머(125)를 트리거하여 알려지지 않은 태스크의 분석을 시작하고 요구되는 정보를 모으는 것을 시도할 수 있다.
도 11은 일부 실시 예들에 따른, 알려지지 않은 태스크 식별자에 대한 태스크 정보를 생성하는 방법을 보여주는 순서도(1100)이다. 1102 동작에서, 방법은 특정 태스크 식별자에 대한 데이터 분산 벡터를 위한 LT 매니저(125)로의 쿼리를 입력하는 것를 포함한다. 일부 실시 예들에서, 방법은 AI(112)가 특정 태스크 식별자에 대한 데이터 분산 벡터를 위하여 LT 매니저(125)로 쿼리를 입력하도록 할 수 있다.
1104 동작에서, 방법은 요청된 태스크 식별자가 잡 인포머(124)에 존재하는지 또는 없는지 판별하는 것을 포함할 수 있다. 일부 실시 예들에서, 방법은 LT 매니저(125)가 요청된 태스크 식별자가 잡 인포머(124)에 존재하는지 또는 없는지 판별하도록 할 수 있다. 만약 태스크 식별자가 잡 인포머(124)에 없는 경우, 잡 인포머(124)는 자동 분석 프로세스(예를 들어, 교정(calibration))를 1106 동작에서, 시작할 수 있다. 잡 인포머(124)가 태스크 식별자가 존재하는 것으로 판별한 경우, 잡 인포머(124)는 요청된 태스크 정보를 1108 동작에서 반환(return)할 수 있다.
1106 동작에서, 방법은 자동 분석 프로세스를 시작하여 태스크 식별자에 대한 정보를 판별하는 것을 포함할 수 있다. 정보가 특정 태스크 식별자에 대해 유효하지 않은 경우, 태스크 식별자는 교정 태그(calibration tag)로 마킹될 수 있다. 방법은 잡 인포머(124)가 자동 분석 프로세스를 시작하여 태스크 식별자에 대한 정보를 판별하도록 할 수 있다. 정보가 특정 태스크 식별자에 대해 유효하지 않은 경우, 태스크 식별자는 교정 태그로 마킹될 수 있다.
1110 동작에서, 방법은 자동 분석을 사용하여 알려지지 않은 태스크들을 알려진 태스크들로 매핑하는 것 및 알려진 태스크 모델에 대한 데이터 분산 벡터를 반환하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 자동 분석을 사용하여 알려지지 않은 태스크들을 알려진 태스크들로 매핑하고, 알려진 태스크 모델에 대한 데이터 분산 벡터를 반환하도록 할 수 있다.
1112 동작에서, 방법은 고정된 횟수의 반복 동작(the fixed number of iterations)에 대한 차이(variance)를 분석하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 자동 분석을 사용하여 고정된 횟수의 반복(the fixed number of iterations)에 대한 차이를 분석하도록 할 수 있다. 1114 동작에서, 방법은 고정된 횟수의 반복 동안 연산된 차이의 분석을 기반으로 평균 제곱 오차(MSE; mean square error)를 계산하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 고정된 횟수의 반복 동안 연산된 차이의 분석을 기반으로 평균 제곱 오차(MSE)를 연산하도록 할 수 있다. 또한, 동일한 프로세스는 모든 알려진 태스크 모델들과 함께 모든 알려지지 않은 태스크 식별자들에 대하여 반복될 수 있다.
1116 동작에서, 방법은 알려지지 않은 태스크에 대한 최적의 결과(best fit result)로써 최소 평균 제곱 오차(minimum MSE)를 갖는 알려진 태스크에 마킹하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 알려지지 않은 태스크에 대한 최적의 결과(best fit result)로써 최소 평균 제곱 오차(minimum MSE)를 갖는 알려진 태스크에 마킹하도록 할 수 있다. 예를 들어, 최소의 평균 제곱 오차를 야기하는 태스크 모델이 알려지지 않은 태스크에 대한 최적의 태스크 모델로써 사용될 수 있다.
1118 동작에서, 방법은 교정(calibration)을 수행하여 알려지지 않은 태스크 식별자에 대한 교정 태그를 제거하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 교정(calibration)을 수행하여 알려지지 않은 태스크 식별자에 대한 교정 태그를 제거하도록 할 수 있다. 1120 동작에서, 방법은 다음을 위하여 최적의 태스크 모델의 정보를 갖는 알려지지 않은 태스크 식별자를 업데이트하는 것을 포함할 수 있다. 방법은 잡 인포머(124)가 다음을 위하여 최적의 태스크 모델의 정보를 갖는 알려지지 않은 태스크 식별자를 저장/업데이트하도록 할 수 있다.
방법 및 순서도(1100)에서의 다양한 동작들, 행동들, 블록들, 단계들 등은 도시된 순서, 또는 다른 순서 또는 동시에 수행될 수 있다. 또한, 일부 실시 예들에서, 동작들, 행동들, 블록들, 단계들 등의 일부는 본 발명의 범위로부터의 벗어남 없이 생략되거나, 추가되거나, 변형되거나, 또는 스킵될 수 있다.
종래의 시스템들 및 방법들과 달리, 제안된 시스템은 (프로세서+열 싱크/쿨러/팬+보드+디스크/메모리 등의 전체 시스템의 관점으로부터의)에너지 절약을 도울 수 있다. 요약하자면, 소비되는 전체 에너지는 컴퓨터 노드들(100)(예를 들어, 프로세서, 쿨러/팬 시스탬, 디스크 액세스 드라이버들, 메모리, 및 보드 상의 다른 구성들)에 의해 소비되고 제공되는 에너지들의 합에 비례할 수 있다. 또한, 컴퓨터 노드들(100)에 의해 낭비되는 에너지는 프로세싱 로드 및 비율에 차례차례 의존되는 온도 프로파일(temperature profile)의 영역과 직접적으로 연관된다.
온도 프로파일 및 그것의 1차 미분이 연속이기 때문에, 평균 값은 이하의 수학식에 의해 주어진다.
즉, 평균 온도는 컴퓨터 노드들(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)은 프로세서들 및 보조 프로세서들로 구성되고, 프로세서 및 보조 프로세서들 상에서 동시에 구동되는 태스크들을 고려하는 것으로 간주될 것이다.
사례 I. 일정한 클럭 주파수(Constant clock frequency): 태스크가 수행될 때, 프로세서 주파수는 변함없이 유지되는 것으로 가정될 것이다. (예를 들어, 오버-클럭 또는 언더-클럭이 없다.)
부 사례 1: 컴퓨터 노드들(100) 사이의 데이터 분산은 사실상 동일하다.
부 사례 2: 컴퓨터 노드들(100) 사이의 데이터 분산은 사실상 동일하지 않다.
사례 Ⅱ. 동적 클럭 주파수(Dynamic clock frequency): 컴퓨터 노드들(100)에서 최신의 프로세서들은 프로세서들이 그들의 주파수는 변경하여 과열을 방지하는 PROCHOT# 신호를 갖춘다. 이는 컴퓨터 노드들(100)의 처리 스피드 및 가열되는 속도를 변경할 것이다. 에너지 바이어스는 두 개의 동일한 프로세서들을 포함하는 분산 이종 컴퓨터 시스템(300)에 대하여 계산된다. 에너지 바이어스는 제안된 방법을 사용하여 절약된 에너지의 총량을 반영할 수 있다.
는 데이터 분산이 없는 경우 요구되는 에너지이고, 는 d1 데이터가 제1 동일 프로세서로 제공될 경우 요구되는 에너지 및 d2 데이터가 제2 동일 프로세서로 제공될 경우 요구되는 에너지이다. 그것들은 이하의 수학식들에 의해 주어진다.
종래의 시스템들 및 방법들과 달리, 제안된 방법은 분산 이종 컴퓨터 시스템(300)의 신뢰성의 이론적인 분석을 수행할 수 있다. 신뢰성(페일의 확률 또는 페일율의 역변환에 의해 한정되는 바와 같은)은 온도 의존적인 객체이고, 그것은 온도가 증가함에 따라 감소된다. 즉, 평균보다 낮은 레벨들에서 온도를 유지하는 것이 중요하다. 좀 더 나은 이해를 돕기 위하여, 최적화 데이터 분산과 비교하여 데이터 분산이 없는 사례가 고려될 것이다. 제안된 방법을 사용할 때, 단일 프로세서가 모든 데이터 로드를 관리하는 사례 및 복수의 프로세서들/보조 프로세스들이 존재하는 경우의 제안된 데이터 분산을 사용하는 사례를 비교하면, 에너지 소비가 후자의 사례에서 좀 더 감소될 수 있다. 이는 제안된 방법을 사용하는 최적 데이터 분산 및 랜덤/국부적인 데이터 분산에 적용된다. 국부적인 데이터 분산 기법은 로컬 프로세서 스케줄러들과 같이 완전한 가시성을 갖지 않는다. 즉, 확립된 관계로부터, 평균 온도는 후자의 경우에서 비교적 낮다. 즉, 낮은 페일율과 높은 MTBF 및 최종적으로 높은 신뢰성을 야기할 수 있다.
종래의 시스템들 및 방법들과 달리 제안된 방법은 시스템 및 환경에 대하여 의존도가 더 낮다. 제안된 시스템 및 방법이 시스템 및 환경에서 의존도가 낮은 것을 보여주는 일부 실시 예들에서, 제안된 시스템은 다른 구성들을 포함하는 두 개의 시스템들을 기본적으로 포함할 수 있다. 제1 시스템은 좀 더 느린 프로세서(예를 들어, 느린 CPU) 및 좀 더 느린 보조 프로세서(예를 들어, 느린 GPU)로 구성될 수 있다. 제2 시스템은 좀 더 빠른 프로세서 및 좀 더 빠른 GPU로 구성될 수 있다.
상술된 제안 방법 및 시스템을 사용하여 이미지를 블러링하기 위하여 예시적인 애플리케이션이 개발될 수 있다. 선택된 시스템 구성들은 제2 시스템이 제1 시스템의 업그레이드 버전으로써 간주될 수 있도록 한다. 개발된 블러 애플리케이션은 제1 시스템을 위하여 최적화될 수 있다. 제2 시스템으로의 제1 시스템의 업데이트를 포함하는 현재 시나리오에 있어서는, 제1 시스템을 위하여 최적화된 애플리케이션이 업데이트되는 것을 요구할 수 있다. 그러나 본문에서, 제안 방법을 사용하여 애플리케이션이 개발된 경우, 유사한 최적화를 사용하여 제2 시스템상에서 구동될 수 있다. 이는 최적화 기법을 변형하여 모든 호출(every call)에 대한 다른 데이터 분산 벡터를 획득하는 것에 의해 경험될 수 있다.
도 12는 일부 실시 예들에 따른, 리프레셔(123)가 최적화 프로세스에 대하여 트리거되는 예시적인 시나리오를 보여준다. 리프레셔(123)는 상술된 최적화 프로세서의 다음 반복 동작의 시작을 트리거할 수 있다. 트리거는 주기적인 타이머 만료(periodic timer expiration) 또는 외부 요인에 기인할 수 있다. 타이머 기반의 트리거는 일부 타임 구간 이후에, 다음 최적화 반복 동작을 시작하기 위하여 사용될 수 있다. 이전 반복 동작에 대한 LT(127)의 차이 엔트리들을 기반으로 타이머 구간은 증가되거나 또는 감소될 수 있다.
리프레셔(123)는 피드백을 기반으로 타이머 구간/시간 스탬프를 변화시키는 곱증가/합 감소(MIAD; multiplicative increase and additive decrease) 방식을 따를 수 있다. MSE가 사용자-특정 임계치보다 낮은 경우, 타이머 구간은 증가될 수 있고, 그렇지 않다면, 타이머 구간은 감소될 수 있다. 외부 신호(external siganl)는 시스템이 일부 변화들을 겪은 경우에만, 다음 반복 동작을 시작하기 위하여 트리거될 수 있다. 모든 활성 애플리케이션들에 의해 보고된 차이가 임계치보다 낮은 경우, 리프레셔(123)의 타임 스탬프(timestamp)가 증가될 수 있다. 모든 활성 애플리케이션들에 의해 보고된 차이가 특정된 임계치 내에 포함되지 않는 경우, 리프레셔(123)의 타임 스탬프(timestamp)가 감소될 수 있다. LT(127)의 차이 값 엔트리를 사용하여 평균 제곱 오차(MSE; mean square error)가 계산될 수 있다.
도 13은 일부 실시 예들에 따른, 제조 산업 사용 사례를 보여주는 블록도이다. 이러한 제조 산업 사용 사례 시나리오(fabrication industry use case scenario)에서, 다른 데이터(연 당 60TB까지 생성되는) 와 함께 장치(EQ; equipment) 센서 데이터는 데이터 레이크(Data Lake)라 불리는 프로세싱 수퍼-클러스터(processing super-cluster)에 의해 동시에 처리될 수 있다. 제안된 메커니즘의 사용은 하드웨어/소프트웨어 업그레이드들 동안 그리고 새로운 시스템들(또는 태스크들)의 추가 동안, 신뢰성의 저하(및 길어진 미작동 시간)을 완화시킬 수 있다. 업그레이드는 최적으로 수행되므로, 원활하게 행해질 것이다.
종래의 시스템 및 방법들과 달리, 제안된 시스템 및 방법은 인더스트리 4.0구상에 따라 제작 애플리케이션 작성 표준(fabrication application writing standard)의 일부로써 제안될 수 있다. 종래의 시스템 및 방법들과 달리, 제안된 시스템은 칩 제조 동작들 동안 생성되는 거대한 데이터를 분석하는데 요구되는 IT 인프라구조 백본을 창안하는데 매우 중요한 역할을 수행할 수 있고, 분석된 결과는 제조 라인들의 생산량을 직접적으로 최대화하는데 사용될 수 있다.
제작 크기가 14nm에서 10nm 및 그 이상으로 변화한 이후의 제조 산업의 사례에서, 생성된 데이터의 총량은 기하급수적으로 증가할 수 있고, 이는 거대한 프로세싱 클러스터들이 데이터를 분석하는 것을 필요로 한다. 프로세스에서 절감된 에너지의 작은 양은 동작 비용을 낮춤으로써 전체 제작 라인으로 거대한 이점을 제공할 수 있다. 제안된 시스템 및 방법은 제조 산업의 프로세싱 클러스터들의 에너지 절감에서 매우 중요한 역할을 수행할 수 있다.
종래의 시스템들 및 방법들에서, 존재하는 소프트웨어 계층을 위한 하드웨어 업그레이드들은 하드웨어를 이용한 애플리케이션 프로세스 및 최적화 프로세스의 강력한 연결에 기인한 동기화되지 않는 솔루션을 만들 수 있다. 그러나 제안된 시스템 및 방법은 최적화 프로세스 및 애플리케이션 프로세스를 분리할 수 있기 때문에, 하드웨어 업그레이드의 비용이 종래의 업그레이드 메커니즘들과 비교하여 훨씬 낮아질 수 있다.
도 14는 일부 실시 예에 따른, 분산 이종 컴퓨터 시스템(300)의 실시간 구동 시스템(RTOS; real-time operating system)을 보여주는 순서도(1400)이다.
1402 동작에서, 방법은 완료를 위한 임계 시간(Tc)을 포함하는 입력되는 임계 프로세스/태스크(critical process/task)를 수신하는 것을 포함할 수 있다. 방법은 AI(112)가 완료를 위한 임계 시간(Tc)을 포함하는 입력되는 임계 프로세스/태스크를 수신하도록 할 수 있다.
1404 동작에서, 방법은 입력되는 임계 프로세스 요청을 쿼리 인터페이스(126)로 전송하는 것을 포함할 수 있다. 방법은 AI(112)가 입력되는 임계 프로세스 요청을 쿼리 인터페이스(126)로 전송하도록 할 수 있다.
1406 동작에서, 방법은 입력되는 임계 프로세스를 완료하기 위한 예상 시간(TReply)을 응답하는 것을 포함할 수 있다. 방법은 쿼리 인터페이스(126)가 입력되는 임계 프로세스를 완료하기 위한 예상 시간(TReply)을 응답하도록 할 수 있다.
1408 동작에서, 방법은 임계 시간이 완료를 위한 예상 시간보다 적은지 체크하는 것을 포함할 수 있다. 방법은 AI(112)가 임계 시간이 완료를 위한 예상 시간보다 적은지 체크하도록 할 수 있다. AI(112)가 Tc < TReply인 것으로 판별한 경우, AI(112)는 1410 동작에서, 태스크 런치(task launch)를 리젝트하고, 그렇지 않은 경우, 1412 동작에서, 태스크 런치(task launch)를 수용할 수 있다.
실시간 동작 시스템은 제안된 방법을 지원할 수 있는 사용-사례 중 하나이다. 제조 산업에서, 실시간 구동 시스템을 요구하는 일부 시간-임계 태스크들(time-critical tasks)(예를 들어, 스케줄링)이 존재할 수 있다. 현재, 그것들의 태스크들을 수행하는 장치(EQ)는 실시간 구동 시스템을 이용하는 특별한 구동 시스템에 의존할 수 있다. 이는 EQ를 두 개의 그룹들(하나는 실시간 구동 시스템에서 동작할 수 있고, 다른 하나는 일반 구동 시스템에서 동작할 수 있다.)로의 구분을 야기할 수 있다. 애플리케이션 개발자들은 두 개의 구동 시스템들 전부에 대하여 별도로 소프트웨어를 설계해야 할 수 있다. 그러나, 제안된 방법은 애플리케이션을 개발하는 동안 제약 사항과 같은 Soft-RTOS을 이용하는 이점을 본질적으로 애플리케이션 개발자에게 제공할 수 있다. AI(112)가 태스크에 대한 데이터 분산 벡터를 문의한 경우, 데이터 분산 벡터는 예상 완료 시간을 포함할 수 있다. 이러한 예상 완료 시간을 사용하여, 애플리케이션 개발자들은 임계 태스크를 스케줄링할지 말지를 결정할 수 있다. 애플리케이션 측면에서의 결정을 가능하게 하는 것은 제약과 같은 Soft-RTOS라 불린다.
제안된 방법 및 시스템은 이종 컴퓨터 노드들(100) 상에서 Soft-RTOS를 달성하는 것을 도울 수 있다. 데이터 분산 벡터는 모든 시스템 파라미터들을 고려하는 최적화 방식으로 구동하는 것을 나타내는 태스크를 위하여 연산될 수 있다. 그러므로, 실시간 구동 시스템 시나리오에서의 태스크에 의해 제공되는 시간 제약 및 데이터 로드에 따라, 제안된 방법 및 시스템은 태스크가 예상 시간 내에 수행될 것인지 아닌지를 결정할 수 있다.
하드웨어가 없는 테스트 베드 시뮬레이터의 인기로 기인한 연산의 필요가 증가하고 있다. 실제 하드웨어를 시뮬레이션하여 하드웨어로 의도된 소프트웨어 개발을 가능하게 하기 위하여 가끔 거대한 서버들이 요구된다. 이러한 종류의 시나리오에서, 제안된 방법은 쉽게 확장되고, 에너지를 절감하고, 신뢰성을 향상시킬 수 있다.
현재, 이종 컴퓨터 노드들(100) 사이의 태스크를 위하여 최적화된 데이터 분산을 제공하는 구동 시스템은 없다. 제안된 방법은 이종 컴퓨터 노드들(100) 사이의 태스크를 위한 데이터 분산이 원활할 수 있도록, 구동 시스템의 일부로써 생성될 수 있다. 이는 배터리 에너지를 절감하고, 장치 신뢰성을 증가시키고, 다른 컴퓨터 노드들(100)의 최적화 사용을 가능하게 하는 것을 도울 수 있다.
도 15는 일부 실시 예들 따른, 최적화된 잡 성능을 위하여 자원들을 동적으로 재할당하는 분산 이종 컴퓨터 시스템 및 방법을 적용한 컴퓨팅 환경(1502)을 보여준다. 도 15에 도시된 바와 같이, 컴퓨팅 환경(1502)은 제어 유닛(1506) 및 산술 처리 유닛(ALU)(1508)을 장착한 적어도 하나의 프로세싱 유닛(1504), 메모리(1510), 스토리지 유닛(1512), 복수의 네트워킹 장치들(1516), 및 복수의 입력/출력(I/O) 장치들(1514)을 포함할 수 있다.
프로세싱 유닛(1504)은 제안된 방법의 명령어들을 처리할 수 있다. 프로세싱 유닛(1504)은 제어 유닛으로부터 커맨드들을 수신하여 그것의 처리를 수행할 수 있다. 또한 명령어들의 실행에 포함된 산술 동작들은 ALU(1508)의 도움으로 연산될 수 있다.
스토리지 유닛(1512)은 하나 또는 그 이상의 컴퓨터-판독 가능한 스토리지 매체를 포함할 수 있다. 스토리지 유닛(1512)은 불휘발성 스토리지 구성 요소들을 포함할 수 있다. 이러한 불휘발성 스토리지 구성 요소들의 예들로써, 자기 하드 디스크들, 광 디스크들, 플로피 디스크들, 플래시 메모리들, 전기적으로 프로그램 가능한 메모리들(예를 들어, EPROM) 및/또는 전기적으로 소거 및 프로그램 가능한 메모리들(EEPROM)이 있을 수 있다. 또한, 일부 예들에서, 스토리지 유닛(1512)은 비-일시적인 스토리지 매체로써 간주될 수 있다. "비-일시적인"의 용어는 스토리지 매체가 반송파(carrier wave) 또는 전파 신호(propagated signal)에서 구현되지 않음을 가리킬 수 있다. 그러나, "비-일시적인"의 용어는 스토리지 유닛(1512)이 이동할 수 없는 의미로 해석될 수 없다. 일부 예들에서, 스토리지 유닛(1512)은 메모리보다 더 많은 정보를 저장하도록 구성될 수 있다. 일부 예들에서, 비-일시적인 스토리지 매체는 시간이 흐름에 따라 변화할 수 있는 데이터(예를 들어, 랜덤 액세스 메모리(RAM) 또는 캐시 메모리 내의 데이터)를 저장할 수 있다.
본문에 기재된 실시 예들은 적어도 하나의 하드웨어 장치에서 구동되고, 네트워크 관리 기능들을 수행하여 구성 요소들을 제어하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1 내지 도 15에 도시된 구성 요소들은 하드웨어 장치들 중 적어도 하나, 또는 하드웨어 장치 및 소프트 웨어 모듈의 조합일 수 있는 블록들을 포함할 수 있다.
특정한 실시 예들의 상술된 설명들은 당업자가 현재의 지식을 적용함으로써 일반적인 사상으로부터의 벗어남 없이 다양한 애플리케이션들을 위한 특정한 실시 예들을 적용하교 변형할 수 있도록 기술적 사상의 일반적인 내용을 전체적으로 보여줄 수 잇다. 그러므로, 이러한 적용들 및 변형들은 기재된 실시 예들의 동등물의 사상 및 의미 내에서 이해되도록 간주될 수 있다. 본문에서 사용된 용어들 또는 어법들은 설명의 목적을 위한 것이며, 한정되지 않음이 잘 이해될 것이다. 그러므로, 실시 예들이 특정 실시 예들의 용어에서 설명되더라도, 당업자는 실시 예들이 본문에 기재된 실시 예들의 기술적 사상 및 범위 내의 변형으로 구현될 수 있음을 인지할 것이다.

Claims (20)

  1. 분산 이종 컴퓨터 시스템에 있어서,
    복수의 컴퓨터 노드들을 포함하고,
    상기 복수의 컴퓨터 노드들 각각은 네트워크 인터페이스를 통해 네트워크와 기능적으로 연결되어 상기 복수의 컴퓨터 노드들 사이의 데이터 통신을 제공하고,
    상기 복수의 컴퓨터 노드들 각각은:
    애플리케이션 계층;
    상기 애플리케이션 계층으로부터 분리된 최적화 계층; 및
    상기 애플리케이션 계층 및 상기 최적화 계층의 동작들을 수행하도록 구성된 하나 또는 그 이상의 프로세서들을 포함하고,
    상기 애플리케이션 계층은:
    수행될 적어도 하나의 잡을 호출하도록 구성된 애플리케이션 인젝터; 및
    상기 적어도 하나의 잡이 일반(normal)인지 중요(critical)인지를 가리키는 상기 적어도 하나의 잡의 태스크 종류 및 상기 적어도 하나의 잡에 대한 데이터 로드 를 상기 애플리케이션 인젝터로 공유하도록 구성된 애플리케이션 특정 구성을 포함하고,
    상기 최적화 계층은:
    상기 복수의 컴퓨터 노드들 각각에 대한 데이터 성능 메트릭, 신뢰성 메트릭, 추가 팩터, 및 데이터 분산 비율 중 적어도 하나의 함수인 워크로드 값을 동적으로 수집하도록 구성된 콜렉터;
    상기 복수의 컴퓨터 노드들 각각에 대하여 알려진 잡들 및 알려지지 않은 잡들의 각각의 타입들을 판별하도록 구성된 잡 인포머;
    상기 워크로드 값 및 상기 복수의 컴퓨터 노드들 각각에 대하여 상기 알려진 잡들 및 상기 알려지지 않은 잡들의 상기 각각의 타입들을 기반으로, 상기 적어도 하나의 잡을 수행하기 위해 상기 복수의 컴퓨터 노드들로 분산될 상기 데이터 로드의 각각의 크기를 정의하는 데이터 분산 벡터를 판별하도록 구성된 잡 옵티마이저;
    상기 데이터 분산 벡터를 저장하도록 구성된 룩업 테이블; 및
    상기 룩업 테이블을 유지하고, 상기 애플리케이션 인젝터로 쿼리 인터페이스를 제공하도록 구성된 룩업 테이블 관리자를 포함하고,
    상기 애플리케이션 인젝터는 상기 쿼리 인터페이스를 통해 상기 룩업 테이블 관리자로 상기 적어도 하나의 잡의 태스크 식별자에 대한 쿼리를 전송하고, 상기 쿼리 인터페이스를 통해 상기 룩업 테이블 관리자로부터 상기 데이터 분산 벡터를 수신하고, 상기 데이터 분산 벡터를 기반으로 상기 적어도 하나의 잡을 스케쥴링하도록 더 구성되고,
    상기 룩업 테이블 관리자는 상기 쿼리에 응답하여, 상기 룩업 테이블로부터 상기 데이터 분산 벡터를 상기 애플리케이션 인젝터로 전송하도록 더 구성되고,
    상기 애플리케이션 인젝터는 상기 데이터 분산 벡터를 기반으로 상기 적어도 하나의 잡을 스케쥴링한 이후에, 상기 룩업 테이블 관리로 바이트 당 소모 시간 차이를 반환하도록 더 구성되고,
    상기 룩업 테이블 관리자는 상기 반환된 시간 차이가 상기 룩업 테이블의 차이 엔트리의 현재 값보다 큰 경우, 상기 룩업 테이블의 상기 차이 엔트리를 갱신하도록 더 구성되는 분산 이종 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 잡 인포머는 상기 룩업 테이블 관리자에 응답하여, 상기 알려지지 않은 잡들의 자동 분석을 수행하도록 더 구성된 분산 이종 컴퓨터 시스템.
  3. 제 1 항에 있어서,
    상기 최적화 계층은
    상기 적어도 하나의 잡의 구동의 예상 시간 및 실제 시간의 차이를 사용하여 상기 복수의 컴퓨터 노드들 각각에서 상기 적어도 하나의 잡의 상기 성능을 관리하기 위한 시간 구간을 동적으로 판별하도록 구성된 리프레셔를 더 포함하는 분산 이종 컴퓨터 시스템.
  4. 제 1 항에 있어서,
    상기 데이터 분산 벡터는 선형 최적화 모델 및 비선형 최적화 모델 중 적어도 하나를 사용하여 판별되는 분산 이종 컴퓨터 시스템.
  5. 제 1 항에 있어서,
    상기 애플리케이션 인젝터는 상기 애플리케이션 특정 구성 및 상기 최적화 계층 사이의 커넥터로서 동작하는 분산 이종 컴퓨터 시스템.
  6. 분산 이종 컴퓨터 시스템에 있어서,
    복수의 컴퓨터 노드들을 포함하고,
    상기 복수의 컴퓨터 노드들 각각은 네트워크 인터페이스를 통해 네트워크와 기능적으로 연결되어 상기 복수의 컴퓨터 노드들 사이의 데이터 통신을 제공하고,
    상기 복수의 컴퓨터 노드들 각각은:
    애플리케이션 계층;
    상기 애플리케이션 계층으로부터 분리된 최적화 계층; 및
    상기 애플리케이션 계층 및 상기 최적화 계층의 동작들을 수행하도록 구성된 하나 또는 그 이상의 프로세서들을 포함하고,
    상기 애플리케이션 계층은:
    수행될 적어도 하나의 잡을 호출하도록 구성된 애플리케이션 인젝터; 및
    상기 적어도 하나의 잡이 일반(normal)인지 중요(critical)인지를 가리키는 상기 적어도 하나의 잡의 태스크 종류 및 상기 적어도 하나의 잡에 대한 데이터 로드 를 상기 애플리케이션 인젝터로 공유하도록 구성된 애플리케이션 특정 구성을 포함하고,
    상기 최적화 계층은:
    상기 복수의 컴퓨터 노드들 각각에 대한 데이터 성능 메트릭, 신뢰성 메트릭, 추가 팩터, 및 데이터 분산 비율 중 적어도 하나의 함수인 워크로드 값을 동적으로 수집하도록 구성된 콜렉터;
    상기 복수의 컴퓨터 노드들 각각에 대하여 알려진 잡들 및 알려지지 않은 잡들의 각각의 타입들을 판별하도록 구성된 잡 인포머;
    상기 워크로드 값 및 상기 복수의 컴퓨터 노드들 각각에 대하여 상기 알려진 잡들 및 상기 알려지지 않은 잡들의 상기 각각의 타입들을 기반으로, 상기 적어도 하나의 잡을 수행하기 위해 상기 복수의 컴퓨터 노드들로 분산될 상기 데이터 로드의 각각의 크기를 정의하는 데이터 분산 벡터를 판별하도록 구성된 잡 옵티마이저;
    상기 데이터 분산 벡터를 저장하도록 구성된 룩업 테이블; 및
    상기 룩업 테이블을 유지하고, 상기 애플리케이션 인젝터로 쿼리 인터페이스를 제공하도록 구성된 룩업 테이블 관리자를 포함하고,
    상기 애플리케이션 인젝터는 상기 쿼리 인터페이스를 통해 상기 룩업 테이블 관리자로 상기 적어도 하나의 잡의 태스크 식별자에 대한 쿼리를 전송하고, 상기 쿼리 인터페이스를 통해 상기 룩업 테이블 관리자로부터 상기 데이터 분산 벡터를 수신하고, 상기 데이터 분산 벡터를 기반으로 상기 적어도 하나의 잡을 스케쥴링하도록 더 구성되고,
    상기 애플리케이션 인젝터는 중요 태스크를 완료하기 위한 중요 시간과 함께 상기 중요 태스크에 대한 요청을 수신하고, 상기 중요 태스크에 대한 요청을 상기 쿼리 인터페이스로 전송하도록 더 구성되고,
    상기 쿼리 인터페이스는 상기 중요 태스크에 대한 예상 시간을 상기 애플리케이션 인젝터로 응답하도록 구성된 분산 이종 컴퓨터 시스템.
  7. 제 6 항에 있어서,
    상기 애플리케이션 인젝터는:
    상기 중요 시간이 상기 예상 시간보다 작은지 판별하고;
    상기 중요 시간이 상기 예상 시간보다 작은 경우, 상기 중요 태스크에 대한 태스크 런치를 리젝트하고;
    상기 중요 시간이 상기 예상 시간보다 작지 않은 경우, 상기 중요 태스크에 대한 상기 태스크 런치를 수용하도록 더 구성된 분산 이종 컴퓨터 시스템.
  8. 제 6 항에 있어서,
    상기 데이터 분산 벡터는 선형 최적화 모델 및 비선형 최적화 모델 중 적어도 하나를 사용하여 판별되는 분산 이종 컴퓨터 시스템.
  9. 제 6 항에 있어서,
    상기 최적화 계층은
    상기 적어도 하나의 잡의 구동의 예상 시간 및 실제 시간의 차이를 사용하여 상기 복수의 컴퓨터 노드들 각각에서 상기 적어도 하나의 잡의 상기 성능을 관리하기 위한 시간 구간을 동적으로 판별하도록 구성된 리프레셔를 더 포함하는 분산 이종 컴퓨터 시스템.
  10. 제 6 항에 있어서,
    상기 애플리케이션 인젝터는 상기 애플리케이션 특정 구성 및 상기 최적화 계층 사이의 커넥터로서 동작하는 분산 이종 컴퓨터 시스템.


  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020160116753A 2015-09-11 2016-09-09 분산 이종 컴퓨터 시스템에서의 최적화된 잡 성능을 위한 동적 자원 재할당 KR102607808B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN4845CH2015 2015-09-11
IN4845/CHE/2015 2015-09-11

Publications (2)

Publication Number Publication Date
KR20170035797A KR20170035797A (ko) 2017-03-31
KR102607808B1 true KR102607808B1 (ko) 2023-11-30

Family

ID=58257807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160116753A KR102607808B1 (ko) 2015-09-11 2016-09-09 분산 이종 컴퓨터 시스템에서의 최적화된 잡 성능을 위한 동적 자원 재할당

Country Status (2)

Country Link
US (1) US10567490B2 (ko)
KR (1) KR102607808B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102022972B1 (ko) 2018-03-09 2019-09-19 울산과학기술원 이종 멀티 프로세싱 시스템 환경 기반 런타임 관리장치 및 방법
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 (zh) * 2021-05-31 2022-11-29 中国工商银行股份有限公司 一种作业加载方法、装置及设备
KR102572143B1 (ko) 2022-05-04 2023-08-29 코싸인온 주식회사 메모리 클라우드를 위한 메모리 자원 공유 방법 및 이를 이용한 메모리 자원 공유 시스템

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
WO2010140183A1 (ja) * 2009-06-01 2010-12-09 富士通株式会社 サーバ管理プログラム、管理サーバ、仮想サーバ配置方法
NZ586691A (en) * 2010-07-08 2013-03-28 Greenbutton Ltd Method for estimating time required for a data processing job based on job parameters and known times for similar jobs
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
WO2013039556A1 (en) * 2011-09-17 2013-03-21 Narayam Amit Determining load reductions in demand response systems
US8761953B2 (en) * 2012-04-30 2014-06-24 Innovari, Inc. Grid optimization resource dispatch scheduling
US9602423B2 (en) * 2013-06-28 2017-03-21 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
US20170078373A1 (en) 2017-03-16
US10567490B2 (en) 2020-02-18
KR20170035797A (ko) 2017-03-31

Similar Documents

Publication Publication Date Title
KR102607808B1 (ko) 분산 이종 컴퓨터 시스템에서의 최적화된 잡 성능을 위한 동적 자원 재할당
Jiang et al. Energy aware edge computing: A survey
US20180060133A1 (en) Event-driven resource pool management
CN110825518B (zh) 面向微服务的纳秒级电力资源分配方法和系统
CN114930293A (zh) 预测性自动扩展和资源优化
US20170010968A1 (en) System and method for data caching in processing nodes of a massively parallel processing (mpp) database system
CN108234356B (zh) 基于应用关系网络的最优化应用资源分布策略
US10909114B1 (en) Predicting partitions of a database table for processing a database query
US11520632B1 (en) Specifying behavior among a group of computing tasks
US20210004000A1 (en) Automated maintenance window predictions for datacenters
AU2019201625A1 (en) Elastic storage volume type selection and optimization engine for public cloud environments
CN103581332A (zh) HDFS架构及HDFS架构中NameNode节点的压力分解方法
Procaccianti et al. A catalogue of green architectural tactics for the cloud
Wang et al. Lube: Mitigating bottlenecks in wide area data analytics
US8863060B2 (en) Programmable intelligent storage architecture based on application and business requirements
Yu et al. System-wide trade-off modeling of performance, power, and resilience on petascale systems
WO2022026044A1 (en) Sharing of compute resources between the virtualized radio access network (vran) and other workloads
US11836095B2 (en) Forwarding incoming IO to SCM namespaces
WO2020206699A1 (en) Predicting virtual machine allocation failures on server node clusters
CN110704851A (zh) 公有云数据处理方法和设备
Xu et al. Practice of Alibaba cloud on elastic resource provisioning for large‐scale microservices cluster
Jiang et al. Effective data management strategy and RDD weight cache replacement strategy in Spark
US11297163B2 (en) Scenario profile based partitioning and management of application code
US20230185620A1 (en) Information infrastructure management method, management server of information infrastructure, and non-transitory computer-readable recording medium for information infrastructure management program
Su et al. Achieving self-aware parallelism in stream programs

Legal Events

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