KR20210008924A - Integrated multi-vendor computing platform - Google Patents

Integrated multi-vendor computing platform Download PDF

Info

Publication number
KR20210008924A
KR20210008924A KR1020217001162A KR20217001162A KR20210008924A KR 20210008924 A KR20210008924 A KR 20210008924A KR 1020217001162 A KR1020217001162 A KR 1020217001162A KR 20217001162 A KR20217001162 A KR 20217001162A KR 20210008924 A KR20210008924 A KR 20210008924A
Authority
KR
South Korea
Prior art keywords
hardware
software
user
hpc
platform
Prior art date
Application number
KR1020217001162A
Other languages
Korean (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
Priority claimed from US16/008,465 external-priority patent/US10387198B2/en
Application filed by 리스케일, 인크. filed Critical 리스케일, 인크.
Publication of KR20210008924A publication Critical patent/KR20210008924A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • G06F21/1075Editing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/5044Allocation 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 hardware capabilities
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/147Network analysis or design for predicting network behaviour
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/20
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • H04L67/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • G06F2221/0768
    • 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/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 다수의 하드웨어 및 소프트웨어 공급자의 컴퓨팅 자원을 통합함으로써 비롯되는 상호 종속성을 해결하기 위한 시스템 및 방법의 실시형태를 포함한다. 본 발명의 통합형 다중-공급자 클라우드 기반 플랫폼은, 다수의 백엔드 하드웨어 공급자, 다수의 소프트웨어 공급자, 및 다수의 라이센스 서버의 자원과 통신하고 자원을 통합하기 위한 추상화 계층을 사용한다. 이러한 추상화 계층 및 관련 기능은, 사용자가 공급자별 프로토콜을 구현 및 구성할 필요가 없게 할 뿐만 아니라, 작업 수준 기반으로 또는 다른 세분성 수준으로, 선택된 하드웨어, 소프트웨어, 및 라이센스 서버 간의 상호 종속성을 해결할 필요도 없게 한다.The present invention encompasses embodiments of systems and methods for resolving interdependencies resulting from integrating computing resources from multiple hardware and software providers. The integrated multi-vendor cloud-based platform of the present invention uses an abstraction layer to communicate and consolidate resources of multiple backend hardware providers, multiple software providers, and multiple license servers. This layer of abstraction and related functionality not only eliminates the need for users to implement and configure provider-specific protocols, but also requires resolving interdependencies between selected hardware, software, and license servers, either on a task-level basis or at other levels of granularity. Do not.

Description

통합형 다중-공급자 컴퓨팅 플랫폼Integrated multi-vendor computing platform

관련 출원에 대한 상호 참조Cross-reference to related applications

본 출원은 "시뮬레이션 자원의 동적 최적화"란 명칭으로 2016년 8월 11일자로 출원된 미국 정규 특허 출원 제15/235,004호의 일부 계속 출원인, 2018년 6월 14일자로 출원된 미국 특허 출원 일련번호 제16/008,465에 대한 우선권을 주장하며, 이의 개시물은 본원에서 완전히 설명된 것처럼 본원에 참조로 포함된다.This application is a continuing applicant of the US regular patent application No. 15/235,004 filed on August 11, 2016 under the name "Dynamic Optimization of Simulation Resources", the serial number of the US patent application filed on June 14, 2018. Claims priority to 16/008,465, the disclosure of which is incorporated herein by reference as if fully described herein.

본 발명은 일반적으로 클라우드 기반 플랫폼에 관한 것으로서, 특히 다수의 공급자(provider)에 걸쳐서 타사 백엔드 하드웨어(third-party back-end hardware)를 타사 소프트웨어와 통합함으로써 비롯되는 상호 종속성(interdependency)을 최종 사용자를 위해 해결하는, 클라우드 기반 컴퓨팅 플랫폼에 관한 것이다.The present invention relates generally to a cloud-based platform, and in particular, interdependency resulting from integrating third-party back-end hardware with third-party software across a number of providers to end users. To solve, it relates to a cloud-based computing platform.

1960년대 슈퍼 컴퓨팅의 출현으로 시작된 "고성능 컴퓨팅"(HPC) 태스크(task)는, 대기업만이 감당할 수 있는 고성능의 고가 컴퓨터 시스템에 귀속되었다. HPC 태스크는 때때로 (Wikipedia 및 다른 곳에서) 비교적 짧은 시간 기간 동안 대량의 컴퓨팅 자원을 필요로 하는 것으로 좁게 정의된다.Beginning with the advent of supercomputing in the 1960s, "High Performance Computing" (HPC) tasks belonged to high-performance, expensive computer systems that only large enterprises could afford. HPC tasks are sometimes narrowly defined as requiring large amounts of computing resources over relatively short periods of time (in Wikipedia and elsewhere).

이러한 정의는 다른 형태의 슈퍼 컴퓨팅(HTC 또는 "높은 처리량 컴퓨팅", 그리드 컴퓨팅, MTC 또는 "대량 태스크 컴퓨팅" 및 기타)과의 구별을 가능하게 한다. 본원에서 HPC라는 용어는, 작업(job)이 단일 태스크로 구성되든 다수의 종속적 및 독립적 태스크로 구성되든, 또는 컴퓨팅 자원의 비용, 용도, 개별 태스크 또는 전체 작업을 완료하기 위해 필요한 시간, 또는 다른 요소를 위해 최적화되어 있든 관계없이, 비록 일시적이지만 상당한 컴퓨팅 자원이 필요한 거의 모든 형태의 슈퍼 컴퓨팅을 포함하도록, 보다 광범위하게 사용된다.This definition makes it possible to distinguish it from other forms of super computing (HTC or “high throughput computing”, grid computing, MTC or “mass task computing” and others). As used herein, the term HPC refers to whether a job consists of a single task or a number of dependent and independent tasks, or the cost, purpose of computing resources, the time required to complete an individual task or an entire job, or other factors. Regardless of whether it is optimized for, it is used more broadly to include almost any form of super computing that, although temporary, requires significant computing resources.

1970년대의 PC 혁명은 클라이언트-서버 컴퓨팅의 통상적인 패러다임의 변화를 야기하였다. 컴퓨팅은, 서버 기반 양극단(extreme)(원격 메인프레임 및 다른 고성능 서버를 통해 시분할 태스크를 실행하는 "단순 단말기(dumb terminal)"의 사용자)으로부터 클라이언트 기반 양극단(점진적으로 더 강력한 개인용 컴퓨터를 통해 주로 로컬 태스크를 수행하는 사용자)으로 점진적으로 진화하였으며, 결국, 인터넷과 같은 분산형 네트워크를 통해, 하드웨어, 소프트웨어 및 네트워킹 서비스들의 결합물을 호스팅할 수 있게 하는, 하이브리드 형태의 클라이언트-서버 컴퓨팅으로 진화하였다.The PC revolution of the 1970s caused a change in the usual paradigm of client-server computing. Computing, from server-based extremes (users of "dumb terminals" running time-sharing tasks through remote mainframes and other high-performance servers), to client-based extremes (primarily local via progressively more powerful personal computers). (Users performing tasks), and eventually to a hybrid form of client-server computing that allows hosting a combination of hardware, software and networking services over a distributed network such as the Internet.

이러한 하이브리드 클라이언트-서버 환경에서, 컴퓨팅 자원 및 기능은, 호스팅 서버 및 최종 사용자 클라이언트에 걸쳐서 다수의 상이한 방식으로 할당된다. 아직까지, HPC 태스크는, 전형적으로 개인용 컴퓨터 또는 더 강력한 단일 서버를 통해서도 이용 가능하지 않는 고성능 컴퓨팅 자원이 필요하기 때문에, 서버 기반 양극단으로 여전히 제한되어 있다.In this hybrid client-server environment, computing resources and functions are allocated in a number of different ways across the hosting server and end user clients. Yet, HPC tasks are still limited to server-based extremes because they require high-performance computing resources that are typically not available even through personal computers or even more powerful single servers.

2000년대 중반에 클라우드 컴퓨팅의 출현으로, HPC 기능은 대기업뿐만 아니라, 개인 및 소기업에게도 훨씬 더 폭넓게 접속 가능하게 되었고, 감당할 수 있는 비용이 되었다. 대량의 컴퓨팅 자원으로의 원격 "주문형(on-demand)" 접속은, 광범위한 네트워크화된 물리적 및 가상 컴퓨팅 자원에 걸쳐서 "높은 요구 사항(high-demand)" 태스크의 기능을 분산시킴으로써, 비용을 크게 감소시켰다(그리고 이에 따라 접속을 확장하였다). 또한, 클라우드 컴퓨팅은 다른 많은 상황에서 하이브리드 클라이언트-서버 솔루션을 제공하였지만, 고유한 "분산형 서버 기반" 솔루션을 HPC 권역에 제공하였다.With the advent of cloud computing in the mid-2000s, HPC functions became much more widely accessible and affordable to individuals and small businesses as well as large enterprises. Remote “on-demand” access to large amounts of computing resources has significantly reduced costs by distributing the functionality of “high-demand” tasks across a wide range of networked physical and virtual computing resources. (And expanded the connection accordingly). In addition, cloud computing provided hybrid client-server solutions in many other situations, but provided a unique “distributed server-based” solution to the HPC region.

그러나, 클라우드 컴퓨팅이 HPC 사용자에게 만능 해결책은 아니었다. 통상적인 클라이언트-서버 및 원격 데스크톱 애플리케이션에 비해, HPC 작업의 상대적인 복잡성으로 인해 상당한 문제가 남아 있다. 예를 들어, 클라우드 컴퓨팅 이전에, 대기업은 고가의 고성능 서버 및 다른 컴퓨팅 자원을 구매하거나 대여하여, 그들 자체의 구내에서 이들을 운영하였다. 기업은 그들의 특정 요구 사항과 매칭되는 컴퓨팅 자원을 선택하는 유연성을 가졌지만, 많은 경우에 그러한 컴퓨팅 자원의 간접 비용에 대한 타당성을 입증하기가 어려웠다. 특정 컴퓨팅 집약적 작업을 위해서만, 그리고 때로는 그러한 작업의 특정 부분을 위해서만, 최고 고성능 컴퓨팅 자원이 필요하였다. 본질적으로, 기업은 "최악의 시나리오"를 위한 계획을 세워야 했다.However, cloud computing was not the all-round solution for HPC users. Compared to typical client-server and remote desktop applications, significant problems remain due to the relative complexity of HPC operations. For example, prior to cloud computing, large enterprises purchased or rented expensive, high-performance servers and other computing resources and operated them on their own premises. Companies have the flexibility to choose computing resources that match their specific requirements, but in many cases it has been difficult to justify the indirect cost of such computing resources. The highest performance computing resources were needed only for certain computing-intensive tasks, and sometimes only for certain parts of those tasks. Essentially, the company had to plan for the "worst case scenario".

그들 자체의 "온 프레미스(on-premise)" 하드웨어에 의존하는 대기업은, 흔히 최신 컴퓨팅 자원으로의 접속을 단념하였다. 구매하거나 대여한 하드웨어는 전형적으로 이의 수명 주기가 끝날 무렵에 교체되며, 그 시점까지는 수년이 되므로 최신 기술보다 한 세대 이상 뒤떨어진다.Large enterprises, relying on their own "on-premise" hardware, often gave up access to the latest computing resources. Hardware purchased or leased is typically replaced at the end of its lifecycle, and by that point it is several years old, lagging the latest technology by more than a generation.

더욱이, 최종 사용자는 타사 "독립 소프트웨어 벤더(independent software vendor)" 또는 ISV로부터 라이센스를 받은 각각의 타사 소프트웨어 패키지를 이들의 하드웨어에 설치 및 구성해야 했다. 올바른 운영 체제가 있는지 확인하는 것만이 필요한 통상적인 데스크톱 애플리케이션을 설치하는 것과 달리, 컴퓨팅 집약적인 소프트웨어를 설치하는 것은 HPC 기능의 특성으로 인해 더 복잡한 프로세스이다. 흔히 이러한 소프트웨어는 병렬로 실행되며, 소프트웨어의 다수의 인스턴스(instance)가 다수의 CPU 코어에 걸쳐서 그리고 흔히 다수의 물리적 서버에 걸쳐서 실행된다. 각각의 작업은, 사용자의 컴퓨팅 모델에 관한 작업별 속성을 포함하는, 소프트웨어의 요건을 하드웨어 환경에 매칭시키는 고유한 구성(configuration)을 필요로 한다.Moreover, end users were required to install and configure each third-party software package licensed from a third-party “independent software vendor” or ISV on their hardware. Unlike installing traditional desktop applications that only need to make sure you have the correct operating system, installing compute-intensive software is a more complex process due to the nature of HPC functionality. Often such software runs in parallel, and multiple instances of the software run across multiple CPU cores and often across multiple physical servers. Each task requires a unique configuration that matches the requirements of the software to the hardware environment, including task-specific attributes regarding the user's computing model.

최종 사용자는, 병렬로 작업을 실행하는 기업 내의 다른 최종 사용자와 해당 하드웨어 환경의 컴퓨팅 자원을 공유하는 복잡성과는 완전히 별개로, 각각의 작업의 요구 사항을 하드웨어 환경에 매칭시킴으로써 이러한 하드웨어-소프트웨어 종속성을 해결할 책임이 있었다. 또한, 최종 사용자는 전적으로, 소프트웨어 및 하드웨어 환경을 테스트하거나 "조정(tuning)"하고, 개별 작업 전반에 걸쳐서 그리고 개별 작업 내에서 "작업 흐름(workflow)"을 생성할 책임이 있었다(예를 들어, 중간 및 최종 결과를 추출 및 분석; 아마도 다양한 조건, 및 다수의 다른 더 복잡한 작업내 및 작업간 기능에 기초하여, 하나의 태스크의 출력이 후속 태스크에 대한 입력의 역할을 하는 다수의 태스크를 조합). 이와 관련하여, 작업 흐름, 작업, 및 태스크라는 용어는 다소 교환 가능하게 사용되지만, 작업 흐름은 전형적으로 하나 이상의 작업을 나타내며, 각각의 작업은 하나 이상의 개별 HPC 태스크로 구성된다.End users, completely independent of the complexity of sharing the computing resources of their hardware environment with other end users in the enterprise running tasks in parallel, can address these hardware-software dependencies by matching the requirements of each task to the hardware environment. Was responsible for solving it. In addition, the end user was solely responsible for testing or “tuning” the software and hardware environment, and creating “workflows” across and within individual jobs (eg Extract and analyze intermediate and final results; possibly based on various conditions, and many other more complex in-task and inter-task functions, combining multiple tasks in which the output of one task serves as an input to subsequent tasks) . In this regard, the terms work flow, job, and task are used somewhat interchangeably, but a work flow typically refers to one or more jobs, each job being made up of one or more individual HPC tasks.

Amazon의 AWS("일래스틱 컴퓨팅 클라우드(Elastic Compute Cloud)" 또는 EC2를 포함하는 아마존 웹 서비스), Microsoft의 "애저(Azure)", 및 Google의 "구글 클라우드 플랫폼(GCP)"과 같은, 도입된 퍼블릭 클라우드(public cloud) 서비스도 이러한 문제를 부분적으로만 해결하였다. 이러한 퍼블릭 클라우드 플랫폼은 흔히 "서비스형 인프라(infrastructure-as-a-service)" 또는 laaS로 기술된다. 즉, 이러한 "백엔드 하드웨어 공급자"는 물리적 및 가상 컴퓨팅 환경으로의 원격 접속을 제공함으로써, 최악의 시나리오를 위해 하드웨어 컴퓨팅 자원을 구매하거나 대여할 필요가 없게 한다. 이러한 컴퓨팅 자원은 주문형 기반으로 원격으로 접속될 수 있으므로, 비용을 크게 절감할 수 있다.Introduced, such as Amazon's AWS ("Elastic Compute Cloud" or Amazon Web Services including EC2), Microsoft's "Azure", and Google's "Google Cloud Platform (GCP)" Public cloud services also partially solved this problem. These public cloud platforms are often described as "infrastructure-as-a-service" or laaS. That is, these "backend hardware providers" provide remote access to physical and virtual computing environments, eliminating the need to purchase or lease hardware computing resources for worst-case scenarios. Since these computing resources can be accessed remotely on an on-demand basis, cost can be greatly reduced.

퍼블릭 클라우드 공급자와 더불어, 다른 백엔드 하드웨어 공급자는, 까다로운 HPC 애플리케이션을 위해 설계된 고성능 "베어메탈(bare metal)" 하드웨어를 위하여, 흔히 가상화 기능(및 이에 따른 소정의 보안 수준)을 희생하는 "프라이빗 클라우드(private cloud)" 또는 "프라이빗 데이터 센터"를 제공한다. 예를 들어, 물리적 서버들의 프로비저닝(provisioning)은, 이러한 서버들이 서로 간의 이들의 인접성을 고려할 때 밀착 결합될 수 있기 때문에, 작업내 통신을 위한 더 빠른 네트워킹 기술의 사용을 가능하게 한다. 퍼블릭 클라우드 서비스와 마찬가지로, 베어메탈 공급자의 컴퓨팅 자원은 주문형 기반으로 원격으로 접속될 수 있으므로, 비용을 절감할 수 있다.In addition to public cloud providers, other back-end hardware providers are "private cloud", often sacrificing virtualization capabilities (and thus some level of security) for high-performance "bare metal" hardware designed for demanding HPC applications. private cloud)" or "private data center". Provisioning of physical servers, for example, allows the use of faster networking techniques for intra-task communication, as these servers can be tightly coupled given their proximity to each other. As with public cloud services, the bare metal provider's computing resources can be accessed remotely on an on-demand basis, saving money.

그러나, 기업이 퍼블릭 클라우드를 사용하든, 프라이빗 데이터 센터를 사용하든(또는 그들 자체의 물리적 하드웨어를 포함하는 이들의 조합을 사용하든) 관계없이, HPC 태스크, 및 이들이 실행되는 하드웨어 및 소프트웨어 환경의 다양한 속성 간의 상호 종속성으로 인해, 위에서 언급된 대부분의 다른 문제가 여전히 남아 있다. HPC 사용자는 여전히 이들의 요구 사항을 최상으로 해결하는 물리적 또는 가상 하드웨어 환경을 선택할 책임이 있다.However, regardless of whether an enterprise uses a public cloud or a private data center (or a combination of these, including their own physical hardware), HPC tasks, and the various attributes of the hardware and software environment in which they run Due to the interdependencies between the two, most of the other problems mentioned above still remain. HPC users are still responsible for choosing a physical or virtual hardware environment that best addresses their needs.

예를 들어, 특정 작업은 최신 베어메탈 하드웨어(흔히 할증 비용임)를 필요로 하는 반면에, 다른 작업은 가상화의 유연성을 필요로 하는 경우, 사용자는 다른 하나를 위해 하나를 희생해야 하거나, 다수의 상이한 백엔드 하드웨어 공급자와 계약하는 복잡성이 가중되어야 한다. 또한, 사용자는 여전히 각각의 그러한 하드웨어 환경 간의 차이를 관리해야 한다. 많은 클라우드 공급자는 CPU 코어, 메모리, 저장소, 및 네트워크 대역폭과 같은, 지정된 양의 이용 가능한 컴퓨팅 자원과 함께 가상 "코어 유형"을 제공한다. 반면에, 베어메탈 공급자는, 이들의 물리적 서버의 특성에 기초하여 컴퓨팅 자원에 대한 더 한정된(하지만 흔히 더 강력한) 선택권을 제공한다.For example, if certain tasks require the latest bare metal hardware (often at a premium), while others require the flexibility of virtualization, the user has to sacrifice one for the other, or multiple The complexity of contracting with different backend hardware providers has to be added. Also, the user still has to manage the differences between each such hardware environment. Many cloud providers offer virtual "core types" with a specified amount of available computing resources, such as CPU cores, memory, storage, and network bandwidth. On the other hand, bare metal providers offer more limited (but often more powerful) options for computing resources based on the characteristics of their physical servers.

이러한 선택권에도 불구하고, 사용자는 더 높은 추상화 수준으로 이들의 컴퓨팅 자원 요구 사항을 간단히 지정할 수 없으며, 그러한 요구 사항이 다수의 백엔드 하드웨어 공급자로부터 이용 가능한 다양한 유형의 컴퓨팅 자원 간에 자동으로 할당되게 할 수 없다. 이들은 흔히 불완전한 정보를 통해, 스스로 그러한 결정을 할 책임이 있다. HPC 사용자는 이들 자체의 요구 사항에 집중하며, 다양한 백엔드 하드웨어 공급자의 빈번하게 변경되는 공급품에 집중하지 않는다. 또한, 임의의 주어진 기업에는, 가장 비용 효율적인 가격 책정을 수행하기 위해 필요한 다수의 공급자에 걸친 다량의 사용량이 없다.Despite these options, users cannot simply specify their computing resource requirements with a higher level of abstraction, and they cannot have those requirements automatically allocated among the different types of computing resources available from multiple backend hardware providers. . They are often responsible for making such decisions themselves, often through incomplete information. HPC users focus on their own needs, not on frequently changing supplies from various backend hardware providers. Also, for any given company, there is no large amount of usage across multiple suppliers needed to perform the most cost effective pricing.

또한, HPC 사용자는, (이들 자체의 온 프레미스 하드웨어를 포함하는) 임의의 특정 작업의 컴퓨팅 자원 요구 사항을 다수의 백엔드 하드웨어 공급자에 걸쳐서 제공되는 컴퓨팅 자원과 "믹스 앤 매칭(mix and match)"하는 기능을 단념한다. 예를 들어, 이들은 이들 자체의 기존 저장소와 함께, 베어메탈 공급자 또는 클라우드 공급자의 고성능 컴퓨팅 능력을 활용하는 작업을 실행할 수 없다. 요컨대, 많은 상이한 백엔드 하드웨어 공급자 간의 통합이 없다. 하드웨어 환경을 결정하고 관리하는 것과 더불어, HPC 사용자는 원격 클라우드 환경에서 특정 소프트웨어를 실행하기 위한 권한도 획득해야 한다. 또한, 이들은 각각의 작업을 위해 소프트웨어를 설치 및 구성해야 할 뿐만 아니라, 특정 작업(및 관련 소프트웨어)의 요구 사항을 적절한 양의 호환 가능한 하드웨어 컴퓨팅 자원과 매칭시켜야 한다.HPC users can also "mix and match" the computing resource requirements of any particular task (including their own on-premises hardware) with computing resources provided across multiple backend hardware providers. Give up function. For example, they cannot run tasks that take advantage of the high-performance computing power of bare metal providers or cloud providers, along with their own existing storage. In short, there is no integration between many different backend hardware providers. In addition to determining and managing the hardware environment, HPC users must also acquire rights to run specific software in a remote cloud environment. In addition, they not only have to install and configure software for each task, but also match the requirements of a particular task (and associated software) with an appropriate amount of compatible hardware computing resources.

이들은 흔히 복잡하고, 시간 소모적이며, 비용이 많이 드는 HPC 작업을 실행하기 전에, 소프트웨어 및 하드웨어를 테스트하거나 "조정"할 뿐만 아니라, 맞춤형 작업 흐름을 구현하기 위한 이들 자체의 도구를 개발해야 한다. 간단히 말해, 이들은 클러스터 및 물리적 서버에 걸친 데이터 공유, 클러스터간 및 서버간 통신 관리, 백엔드 하드웨어 공급자에 의해 제공되는 것을 넘어서는 데이터 보안 및 개인 정보 보호(privacy) 사안 제공, 계약, 규제 및 다른 법적 요건, 그리고 복잡한 HPC 작업의 많은 다른 양태에 따라 준수하는 HPC 환경 관리를 포함하여, 프로비저닝된 하드웨어 및 소프트웨어 환경에 대한 각각의 작업의 모든 종속성을 관리해야 한다.They often have to test or "tune" the software and hardware before executing complex, time-consuming, and costly HPC tasks, as well as develop their own tools to implement custom workflows. Simply put, they share data across clusters and physical servers, manage communication between clusters and servers, provide data security and privacy issues beyond those provided by backend hardware providers, contracts, regulatory and other legal requirements, And it must manage all the dependencies of each task on the provisioned hardware and software environment, including managing the HPC environment to comply with many different aspects of the complex HPC task.

또한, 각각의 ISV는 전형적으로 타사 "라이센스 서버"를 통해 인증 및 라이센스 관리를 시행함으로써, 그 자체의 소프트웨어 라이센스 제한을 제공한다. 각각의 ISV는 이의 라이센스 서버의 위치 및 접속에 대한 상이한 제한을 부과할 수 있다. 여기서도, HPC 사용자는 권한을 획득하고, (그러한 라이센스 서버가 물리적으로 위치될 수 있는 모든 곳에서) 각각의 관련 라이센스 서버와의 인터페이스를 제공할 책임이 있다.In addition, each ISV provides its own software license restrictions, typically by enforcing authentication and license management through a third-party “license server”. Each ISV may impose different restrictions on the location and access of its license server. Again, the HPC user is responsible for obtaining rights and providing an interface with each associated license server (wherever such a license server can be physically located).

백엔드 하드웨어 공급자는 프로비저닝된 클러스터(또는 다른 하드웨어 자원 유닛)의 사용량을 "측정"하지만, HPC 사용자는 이들이 작업별로 또는 다른 기준으로(더 높거나 더 낮은 세분성(granularity) 수준으로) 이러한 laaS 자원의 비용을 모니터링하길 원하는 경우, 이들 자체의 맞춤형 "작업별" 측정을 구현해야 한다. 또한, 이들이 (예를 들어, 상대적인 라이센싱 비용을 추산하기 위해) 소프트웨어의 사용량을 측정하길 원하는 경우, 이들은 이들 자체의 맞춤형 측정 구현을 제공해야 한다.Backend hardware providers "measure" the usage of provisioned clusters (or other units of hardware resources), but HPC users say that they are responsible for the cost of these laaS resources on a per task or other basis (at a higher or lower granularity level). If you want to monitor them, you have to implement their own custom "task-specific" measurements. In addition, if they want to measure the usage of the software (for example, to estimate the relative licensing costs), they must provide their own custom measurement implementation.

이러한 문제 중 일부를 해결하기 위한 노력으로, 퍼블릭 및 프라이빗 클라우드 공급자에 의해 제공되는 laaS 솔루션보다는 오히려 "서비스형 소프트웨어(software-as-a-service)" 또는 SaaS 솔루션을 제공하는 몇 가지 수직 솔루션이 출현하였다. 예를 들어, 일부 대형 ISV는 laaS 기능을 제공하는 것과 더불어, 이들 자체의 소프트웨어를 백엔드 퍼블릭 클라우드 또는 이들 자체의 하드웨어 인프라와 통합하였다. 이러한 "ISV 클라우드"는 HPC 태스크를 실행하기 위한 원격 하드웨어 플랫폼을 이들의 소프트웨어 사용자에게 제공한다.In an effort to address some of these issues, several vertical solutions have emerged that provide "software-as-a-service" or SaaS solutions rather than laaS solutions provided by public and private cloud providers. I did. For example, in addition to providing laaS functionality, some large ISVs have integrated their own software with the backend public cloud or their own hardware infrastructure. This "ISV Cloud" provides their software users with a remote hardware platform for executing HPC tasks.

그러나, 이러한 ISV 클라우드의 사용자는 단일 소프트웨어 공급자로 제한되며, 이는 보다 다양한 소프트웨어 선택을 필요로 하는 사용자를 고려하지 않는 상당한 제한 사항이다. 또한, 사용자는 여전히 소프트웨어 및 하드웨어 조정 그리고 작업 흐름과 관련하여 전술한 다수의 종속성을 해결해야 할 뿐만 아니라, ISV 클라우드 공급자에 의해 허용된 경우에도, 이들 자체의 사유 또는 타사 소프트웨어를 제공, 설치, 구성 및 관리하는 어려움을 해결해야 한다.However, users of these ISV clouds are limited to a single software provider, which is a significant limitation that does not take into account users who need a wider variety of software choices. In addition, users still need to resolve many of the aforementioned dependencies with respect to software and hardware coordination and workflow, as well as providing, installing and configuring their own proprietary or third party software, even if permitted by the ISV cloud provider. And management difficulties must be resolved.

다른 수직 솔루션은 (직접적으로든, 단일 타사 클라우드 공급자를 통해서든 관계없이) 이들 자체의 laaS 환경을 제공하지만, 특정 타사 소프트웨어 패키지와의 접속을 통해서 제공한다. 이러한 "HW 클라우드"도 전술한 것과 동일한 많은 제한 사항이 있다. 최종 사용자에게 소프트웨어의 선택권을 제공하지만, 이들의 솔루션은 단일 백엔드 하드웨어 환경으로 제공되는 컴퓨팅 자원으로 제한된다. 이러한 상당한 제한 사항은 사용자가 예를 들어, 베어메탈 공급자로부터만 이용 가능한 더 강력한 서버, 또는 다른 클라우드 공급자에 의해 제공되는 더 비용 효율적인 솔루션을 이용하지 못하게 한다.Other vertical solutions provide their own laaS environments (whether directly or through a single third-party cloud provider), but through access to specific third-party software packages. This "HW Cloud" also has many of the same limitations as described above. While offering end users a choice of software, their solutions are limited to the computing resources provided by a single back-end hardware environment. These significant limitations prevent users from using, for example, more powerful servers available only from bare metal providers, or more cost-effective solutions offered by other cloud providers.

HPC 사용자에게 원격 플랫폼을 제공함으로써, 이들이 다수의 백엔드 하드웨어 공급자 및 다수의 ISV로부터 선택할 수 있게 하는 동시에, 이러한 하드웨어 및 소프트웨어 환경 간의 상호 종속성을 자동으로 해결할 수 있게 하는, 진정한 "서비스형 플랫폼(platform-as-a-service)"(PaaS) 기능을 제공하고, 전술한 기존 솔루션의 단점을 해결하는 통합형 컴퓨팅 플랫폼이 필요하다. 또한, 이러한 통합형 컴퓨팅 플랫폼은, 선택된 하드웨어 환경에 대한 소프트웨어 및 HPC 작업의 다른 속성의 종속성을 해결해야 한다.By providing a remote platform to HPC users, a true "platform-as-a-service", allowing them to choose from multiple backend hardware providers and multiple ISVs, while automatically resolving interdependencies between these hardware and software environments. There is a need for an integrated computing platform that provides an as-a-service)"(PaaS) function and solves the shortcomings of the existing solutions described above. In addition, such an integrated computing platform must resolve the dependency of software and other attributes of HPC operations on the selected hardware environment.

본 발명은 다수의 백엔드 하드웨어 공급자, 다수의 소프트웨어 공급자, 및 다수의 라이센스 서버의 자원과 통신하고 이를 통합하기 위한 추상화 계층을 사용하는 클라우드 기반 컴퓨팅 플랫폼을 제공함으로써, 위에서 언급된 결점을 해결하기 위한 시스템 및 방법의 실시형태를 포함한다. 이러한 추상화 계층 및 관련 기능은, 사용자가 공급자별 프로토콜을 구현 및 구성할 필요가 없게 할 뿐만 아니라, 작업 수준 기반으로 또는 다른 세분성 수준으로, 선택된 하드웨어, 소프트웨어 및 라이센스 서버 간의 상호 종속성을 해결할 필요도 없게 한다.The present invention provides a cloud-based computing platform using an abstraction layer for communicating with and integrating resources of a plurality of backend hardware providers, a plurality of software providers, and a plurality of license servers, thereby solving the above-mentioned drawbacks. And embodiments of the method. This layer of abstraction and related functionality not only eliminates the need for users to implement and configure provider-specific protocols, but also eliminates the need to resolve interdependencies between selected hardware, software and license servers, either on a task-level basis or at other levels of granularity do.

본 발명의 플랫폼은, 개별 작업 및 작업 흐름의 요구 사항에 기초하여 보다 상위 수준의 사용자 선택에 따라, 다수의 공급자 중에서 하드웨어, 소프트웨어 및 라이센스 서버 간에 컴퓨팅 자원(온 프레미스 고객 자원을 포함함)을 자동으로 선택한다. 사용자에 의해 한정된 주어진 작업과 관련하여, 플랫폼은 컴퓨팅 자원을 프로비저닝하기 위해 하나 이상의 백엔드 하드웨어 공급자와 자동으로 연결된다.The platform of the present invention automatically distributes computing resources (including on-premises customer resources) between hardware, software, and license servers among multiple providers according to higher-level user selection based on individual work and work flow requirements. Select by For a given task defined by the user, the platform automatically connects with one or more backend hardware providers to provision computing resources.

일 실시형태에서, HPC 사용자는 특정 백엔드 하드웨어 공급자로부터의 코어 유형을 요청하는 반면에, 다른 실시형태에서, 사용자의 상위 수준 컴퓨팅 자원 선택은, 사용자의 사전 정의된 목표(예를 들어, 비용, 실행 시간, 특정 컴퓨팅 자원 등)를 최적화하기 위해 플랫폼에 의해 선택된 하나 이상의 백엔드 하드웨어 공급자에 대한 하위 수준 요청으로 변환된다. 다른 실시형태에서, 플랫폼은, 사용자의 모델 및 다른 입력 파라미터로부터 입증된 사용자의 요구 사항의 분석에 기초하여, 제안되는 컴퓨팅 자원 선택을 자동으로 생성한다.In one embodiment, the HPC user requests a core type from a specific backend hardware provider, while in another embodiment, the user's higher-level computing resource selection is based on the user's predefined goals (e.g., cost, performance Time, specific computing resources, etc.), translated into low-level requests to one or more backend hardware providers selected by the platform. In another embodiment, the platform automatically generates a suggested computing resource selection based on an analysis of the user's requirements verified from the user's model and other input parameters.

일 실시형태에서, 백엔드 하드웨어 공급자는, 다수의 퍼블릭 클라우드 공급자 및 프라이빗 데이터 센터를 포함할 뿐만 아니라, HPC 사용자 자체의 구내에 위치된 컴퓨팅 자원을 포함한다(플랫폼의 백엔드 하드웨어 추상화 계층 내에서 구현되는 상이한 API를 통해 모두 접속 가능함). 예를 들어, HPC 사용자의 작업은, 사용자의 구내에 위치된 네트워크화된 저장소를 사용하여, 퍼블릭 클라우드 공급자 내의 서버를 통해 실행될 수 있다. 또는, 사용자의 서버는, 클라우드 공급자에 의해 제공되는 것들의 추가적인 컴퓨팅 능력을 통해 보완될 수 있다.In one embodiment, the backend hardware provider includes a number of public cloud providers and private data centers, as well as computing resources located on the premises of the HPC users themselves (different implementations within the platform's backend hardware abstraction layer). All can be accessed through API). For example, an HPC user's tasks can be executed through a server within a public cloud provider, using a networked repository located on the user's premises. Alternatively, the user's server can be supplemented with the additional computing power of those provided by the cloud provider.

다수의 백엔드 하드웨어 공급자에 걸친 특정 컴퓨팅 자원(HPC 사용자의 온 프레미스 컴퓨팅 자원을 포함함)의 이러한 통합은, 이전에 어떤 HPC 환경에서도 볼 수 없었던 독보적인 수준의 유연성을 제공한다. HPC 사용자는 공급자간 통신, 그리고 예를 들어, 상이한 하드웨어 환경에서 컴퓨팅 자원 간의 데이터 전송에 대해 걱정할 필요가 없다(그러한 태스크는 플랫폼에 의해 자동으로 처리되기 때문임).This integration of specific computing resources (including HPC users' on-premises computing resources) across multiple back-end hardware providers provides a level of flexibility that has not been previously seen in any HPC environment. HPC users do not have to worry about communication between providers and, for example, data transfer between computing resources in different hardware environments (since such tasks are handled automatically by the platform).

또한, 플랫폼은 사용자의 지정된 구성 및 입력 데이터에 따라, 선택된 소프트웨어를 프로비저닝된 하드웨어 환경에(경우에 따라, 다수의 상이한 하드웨어 공급자에 걸쳐서) 자동으로 설치 및 구성한다. 플랫폼은, 관련 소프트웨어 및 이의 구성 요소와의 사용자의 접속, 그리고 관련 소프트웨어 및 이의 구성 요소의 사용량을 관리하는 관련 라이센스 파일(라이센스 키를 포함함)을 통해, 관련 라이센스 서버와의 연결을 추가로 설정한다.In addition, the platform automatically installs and configures the selected software into the provisioned hardware environment (in some cases, across multiple different hardware providers) according to the user's specified configuration and input data. The platform further establishes a connection with the relevant license server through the relevant license file (including the license key) that manages the user's access to the related software and its components, and the usage of the related software and its components. do.

플랫폼은, 단일 HPC 태스크의 구성(예를 들어, 사용자의 모델에 대한 단일 시뮬레이션 소프트웨어 패키지를 실행)을 가능하게 할 뿐만 아니라, 순차적으로 또는 병렬로 수행되는 다수의 태스크를 포함하는 더 복잡한 작업의 구성을 또한 가능하게 하기 위한 작업 흐름 도구를 사용자에게 제공한다. 예를 들어, 하나 이상의 태스크의 출력이 후속 태스크 또는 작업에 대한 입력으로 제공될 수 있거나, 개별 태스크 또는 작업이 상이한 파라미터를 사용하여 반복될 수 있다. 작업 흐름은, 루프, 조건, 및 다른 제어 흐름 컴퓨팅 구성 요소(construct)를 포함한다.The platform allows the construction of a single HPC task (e.g., running a single simulation software package for a user's model), as well as the construction of more complex tasks, including multiple tasks performed sequentially or in parallel. It also provides the user with a workflow tool to enable it. For example, the output of one or more tasks may be provided as input to a subsequent task or task, or individual tasks or tasks may be repeated using different parameters. Workflows include loops, conditions, and other control flow computing constructs.

또한, 하드웨어 및 소프트웨어 "조정" 도구가 사용자에게 제공되며, 하드웨어 및 소프트웨어 "조정" 도구를 통해, 사용자가 단일 태스크 또는 작업의 특정 부분을 테스트할 수 있고, 복잡한 작업 또는 작업 흐름을 실행하는 시간과 비용이 발생되기 전에, 결과에 기초하여, 컴퓨팅 자원 그리고 하드웨어 및 소프트웨어 환경의 다른 속성을 재구성할 수 있다. 많은 작업은 많은 시간 동안(또는 때로는 수일, 수주 또는 그 이상) 상당한 양의 컴퓨팅 자원을 사용해야 하기 때문에, 작업의 주요 부분(특히 여러 번 반복되는 그러한 부분)을 사전에 테스트한 다음, 초기 하드웨어 및 소프트웨어 구성을 반복적으로 수정하는 기능을 통해, 복잡한 작업 흐름을 실제로 실행하기 전에 그리고 실행하는 동안 모두, 사용자의 상당한 시간과 비용을 절감한다.In addition, hardware and software "tuning" tools are provided to users, with hardware and software "tuning" tools that allow users to test a single task or specific part of a task, and the time to execute complex tasks or workflows. Before incurring costs, based on the results, computing resources and other attributes of the hardware and software environment can be reconfigured. Since many tasks require significant amounts of computing resources to be used over a large amount of time (or sometimes days, weeks or longer), major parts of the task (especially those that are repeated many times) must be tested in advance, and then the initial hardware and software Through the ability to iteratively modify the configuration, both before and during the execution of complex workflows, it saves significant time and money for users.

일 실시형태에서, 플랫폼은, 이용 가능한 컴퓨팅 자원을 HPC 사용자의 작업 또는 작업 흐름의 요구 사항과 최상으로 매칭시키기 위한 노력으로, 하드웨어 및 소프트웨어 조정의 결과에 기초하여, 하드웨어 컴퓨팅 자원 및/또는 소프트웨어 구성 옵션을 제안한다. 이러한 요구 사항은, 사용자의 모델, 입력 데이터, 및 "테스트 실행"을 조정하는 중간 결과의 분석으로부터 추정된다.In one embodiment, the platform, based on the results of hardware and software adjustments, hardware computing resources and/or software configuration in an effort to best match the available computing resources with the requirements of the HPC user's work or workflow. Suggest an option. These requirements are estimated from the analysis of the user's model, input data, and intermediate results that coordinate the "test run".

일 실시형태에서, 사용자의 작업 흐름이 실행되는 동안, (사용자의 작업 흐름 구성에 따라) 플랫폼은 중간 결과를 모니터링하며, 선택된 태스크를 반복하거나 조건부로 수행하거나, 심지어 (예를 들어, 이러한 중간 결과에 기초하여 검출된 재해적 오류의 경우에 계산 낭비를 방지하기 위해) 작업 흐름의 실행을 중단하는 것과 같은, 특정 조치를 개시한다. 다른 실시형태에서, (조건, 루프, 및 다른 흐름 제어 구성 요소를 포함하는, HPC 사용자의 작업 흐름에 따라) 플랫폼은 분석 소프트웨어를 호출하여 중간 및 최종 결과의 분석을 수행한다. 다른 실시형태에서, 플랫폼은 (예를 들어, 지도형 기계 학습 기술을 통해) 유사한 작업 및 작업 흐름의 출력 중에서 패턴을 발견하고, 이를 사용하여, 하드웨어 또는 소프트웨어 컴퓨팅 자원의 상이한 할당과 같은 다양한 제안 사항을 지원한다.In one embodiment, while the user's workflow is running, the platform (depending on the user's workflow configuration) monitors intermediate results, repeating or conditionally performing selected tasks, or even (e.g., such intermediate results Initiate specific actions, such as stopping execution of a work flow) to prevent wasted computation in case of a catastrophic error detected based on In another embodiment, the platform (according to the HPC user's workflow, including conditions, loops, and other flow control components) invokes analysis software to perform analysis of intermediate and final results. In other embodiments, the platform discovers patterns among the outputs of similar tasks and workflows (e.g., via supervised machine learning technology) and uses them to make various suggestions, such as different allocations of hardware or software computing resources. Support.

플랫폼은, 사용자에 의해 제공되거나 플랫폼에 의해 생성되는 라이센스 파일에 기초하여, 라이센스 서버 제한을 시행한다. 예를 들어, 라이센스 파일은, 소프트웨어 패키지의 지정된 기능에 대한 사용자의 접속을 제한할 수 있다. 플랫폼은 이러한 제한을 시행하는 라이센스 서버 추상화 계층을 통해, 관련 라이센스 서버에 연결된다.The platform enforces license server restrictions based on license files provided by the user or generated by the platform. For example, the license file may restrict a user's access to specified functions of the software package. The platform connects to the associated license server through a license server abstraction layer that enforces these restrictions.

플랫폼은, 프로비저닝된 하드웨어 환경을 통한 사용자의 작업 흐름의 실행을 모니터링하는 하드웨어 및 소프트웨어 측정 모듈을 더 포함한다. 일 실시형태에서, 그러한 모니터링은, 더 복잡한 작업 또는 작업 흐름뿐만 아니라 개별 태스크의 세분성으로 수행된다. 또한, 작업 흐름(또는 구성 요소 작업 또는 태스크)은 다수의 백엔드 하드웨어 공급자에 걸쳐서 실행될 수 있기 때문에, 이러한 모니터링은 사용자의 작업 흐름의 지정된 구성 요소를 추적하며, 그 각각이 상이한 백엔드 하드웨어 공급자에 의해 별도로 측정될 수 있다. 심지어 이러한 측정은 일 실시형태에서, 전형적으로 측정 기능 자체가 없는 HPC 사용자의 온 프레미스 하드웨어로 확장된다.The platform further includes a hardware and software measurement module that monitors the execution of the user's workflow through the provisioned hardware environment. In one embodiment, such monitoring is performed with the granularity of individual tasks as well as more complex tasks or workflows. In addition, because a workflow (or component job or task) can run across multiple backend hardware providers, such monitoring tracks a specified component of a user's workflow, each of which is separately by a different backend hardware provider. Can be measured. Even these measurements extend, in one embodiment, to the on-premises hardware of HPC users, which typically do not have the measurement function itself.

개별 백엔드 하드웨어 공급자는 하나의 사용자의 작업 흐름 또는 작업을 다른 하나와 구별하지 못할 수 있지만, 플랫폼은 (일 실시형태에서) 사용자의 작업 흐름(또는 구성 요소 작업 또는 태스크)과 관련된 각각의 자원의 사용량을 모니터링하기 위한 목적으로, 개별 하드웨어 자원(예를 들어, CPU 코어, 메모리, 저장소, 네트워크 대역폭 등)의 사용을 추적한다. 이후에 이러한 사용량은 (예를 들어, 상이한 퍼블릭 클라우드 공급자에 의해 설정되는) 다양한 가격 책정 체계와 상관됨으로써, 요금을 산출하고, 사용자, 이들의 기업, 파트너 또는 다른 엔티티에 대한 비용 청구를 가능하게 한다.While individual backend hardware providers may not be able to differentiate one user's workflow or tasks from another, the platform (in one embodiment) is the usage of each resource associated with the user's workflow (or component task or task). For the purpose of monitoring, tracking the use of individual hardware resources (e.g., CPU cores, memory, storage, network bandwidth, etc.). These usages are then correlated with different pricing schemes (e.g. set by different public cloud providers) to calculate rates and enable billing for users, their businesses, partners or other entities. .

백엔드 하드웨어 공급자의 "고객"은 본 발명의 플랫폼의 공급자일 수 있거나, (다른 실시형태에서) 타사 파트너, ISV, 또는 심지어 개별 HPC 사용자 또는 기업일 수 있음을 유의해야 한다. 예를 들어, 회사는 이의 사용자의 작업 흐름(또는 이의 구성 요소)의 실행을 위해 그 자체의 클라우드 계정을 선택할 수 있거나, 플랫폼 공급자의 타사 파트너의 퍼블릭 또는 프라이빗 클라우드 계정을 선택할 수 있다. 어떤 경우에도, 플랫폼은, 다수의 백엔드 하드웨어 공급자에 걸친 작업 흐름 구성 요소의 실행을 모니터링함으로써, 사실상 임의의 원하는 가격 책정 및 비용 청구 메커니즘을 지원하기에 충분한 세분성 수준으로 하드웨어 사용량을 추적한다.It should be noted that the "customer" of the backend hardware provider may be the supplier of the platform of the present invention, or (in other embodiments) a third party partner, ISV, or even an individual HPC user or enterprise. For example, a company may choose its own cloud account for the execution of its users' workflows (or components thereof), or it may choose a public or private cloud account of a platform provider's third-party partner. In any case, the platform tracks hardware usage at a level of granularity sufficient to support virtually any desired pricing and billing mechanism by monitoring the execution of workflow components across multiple backend hardware providers.

또한, 하드웨어 및 소프트웨어 측정 모듈은, (작업 흐름 또는 작업 수준으로, 또는 사실상 임의의 다른 세분성 수준으로) 개별 소프트웨어 패키지 또는 이의 구성 요소에 대한 HPC 사용자의 사용량을 모니터링하는 것을 지원한다. 이러한 측정은 원격 라이센스 서버와의 연결성의 관리에 의해 가능해지며, 원격 라이센스 서버와의 접속은 플랫폼에 의해 모니터링된다. 이러한 모니터링 기능은 단순한 "체크아웃(checkout)"및 "체크인(checkin)" 이벤트를 넘어서 확장되며, 소프트웨어 사용량의 주문형 측정 및 가격 책정의 기준으로도 사용된다.In addition, the hardware and software measurement module supports monitoring the usage of HPC users for individual software packages or components thereof (at the work flow or work level, or in fact, at any other level of granularity). This measurement is made possible by the management of connectivity with the remote license server, and the connection with the remote license server is monitored by the platform. These monitoring capabilities extend beyond simple "checkout" and "checkin" events, and are also used as a basis for on-demand measurement and pricing of software usage.

다른 실시형태에서, 그러한 모니터링된 사용량 정보는 HPC 사용자의 목표를 최적화하기 위한 기준으로 사용된다. 예를 들어, 더 빠른 하드웨어는 일반적으로 더 고비용일 수 있지만, 더 느린 하드웨어는 소프트웨어 라이센싱 비용 증가를 야기할 수 있다. 플랫폼은 HPC 사용자의 지정된 목표를 최적화하고, 향후의 작업 또는 작업 흐름에 대해(또는 하드웨어 및 소프트웨어 조정 "테스트 실행"의 경우 사전에) 제안한다. 또 다른 실시형태에서, 플랫폼이 특정 소프트웨어(또는 구성 요소 기능)의 사용량을 모니터링할 뿐만 아니라, 사용자별 결과도 모니터링한다는 점에 따라, 결과 기반 가격 책정이 지원된다.In another embodiment, such monitored usage information is used as a basis for optimizing the goals of HPC users. For example, faster hardware can generally be more expensive, while slower hardware can lead to increased software licensing costs. The platform optimizes the HPC user's specified goals and makes suggestions for future work or workflows (or in the case of hardware and software tuned "run tests" in advance). In another embodiment, results-based pricing is supported, as the platform not only monitors usage of specific software (or component functions), but also user-specific results.

사용자의 작업 흐름이 단일 백엔드 하드웨어 공급자의 하드웨어 환경을 통한 단일 소프트웨어 패키지의 실행만을 포함하더라도, 소프트웨어 실행 시간은 단지 하드웨어 실행 시간의 서브세트일 수 있음을 유의해야 한다. 예를 들어, 백엔드 하드웨어 공급자는, 하드웨어의 클러스터가 프로비저닝되는 순간부터 (프로비저닝 해제(de-provision)될 때까지) 하드웨어 사용량에 대해 비용을 청구할 수 있다(그 시간의 일부만이 소프트웨어의 실제 실행을 포함하더라도). 소프트웨어의 인스턴스를 구성 및 개시하고, 결과를 추출하기 위해, 추가적인 "하드웨어 사용량" 시간이 필요할 수 있다.It should be noted that even if the user's workflow includes only the execution of a single software package through the hardware environment of a single back-end hardware provider, the software execution time may only be a subset of the hardware execution time. For example, a backend hardware provider may charge for hardware usage from the moment a cluster of hardware is provisioned (until de-provisioned) (only a fraction of that time is required to actually run the software). Even if included). Additional "hardware usage" time may be required to configure and launch instances of the software and extract results.

보다 복잡한 작업 흐름의 경우, "소프트웨어 사용량" 시간은, 다수의 클러스터 또는 물리적 서버, 다수의 백엔드 하드웨어 공급자, 및 다수의 소프트웨어 패키지(및 이의 구성 요소 기능)에 걸쳐서 할당된다. 여기서도, 플랫폼의 하드웨어 및 소프트웨어 측정 모듈은, 사실상 임의의 원하는 가격 책정 및 비용 청구 메커니즘을 지원하기에 충분한 원하는 세분성 수준으로, 이러한 "소프트웨어 사용량"을 모니터링한다.For more complex workflows, "software usage" time is allocated across multiple clusters or physical servers, multiple backend hardware providers, and multiple software packages (and their component functions). Again, the platform's hardware and software measurement modules monitor this "software usage" with a desired level of granularity sufficient to support virtually any desired pricing and billing mechanism.

("시뮬레이션 자원의 동적 최적화"라는 명칭으로 2016년 8월 11일자로 출원된 미국 특허 출원 일련번호 제15/235,004호(이의 개시물은 본원에 참조로 포함됨)에 더 상세히 설명되는) 다른 실시형태에서, 플랫폼은 작업 또는 작업 흐름의 실행 동안 컴퓨팅 자원의 사용을 또한 모니터링하고, 이러한 자원을 동적으로 최적화하여 인스턴스간 종속성을 해결하기 위한 메커니즘을 제공한다.Another embodiment (described in more detail in U.S. Patent Application Serial No. 15/235,004, filed August 11, 2016 under the name "Dynamic Optimization of Simulation Resources", the disclosure of which is incorporated herein by reference) In, the platform also monitors the use of computing resources during execution of a task or workflow, and dynamically optimizes these resources to provide a mechanism for resolving inter-instance dependencies.

플랫폼은, 하드웨어 및 소프트웨어 측정 모듈과 함께, 비용 청구 계층 및 관련 기능을 더 포함함으로써, 다양한 상이한 가격 책정 체계에 대한 플랫폼의 지원, 및 다수의 상이한 엔티티(개인, HPC 기업, ISV, 타사 파트너 등)에 인보이스를 발행하기 위한 상세한 사용량 할당을 가능하게 한다. 일 실시형태에서, 플랫폼은, 측정된 사용량 또는 소비량 기반 주문형 가격 책정에 기초할 뿐만 아니라, 결과 기반, 선불 보증금(advance deposit), 구독, 사용자 단위(per-seat), 동시 사용자, 및 다양한 공급자 엔티티에 의해 채택된 다른 가격 책정 모델에도 기초하는, 요금의 산출을 지원한다.The platform further includes a billing layer and related functions, along with hardware and software measurement modules, the platform's support for a variety of different pricing schemes, and a number of different entities (individuals, HPC companies, ISVs, third-party partners, etc.) Enables detailed allocation of usage for invoicing to. In one embodiment, the platform is based on on-demand pricing based on measured usage or consumption, as well as results based, advance deposit, subscription, per-seat, concurrent users, and various provider entities. It supports the calculation of rates, which are also based on other pricing models adopted by.

클라우드 기반 환경에서 HPC 작업 및 작업 흐름을 원격으로 실행할 때, 데이터 개인 정보 보호 및 보안 사안의 중요성이 높아진 것을 고려하여, 플랫폼은, 다수의 상이한 백엔드 하드웨어 환경에 걸쳐서 일정하게 (프로비저닝, 프로비저닝 해제 시에, 그리고 컴퓨팅 시간에) 데이터를 암호화함으로써, 데이터 개인 정보 보호 및 보안의 추가적인 계층을 제공한다. 이러한 암호화는, 상이한 백엔드 하드웨어 공급자에 의해 제공되는 모든 보안 수준을 추가로 강화한다(그리고 이와 완전히 호환된다). 플랫폼은, 상이한 백엔드 하드웨어 공급자에 의해 사용되는 상이한 데이터 구조 및 프로토콜을 처리하는 일정한 "데이터 관리" 인터페이스를 더 포함한다.When running HPC jobs and workflows remotely in a cloud-based environment, taking into account the increased importance of data privacy and security issues, the platform is consistent across multiple different backend hardware environments (at the time of provisioning and deprovisioning). , And at computing time) by encrypting the data, providing an additional layer of data privacy and security. These encryptions further enhance (and are fully compatible with) all levels of security offered by different backend hardware providers. The platform further includes certain "data management" interfaces that handle different data structures and protocols used by different backend hardware providers.

기존 솔루션과 비교하여, 본 발명의 플랫폼의 장점은 수없이 많다. HPC 사용자 및 기업에게는, 이들의 작업 및 작업 흐름의 요구 사항을 다수의 백엔드 하드웨어 공급자 및 다수의 소프트웨어 공급자에 의해 제공되는 컴퓨팅 자원과 매칭시키기 위한 향상된 유연성이 제공된다. 그렇지만, 이들은 이들의 기존 온 프레미스 컴퓨팅 환경("bring-your-own" 또는 BYOL 라이센스 및 사유 소프트웨어뿐만 아니라, 온 프레미스 컴퓨팅 및 저장소 자원을 포함함)을 활용하기 위한 유연성을 유지한다.Compared to existing solutions, the advantages of the platform of the present invention are numerous. HPC users and enterprises are provided with increased flexibility to match the requirements of their work and workflow with the computing resources provided by multiple back-end hardware providers and multiple software providers. However, they retain the flexibility to utilize their existing on-premises computing environment (including "bring-your-own" or BYOL licensed and proprietary software, as well as on-premises computing and storage resources).

또한, 플랫폼은, HPC 사용자가 심지어 다수의 하드웨어 및 소프트웨어 공급자에 걸친 상이한 컴퓨팅 자원(온 프레미스 하드웨어 및 소프트웨어 자원을 포함함)을 "믹스 앤 매칭"하는 정도까지, 선택된 하드웨어 및 소프트웨어(라이센스 서버를 포함함)를 통합 및 구성하지 않아도 되게 한다. 단일 백엔드 하드웨어 공급자의 환경 내에서도, HPC 사용자는 개별 "가상 머신"(VM)의 클러스터의 프로비저닝 및 프로비저닝 해제, 그리고 이러한 VM에 걸친 소프트웨어의 인스턴스의 개시에 대해 걱정할 필요가 없다.In addition, the platform includes selected hardware and software (including license servers), to the extent that HPC users "mix and match" different computing resources (including on-premises hardware and software resources) even across multiple hardware and software providers. It does not require integration and configuration. Even within the environment of a single backend hardware provider, HPC users do not have to worry about provisioning and deprovisioning clusters of individual "virtual machines" (VMs), and launching instances of software across these VMs.

복잡한 작업 흐름을 정의할 때 향상된 유연성을 제공할 뿐만 아니라, 이러한 작업 흐름을 실행하는 결과적인 시간 및 비용(또는 다른 최적화 요소)을 최소화하는, 작업 흐름 및 하드웨어 및 소프트웨어 조정 도구가 HPC 사용자에게 제공된다. 하드웨어 및 소프트웨어 측정은, HPC 작업 흐름 및 작업을 실행하는 시간 및 비용을 효율적으로 관리할 뿐만 아니라, 다양한 현재 및 향후의 가격 책정, 라이센싱, 및 비용 청구 체계를 지원하기 위한 편리한 메커니즘을 제공한다. 또한, 이들은 HPC 작업 흐름 또는 작업의 실행 동안 그리고 실행 후에 모두, (실행 및 가격 책정 목적을 위한) 조건부 결과 기반 조치의 실행을 허용함으로써, 개별 HPC 작업 흐름 및 작업의 유연성 및 강건성을 추가로 향상시킨다.Workflow and hardware and software tuning tools are provided to HPC users that provide increased flexibility when defining complex workflows, as well as minimize the resulting time and cost (or other optimization factors) of executing these workflows. . Hardware and software measurements provide a convenient mechanism to support a variety of current and future pricing, licensing, and billing schemes, as well as efficiently managing the HPC workflow and the time and cost of executing tasks. In addition, they further improve the flexibility and robustness of individual HPC workflows and tasks by allowing the execution of conditional outcome-based actions (for execution and pricing purposes), both during and after execution of the HPC workflow or task. .

요컨대, 본 발명의 통합형 플랫폼을 통해, HPC 사용자는, 제한된 하드웨어 및 소프트웨어(및 라이센스 서버) 선택권의 제약으로부터 벗어날 뿐만 아니라, 이러한 다중-공급자 통합으로 인해 비롯되는 상호 종속성(하드웨어 및 소프트웨어 호환성 문제, 소프트웨어 설치 그리고 작업 및 작업 흐름 구성, 라이센스 관리, 상이한 라이센싱 및 가격 책정 메커니즘, 데이터 보안 및 개인 정보 보호 등을 포함함)을 해결하는 어려움으로부터 또한 벗어난다.In short, through the integrated platform of the present invention, HPC users are free from the limitations of limited hardware and software (and license server) options, as well as interdependencies (hardware and software compatibility issues, software compatibility issues resulting from this multi-vendor integration). It also breaks away from the difficulties of solving installation and work and workflow configuration, license management, different licensing and pricing mechanisms, data security and privacy, etc.).

본 발명의 플랫폼의 추가적인 양태 및 실시형태는 아래에 더 상세히 설명된다.Additional aspects and embodiments of the inventive platform are described in more detail below.

도 1은 본 발명의 클라우드 기반 플랫폼의 다중-공급자 서버의 주요 구성 요소의 일 실시형태를 도시하는 시스템 다이어그램이다.
도 2는 본 발명의 클라우드 기반 플랫폼의 다중-공급자 서버에 의해 수행되는 대화형 작업 흐름 생성 및 실행 프로세스의 일 실시형태를 도시하는 흐름도이다.
1 is a system diagram showing an embodiment of the main components of the multi-provider server of the cloud-based platform of the present invention.
2 is a flow chart showing an embodiment of an interactive workflow creation and execution process performed by a multi-provider server of the cloud-based platform of the present invention.

본 발명의 시스템 및 방법의 상세한 실시형태가 첨부된 도면에 도시되며 아래에 설명된다. 본 발명은 도면을 참조하여 아래에 설명되는 구체적인 실시형태로 제한되지 않음을 유의해야 한다. 예를 들어, 본 발명은 본 발명의 사상으로부터 벗어나지 않으면서, 상이한 엔지니어링 트레이드오프(tradeoff)를 반영하여, (하드웨어 및/또는 소프트웨어로 구현되고, 서버 및 클라이언트 장치 간에 할당되는) 더 적거나 더 많은 상이한 개념적 모듈 간에 재할당되는 기능과 함께 별개의 서버 플랫폼에 통합될 수 있다. (추가적인 표준 및 사유 하드웨어 및 소프트웨어를 포함하는) 본 발명의 시스템 및 방법의 추가적인 실시형태는 당업자에게 명백할 것이다.Detailed embodiments of the system and method of the present invention are shown in the accompanying drawings and described below. It should be noted that the present invention is not limited to the specific embodiments described below with reference to the drawings. For example, the present invention reflects different engineering tradeoffs without departing from the spirit of the present invention, so that fewer or more (implemented in hardware and/or software and allocated between server and client devices) It can be integrated into a separate server platform with the ability to be reallocated between different conceptual modules. Additional embodiments of the systems and methods of the present invention (including additional standard and proprietary hardware and software) will be apparent to those skilled in the art.

이하의 도면에 도시된 본 발명의 소프트웨어 구성 요소는 물리적 메모리에 구현되며, 물리적 서버(명시적으로 도시되지 않음)의 CPU(단일 및/또는 다중 코어)에 의해 처리되어, 본 발명의 기능을 구현한다. 그러한 물리적 서버 및 그러한 메모리는, 본 발명의 사상으로부터 벗어나지 않으면서, (사용자의 HPC 작업 흐름 및 작업을 구현하는 소프트웨어와 함께 또는 이와 별개로) 퍼블릭 또는 프라이빗 클라우드, 최종 사용자 구내, 또는 다른 컴퓨팅 환경에 위치될 수 있다. 일 실시형태에서, HPC 사용자는, 클라이언트 장치(서버, 데스크톱, 랩톱, 휴대 전화, 및 다른 네트워크화된 장치)에서 표준 웹 브라우저를 통해 인터넷으로 본 발명의 플랫폼에 접속한다.The software components of the present invention shown in the drawings below are implemented in a physical memory and processed by a CPU (single and/or multiple cores) of a physical server (not explicitly shown) to implement the functions of the present invention. do. Such physical servers and such memory may be stored in a public or private cloud, end-user premises, or other computing environment (with or separately from software that implements the user's HPC workflow and operations) without departing from the spirit of the invention. Can be located. In one embodiment, the HPC user connects to the platform of the invention over the Internet through a standard web browser on a client device (server, desktop, laptop, cell phone, and other networked devices).

도 1을 참조하면, 시스템 다이어그램(100)은 다중-공급자 서버(101)에 의해 구현되는 본 발명의 클라우드 기반 플랫폼의 일 실시형태를 도시한다. 플랫폼의 기능이 다중-공급자 서버(101)에 의해 구현되고, 다중-공급자 서버(101)가 다양한 다른 엔티티로부터의 기능 및 자원을 통합하며, 그 모두가 인터넷(195)을 통해 상호 연결된다는 점에서, 클라우드 기반 "플랫폼"은 다중-공급자 서버(101)와 교환 가능하게 지칭된다. HPC 최종 사용자 고객(155)은 하나 이상의 상이한 인터페이스를 통해 인터넷(195)으로 다중-공급자 서버(101)에 접속한다.Referring to FIG. 1, a system diagram 100 shows an embodiment of the cloud-based platform of the present invention implemented by a multi-provider server 101. In that the functionality of the platform is implemented by the multi-provider server 101, the multi-provider server 101 integrates functions and resources from various different entities, all of which are interconnected via the Internet 195. , The cloud-based "platform" is referred to interchangeably with the multi-provider server 101. The HPC end-user customer 155 connects to the multi-provider server 101 over the Internet 195 through one or more different interfaces.

HPC 사용자(155)가 HPC 작업 흐름을 생성 및 실행하기 위해 (사실상 세계 어느 곳에나 위치된 이들의 네트워크화된 데스크톱 및 모바일 클라이언트 장치로부터) 원격으로 플랫폼에 접속할 수 있게 하는 웹 기반 인터페이스(156)가 가장 일반적이다. 웹 기반 인터페이스(156)는, 작업 흐름의 생성 및 실행을 위한 그리고 결과를 보기 위한 가장 사용자 친화적인 인터페이스를 제공한다. 또한, 고급 HPC 사용자(155)는, 데스크톱 컴퓨터를 통해 (표준 GUI 인터페이스가 아닌) "단말기" 명령 라인 인터페이스를 사용하는 것과 유사한, 명령 라인 인터페이스(CLI)(157)를 통해 이러한 기능의 대부분을 수행할 수 있다.A web-based interface 156 that allows HPC users 155 to remotely access the platform (from their networked desktop and mobile client devices virtually located anywhere in the world) to create and execute HPC workflows is the most. It is common. The web-based interface 156 provides the most user-friendly interface for creating and executing workflows and for viewing results. In addition, advanced HPC users 155 perform most of these functions through a command line interface (CLI) 157, similar to using a "terminal" command line interface (rather than a standard GUI interface) through a desktop computer. can do.

특정 상황에서, HPC 사용자(155)는 API 클라이언트(158)를 사용하여 플랫폼에 접속함으로써, 이들이 예를 들어, 이들 자체의 맞춤형 소프트웨어를 HPC 작업 흐름 및 작업의 호출과 통합할 수 있게 한다. 다중-공급자 서버(101)는 플랫폼과의 그러한 접속을 가능하게 하기 위해, 보안 및 API 계층(102) 내에 포함된 다양한 API를 구현한다.In certain circumstances, HPC users 155 connect to the platform using API clients 158, allowing them to, for example, integrate their own custom software with HPC workflows and invocations of tasks. The multi-provider server 101 implements various APIs contained within the security and API layer 102 to enable such connectivity with the platform.

일 실시형태에서, HPC 사용자(155)는 플랫폼과 달리 독립적인 방식으로 그 자체의 온 프레미스 하드웨어 및 소프트웨어 환경을 이용하기를 원한다. 그러나, 비교적 까다로운 특정 작업의 경우, HPC 사용자(155)는, 플랫폼과 통합된 백엔드 하드웨어 공급자(115)로부터 이용 가능한 추가적인 컴퓨팅 자원의 주문형 사용을 가능하게 하는 "버스트(burst)" 기능을 원한다. 이러한 시나리오에서, 보안 및 API 계층(102)의 특정 API(아래에 설명됨)는, HPC 사용자(155)의 온 프레미스 환경을 통해 실행되는 맞춤형 스크립트(script)가 플랫폼의 사전 정의된 작업 흐름 또는 작업을 호출할 수 있게 함으로써, HPC 사용자(155)의 온 프레미스 작업을 보완하며 그 결과를 HPC 사용자(155)에게 리턴한다.In one embodiment, the HPC user 155 wants to use its own on-premises hardware and software environment in a platform independent manner. However, for certain relatively demanding tasks, the HPC user 155 wants a "burst" capability that enables on-demand use of additional computing resources available from the backend hardware provider 115 integrated with the platform. In such a scenario, a specific API (described below) in the security and API layer 102 is a custom script that runs through the on-premises environment of the HPC user 155 is a predefined workflow or task of the platform. By making it possible to call, the on-premises work of the HPC user 155 is supplemented and the result is returned to the HPC user 155.

이러한 실시형태에서, API는 HPC 사용자(155)와 플랫폼 간의 데이터(작업 구성, 입력 데이터, 작업이 진행 중인 경우 중간 데이터, 및 결과를 포함함)의 교환을 가능하게 한다. 결과적으로, HPC 사용자(155)는 플랫폼의 웹사이트에서 버튼을 간단히 클릭함으로써, 추가적인 컴퓨팅 자원이 필요한 경우 플랫폼을 통해 계속되는 "버스트" 기능을 사용하여, (관련 소프트웨어의 설치 및 구성을 포함하는) 작업이 플랫폼을 통해 전체적으로 실행되게 하거나, (예를 들어) 사용자의 랩톱을 통해 부분적으로 실행되게 할 수 있다.In this embodiment, the API enables the exchange of data (including job configuration, input data, intermediate data if the job is in progress, and results) between the HPC user 155 and the platform. As a result, HPC users 155 simply click a button on the platform's website, and if additional computing resources are required, use the "burst" function to continue through the platform, working (including installation and configuration of related software). You can have it run entirely through this platform, or you can have it run partially through your laptop (for example).

사용자 인터페이스 계층(150)은, HPC 사용자(155)에게 제공되는 다양한 상이한 인터페이스와 플랫폼 간의 양방향 통신을 가능하게 한다. 사용자 인터페이스 관리자(152)는 HPC 사용자(155)에게 제시되는 다양한 상이한 사용자 인터페이스를 생성한다. 일 실시형태에서, 이러한 인터페이스는, HPC 사용자(155)가 하드웨어 컴퓨팅 자원 옵션뿐만 아니라, 이용 가능한 라이브러리로부터 소프트웨어를 선택할 수 있게 하는 웹 기반 형태를 포함한다. 다른 웹 기반 형태는, HPC 사용자(155)가 이들의 모델, 소프트웨어 구성, 및 작업 흐름 또는 작업에 특정된 입력 데이터를 입력할 수 있게 한다. 추가적인 사용자 인터페이스는, 개별 HPC 태스크를 조합하고, 루프, 조건, 및 다른 제어 흐름 구성 요소를 구현하여, 작업 흐름의 실행을 제어하기 위한 작업 흐름 도구(및 "전체" 작업 흐름의 실행을 개시하기 전에, 작업 흐름 또는 작업의 일부를 테스트하고, 하드웨어 및 소프트웨어 자원을 재구성하기 위한 하드웨어 및 소프트웨어 조정 도구)를 포함한다.The user interface layer 150 enables bidirectional communication between platforms and various different interfaces provided to the HPC user 155. The user interface manager 152 creates a variety of different user interfaces that are presented to the HPC user 155. In one embodiment, this interface includes a web-based form that allows HPC users 155 to select hardware computing resource options as well as software from available libraries. Another web-based form allows HPC users 155 to enter their models, software configurations, and input data specific to the workflow or task. An additional user interface is a combination of individual HPC tasks, and implementation of loops, conditions, and other control flow components, prior to initiating execution of a workflow tool (and “full” workflow) to control the execution of the workflow. , Hardware and software tuning tools for testing a work flow or part of a task, and reconfiguring hardware and software resources).

사용자 및 고객 관리자(153)는, 개별 HPC 사용자(155) 및 이들의 회사 소속(및 사용자별 접속 제어 및 다른 제한 사항)을 포함하는, 사용자 엔티티의 데이터베이스를 생성 및 유지한다. 이러한 "사용자 데이터베이스"는 DB(190)에 유지된다. 물론, 다중-공급자 서버(101)에 의해 활용되는 이러한 사용자 데이터 및 다른 데이터의 저장은, 본 발명의 사상을 벗어나지 않으면서, 다양한 상이한 위치에 있는 다른 저장 장치에 걸쳐서 분산될 수 있다. 도 1에 도시된 실시형태에서, DB(190)는, 타사 파트너, 그리고 백엔드 하드웨어, 소프트웨어 및 라이센스 서버의 공급자와 같은, 다양한 다른 엔티티에 특정된 정보를 저장하기 위해서도 사용된다.The user and customer manager 153 creates and maintains a database of user entities, including individual HPC users 155 and their company affiliations (and user-specific access controls and other restrictions). This "user database" is maintained in the DB 190. Of course, the storage of such user data and other data utilized by the multi-provider server 101 can be distributed across different storage devices in a variety of different locations without departing from the spirit of the invention. In the embodiment shown in FIG. 1, DB 190 is also used to store information specific to a variety of other entities, such as third-party partners, and suppliers of backend hardware, software and license servers.

이러한 실시형태에서, (DB(190)를 포함하는) 다중-공급자 서버(101)의 기능은 하나 이상의 백엔드 하드웨어 공급자(115)의 가상 및 물리적 컴퓨팅 자원에 상주한다. 플랫폼의 소유자/운영자는 그 자체의 구내(도시되지 않음)에서 클라이언트 장치로부터 원격으로 플랫폼의 기능을 관리한다.In this embodiment, the functionality of the multi-provider server 101 (including DB 190) resides on the virtual and physical computing resources of one or more backend hardware providers 115. The platform's owner/operator manages the platform's functionality remotely from the client device on its own premises (not shown).

보안 및 API 계층(102)은, 플랫폼에 접속하는 다른 엔티티에 의해 제공되는 모든 보안을 보완하는 일정한 수준의 데이터 개인 정보 보호 및 보안을 보장하기 위해, 프로비저닝, 프로비저닝 해제 시에 그리고 컴퓨팅 시간에 데이터를 암호화하는 보안 메커니즘(데이터 및 보안 관리자(104)를 통해 구현됨)을 포함한다. 플랫폼은 아래에 더 상세히 설명되는 바와 같이, 접속되는 엔티티의 유형에 따라, 다양한 상이한 목적을 위해 보안 및 API 계층(102) 내의 API를 사용한다.The security and API layer 102 provides data at the time of provisioning, deprovisioning, and at computing time to ensure a certain level of data privacy and security that complements all security provided by other entities accessing the platform. It includes a security mechanism to encrypt (implemented through the data and security manager 104). The platform uses the API within the security and API layer 102 for a variety of different purposes, depending on the type of entity to which it is connected, as described in more detail below.

또한, 데이터 및 보안 관리자(104)는, 내부적으로 사용된 다음, 다양한 엔티티와의 통신을 위해 변환되는, 일정한 데이터 구조를 구현한다. 예를 들어, 심지어 퍼블릭 클라우드 공급자(116)도 데이터를 저장 및 검색하기 위한 API 및 상이한 데이터 구조를 갖는다(데스크톱 컴퓨터의 상이한 파일 시스템과 유사함). 상이한 백엔드 하드웨어 공급자(115) 간에 데이터를 양방향으로(back and forth) 이동시키기 위해, 플랫폼은 이의 범용 포맷으로 그리고 이의 범용 포맷으로부터 변환하여 이러한 백엔드 하드웨어 공급자(115)의 상이한 API와 통신해야 한다.The data and security manager 104 also implements certain data structures, which are used internally and then transformed for communication with various entities. For example, even public cloud providers 116 also have APIs and different data structures for storing and retrieving data (similar to different file systems of desktop computers). To move data back and forth between different backend hardware providers 115, the platform must communicate with the different APIs of these backend hardware providers 115 by converting to and from its universal format.

또한, 소프트웨어는 흔히 저장소가 "로컬"이라고 가정함으로써, 플랫폼은 특정 작업 흐름 또는 작업을 위해 소프트웨어를 구성할 때, 데이터의 실제 물리적(또는 가상) 위치를 추상화해야 한다. 일 실시형태에서, 성능이 저장소의 위치에 의해 크게 영향을 받는 경우, 플랫폼은 작업이 실행되기 전 및 후에 변환을 수행함으로써, 실행 동안, 로컬 저장소(즉, 작업이 실행되는 곳)가 성능 상의 이유로 유지되도록 보장한다.In addition, software often assumes that the storage is "local," so that the platform must abstract the actual physical (or virtual) location of the data when configuring the software for a particular workflow or task. In one embodiment, if performance is significantly affected by the location of the repository, the platform performs conversions before and after the task is executed, so that during execution, the local repository (i.e., where the task is executed) is Ensure that it is maintained.

노드간(예를 들어, VM간) 통신뿐만 아니라, 다수의 상이한 백엔드 하드웨어 공급자(115)에 걸친 통신을 작업 수준으로 처리함으로써, 플랫폼은 사용자가 이러한 종속성을 해결할 필요가 없게 한다. 또한, 퍼블릭 클라우드 공급자(116)는 VM 또는 물리적 서버 수준으로 사용량을 측정하는 반면에, 개별 작업 또는 작업 흐름은 다수의 VM 또는 물리적 서버를 포함할 수 있다. 일 실시형태에서, VM 중 하나가 하드웨어 고장을 겪는 경우, 플랫폼은 작업 상태를 저장하고, 다른 VM을 재-프로비저닝하여 작업을 재시작함으로써, 더 큰 고장을 방지한다. 대부분의 경우, 소프트웨어는 작업의 일시 중지/재시작을 실질적으로 "인식"하지 못할 수 있다.By handling inter-node (eg, VM-to-VM) communication as well as communication across multiple different backend hardware providers 115 at the task level, the platform eliminates the need for users to resolve these dependencies. In addition, the public cloud provider 116 measures usage at the VM or physical server level, while individual tasks or workflows may include multiple VMs or physical servers. In one embodiment, if one of the VMs experiences a hardware failure, the platform saves the working state and restarts the work by re-provisioning the other VM, preventing further failure. In most cases, the software may not be practically “aware” of the pause/resume of a job.

다른 실시형태에서, 플랫폼은, 하드웨어 환경의 "강건성"을 평가하여 작업의 실행을 중단시켜야 하는 위험을 최소화하기 위해, 사전 작업 진단(예를 들어, CPU, 디스크 성능 및 네트워크 지연 시간 테스트)을 수행한다. 다른 실시형태에서, 유사한 이유로 일정 수준의 중복성(redundancy)을 제공하기 위한 추가적인 자원이 할당된다.In another embodiment, the platform performs proactive task diagnostics (e.g., CPU, disk performance, and network latency tests) to minimize the risk of having to halt execution of tasks by evaluating the "robustness" of the hardware environment. do. In other embodiments, additional resources are allocated to provide some level of redundancy for similar reasons.

다중-공급자 관리자(105)는, (HPC 사용자(155), 파트너(132), 백엔드 하드웨어 공급자(115), 소프트웨어 공급자(125), 및 라이센스 서버(128)의 공급자를 포함하는) 다양한 상이한 유형의 공급자 엔티티와의 전반적인 관계 및 통신을 관리하기 위한 추가적인 기능을 제공한다. 다중-공급자 관리자(105)는 그러한 엔티티와의 직접 통신을 관리하는 다양한 플랫폼 모듈과 내부적으로 통신한다.The multi-provider manager 105 can be used for a variety of different types (including HPC users 155, partners 132, backend hardware providers 115, software providers 125, and providers of license servers 128). It provides additional functions to manage the overall relationship and communication with the supplier entity. The multi-provider manager 105 communicates internally with the various platform modules that manage direct communication with such entities.

일 실시형태에서, 플랫폼의 소유자/운영자는, HPC 사용자(155)와의 이의 관계의 특정 양태를 관리하기 위해 다양한 타사 파트너(132)와 계약한다. 예를 들어, 파트너(132)는 개인 및 기업이 HPC 사용자(155)가 되도록 권유하고, 이러한 권유된 HPC 사용자(155)와의 계약 및 비용 청구 관계를 관리하며, 이러한 권유된 HPC 사용자(155)의 온 프레미스 컴퓨팅 자원을 플랫폼과 통합하는 것을 가능하게 할 책임이 있을 수 있다. 또한, 파트너(132)는 실질적으로 백엔드 하드웨어 공급자(115)의 역할을 할 수 있으며, 이들의 권유된 HPC 사용자(155)의 이익을 위해, 이들 자체의 하드웨어 인프라를 제공할 수 있거나, 퍼블릭(116) 또는 프라이빗(117) 클라우드 공급자의 인프라를 사용할 수 있다.In one embodiment, the platform's owner/operator contracts with various third-party partners 132 to manage certain aspects of their relationship with HPC users 155. For example, the partner 132 invites individuals and businesses to become HPC users 155, manages contracts and billing relationships with these invited HPC users 155, and manages the It may be responsible for enabling the integration of on-premises computing resources with the platform. In addition, the partner 132 may substantially act as a backend hardware provider 115, and for the benefit of their recommended HPC users 155, may provide their own hardware infrastructure, or may provide a public 116 ) Or the infrastructure of a private 117 cloud provider.

파트너 계층(130)은, 다양한 상이한 데이터 구조, 프로토콜 및 API의 변환을 포함하는, 플랫폼과 개별 파트너(132) 간의 통신을 구현한다. 파트너 관리자(131)는 이러한 변환을 구현하고, 다른 엔티티 중에서, 파트너(132), HPC 사용자(155), 백엔드 하드웨어 공급자(115), 및 소프트웨어 공급자(125)와 요금, 인보이스 및 관련 리포트를 교환할 책임이 있는 비용 청구 계층(140)과 같은, 다양한 플랫폼 구성 요소와 연결된다. 비용 청구 관리자(145)는 이러한 요금 산출을 구현하고, 인보이스 및 관련 리포트를 생성하며, 결제를 관리한다(다중-공급자 관리자(105) 및 하드웨어 및 소프트웨어 측정 관리자(180), 그리고 다른 내부 플랫폼 구성 요소와 연결됨).The partner layer 130 implements communication between the platform and individual partners 132, including the transformation of a variety of different data structures, protocols and APIs. Partner manager 131 implements this transformation and, among other entities, exchanges rates, invoices and related reports with partners 132, HPC users 155, backend hardware providers 115, and software providers 125. It connects to various platform components, such as the responsible billing tier 140. The billing manager 145 implements these rate calculations, generates invoices and related reports, and manages payments (multi-supplier manager 105 and hardware and software measurement manager 180, and other internal platform components. Connected with).

플랫폼과 통합된 가장 중요한 엔티티 중에는 백엔드 하드웨어 공급자(115)가 있다. 위에 언급된 바와 같이, HPC 사용자(155)의 작업 흐름 및 작업은 다중-공급자 서버(101)에 의해 직접 실행되지 않는다. 대신에, 플랫폼은, 퍼블릭 클라우드 공급자(116), 프라이빗 데이터 센터 공급자(117), 및 HPC 사용자(155)에 의해 제공되는 온 프레미스 컴퓨팅 자원(118)을 포함하는, 다수의 상이한 하드웨어 공급자에 의해 제공되는 컴퓨팅 자원과 통합된다.Among the most important entities integrated with the platform is the backend hardware provider 115. As mentioned above, the work flows and tasks of the HPC user 155 are not directly executed by the multi-provider server 101. Instead, the platform is provided by a number of different hardware providers, including public cloud providers 116, private data center providers 117, and on-premises computing resources 118 provided by HPC users 155. Is integrated with computing resources.

아래에 더 상세히 설명되는 바와 같이, 플랫폼은, HPC 사용자(155)가 하나 이상의 이용 가능한 백엔드 하드웨어 공급자(115)로부터의 컴퓨팅 자원을 선택할 수 있게 한다(개별 작업 흐름 또는 작업의 경우에도). 일 실시형태에서, 이러한 선택은 HPC 사용자(155)에 의해 설계된 특정 작업 흐름 또는 작업의 속성에 의해 필터링된다. 예를 들어, 특정 백엔드 하드웨어 공급자(115)의 하드웨어 환경에서 특정 소프트웨어 패키지가 이용 가능하지 않는 경우, 그 백엔드 하드웨어 공급자(115)에 의해 제공되는 컴퓨팅 자원 옵션은 HPC 사용자(155)가 보는 사용자 인터페이스에서 없을 것이다. 다른 실시형태에서, 이러한 옵션이 없는 것은 사용자 인터페이스에서(예를 들어, 상위 수준 컴퓨팅 자원 옵션의 리스트에서) 명확하게 식별되지 않지만, 그러한 호환되지 않는 옵션은 다중-공급자 서버(101)에 의해 내부적으로 선택되지 않을 것이다.As described in more detail below, the platform allows HPC users 155 to select computing resources from one or more available backend hardware providers 115 (even in the case of individual workflows or tasks). In one embodiment, these selections are filtered by the attributes of a particular workflow or task designed by the HPC user 155. For example, if a specific software package is not available in the hardware environment of a specific backend hardware provider 115, the computing resource options provided by the backend hardware provider 115 are displayed in the user interface viewed by the HPC user 155. There won't be. In other embodiments, the absence of such an option is not clearly identified in the user interface (e.g., in a list of high-level computing resource options), but such incompatible options are internally addressed by the multi-provider server 101. Will not be chosen.

백엔드 하드웨어 공급자(115)의 상이한 컴퓨팅 자원 환경과의 접속은 하드웨어 추상화 계층(110)에 의해 관리되며, 하드웨어 추상화 계층(110)은, 컴퓨팅 자원의 내부적으로 생성된 일정한 형식(formulation)을 특정 코어 유형, 물리적 서버, 또는 개별 백엔드 하드웨어 공급자(115)에 의해 제공되는 다른 옵션으로 변환한다. 일 실시형태에서, 플랫폼은 (다중-공급자 관리자(105)의 도움으로) 100개 CPU 코어의 요구 사항과 같은, HPC 사용자(155)에 의해 지정된 작업 흐름 또는 작업의 상위 수준 요건을 분석한다. 이러한 상위 수준의 요건은, 2개의 상이한 백엔드 하드웨어 공급자(115)의 상이한 코어 유형에 의해 충족될 수 있다(하나의 공급자는 10개 CPU 코어/노드를 각각 갖는 10개 노드(서버)를 제공하고, 다른 공급자는 5개 CPU 코어/노드를 각각 갖는 20개 노드를 제공한다).The connection of the back-end hardware provider 115 to different computing resource environments is managed by the hardware abstraction layer 110, and the hardware abstraction layer 110 uses a certain internally generated formulation of the computing resource to be a specific core type. , Physical server, or other options provided by the individual backend hardware provider 115. In one embodiment, the platform analyzes (with the aid of multi-vendor manager 105) a high-level requirement of a task or workflow specified by HPC user 155, such as the requirement of 100 CPU cores. These high-level requirements can be met by different core types of two different backend hardware providers 115 (one provider provides 10 nodes (servers) each with 10 CPU cores/nodes, Other providers offer 20 nodes each with 5 CPU cores/nodes).

HPC 사용자(155)가 유일한 최적화 요소로서 총 비용을 지정하는 경우, 10개-코어 노드의 비용이 5개-코어 노드의 비용의 두 배 초과일 수 있으므로, 후자의 선택이 더 저렴할 수 있다. 그러나, 대신에 HPC 사용자(155)가 시간을 최적화하길 원하는 경우(예를 들어, 심지어 더 많은 비용으로, 3일 대신에 1일 내에 완료되는 작업을 선호하는 경우), 전자의 선택이 바람직할 수 있다(예를 들어, (20개 노드와 대조적으로) 10개 노드 사이의 노드간 통신 오버헤드가 훨씬 더 빠른 총 작업 실행 시간을 야기하기 때문임). 일 실시형태에서, 플랫폼은 HPC 사용자(155)에 의해 지정된 최적화 요소에 따라, 자동으로 이러한 결정을 한다. 다른 실시형태에서, 플랫폼은 상세한 제안 사항을 제시하며, 이로부터 HPC 사용자(155)가 최종 결정을 한다. 이러한 결정을 할 때, 다양한 상이한 요소의 다른 트레이드오프, 및 하드웨어 컴퓨팅 자원의 다수의 상이한 선택 간의 이러한 비교의 다른 구현이 고려될 수 있음은 당업자에게 명백할 것이다.If the HPC user 155 specifies the total cost as the only optimization factor, the latter option may be cheaper, since the cost of a 10-core node may be more than twice that of a 5-core node. However, if instead the HPC user 155 wants to optimize time (e.g., even more costly, preferring a task to be completed in one day instead of three), the former option may be desirable. Yes (for example, because the inter-node communication overhead between 10 nodes (as opposed to 20 nodes) results in a much faster total task execution time). In one embodiment, the platform automatically makes this determination according to the optimization factor specified by the HPC user 155. In another embodiment, the platform presents detailed suggestions, from which the HPC user 155 makes the final decision. In making this decision, it will be apparent to those skilled in the art that other tradeoffs of various different factors, and other implementations of this comparison between multiple different selections of hardware computing resources, may be considered.

다른 실시형태에서, HPC 사용자(155)의 개별 작업 흐름 또는 작업과 관련하여 선택된 컴퓨팅 자원은, 다수의 백엔드 하드웨어 공급자(115)의 가상 및/또는 물리적 하드웨어 환경을 통해 구현된다. 이러한 결정을 할 때, 플랫폼은, HPC 사용자(155)에 의해 제공된 모델, 소프트웨어 및 구성, 그리고 입력 데이터를 포함할 뿐만 아니라, 위에서 언급된 바와 같이, HPC 사용자(155)에 의해 지정된 최적화 파라미터(예를 들어, 총 캘린더 시간, 실행 시간, 비용 등)를 포함하는 다양한 요소를 고려한다.In other embodiments, the computing resources selected in connection with the individual workflows or tasks of HPC users 155 are implemented through the virtual and/or physical hardware environments of multiple backend hardware providers 115. In making this determination, the platform not only includes the model, software and configuration, and input data provided by the HPC user 155, but also the optimization parameters specified by the HPC user 155 (e.g. For example, consider various factors, including total calendar time, running time, cost, etc.).

하드웨어 추상화 계층(110)을 사용하여, 선택된 컴퓨팅 자원을 프로비저닝하는 것과 더불어, 플랫폼은, (하드웨어 및 소프트웨어 구성 요소 모두와 관련하여) 작업 흐름의 실행을 모니터링하고, 컴퓨팅 자원을 프로비저닝 해제하며, 다양한 비용 청구 및 다른 기능을 수행하기 위한 목적으로, 하드웨어 추상화 계층(110)을 또한 사용하여 백엔드 하드웨어 공급자(115)와의 양방향 통신을 관리한다.Using the hardware abstraction layer 110, in addition to provisioning selected computing resources, the platform monitors the execution of work flows (in relation to both hardware and software components), deprovisions computing resources, and provides various costs. For the purpose of performing billing and other functions, the hardware abstraction layer 110 is also used to manage bidirectional communication with the backend hardware provider 115.

예를 들어, 특정 백엔드 하드웨어 공급자(115)는 컴퓨팅 자원을 작업에 할당하기 위한 이들 자체의 "스케줄러"를 갖고 있지만, 플랫폼은 본질적으로, 각각의 개별 백엔드 하드웨어 공급자(115)에 의해 요구되는 특정 데이터 구조, 프로토콜, 및 API(이러한 스케줄러 기능이 없는 온 프레미스 컴퓨팅 자원을 통합하기 위한 API를 포함함)로 변환되는 더 상위 수준의 스케줄러를 제공한다.For example, certain backend hardware providers 115 have their own "schedulers" for allocating computing resources to tasks, but the platform is essentially, the specific data required by each individual backend hardware provider 115. It provides a higher-level scheduler that translates into structure, protocol, and API (including APIs for integrating on-premises computing resources without these scheduler functions).

(HPC 태스크, 작업, 및 더 복잡한 작업 흐름 내에서 그리고 이들에 걸쳐서) 다수의 백엔드 하드웨어 공급자(115)와의 접속을 제공하는 것과 더불어, 플랫폼은 또한 다수의 소프트웨어 공급자(125)로부터의 다수의 타사 소프트웨어 패키지의 선택권을 HPC 사용자(155)에게 제공한다. SW 추상화 계층(120)은, 플랫폼 내에 통합된 다양한 소프트웨어 공급자(125) 간의 상이한 API를 관리한다(예를 들어, 소프트웨어 업데이트를 수신하고, 비용 청구 관리자(145) 및 비용 청구 계층(140)의 도움으로, 인보이스, 사용량 리포트, 그리고 전자 결제를 포함하는 다른 비용 청구 및 결제 정보를 교환하기 위해).In addition to providing access to multiple backend hardware providers 115 (within and across HPC tasks, tasks, and more complex workflows), the platform also supports multiple third party software from multiple software providers 125. The choice of package is provided to the HPC user 155. The SW abstraction layer 120 manages different APIs between the various software providers 125 integrated within the platform (e.g., receiving software updates, and with the aid of billing manager 145 and billing layer 140). To exchange billing and payment information, including invoices, usage reports, and electronic payments).

ISV 및 고객 SW 관리자(122)는 플랫폼의 소프트웨어 라이브러리를 관리하며, 소프트웨어 라이브러리의 서브세트는, 그러한 타사 소프트웨어(및 이의 구성 요소 기능)에 대한 이들의 라이센스 조건에 기초하여, 지정된 HPC 사용자(155)에 의해 접속 가능하다. ISV 및 고객 SW 관리자(122)는, 각각의 백엔드 하드웨어 공급자(115)의 각각의 운영 체제에 대해 별개의 소프트웨어 "이미지"를 유지한다. 일 실시형태에서, 작업이 실행되기 전에, 플랫폼은 선택된 하드웨어 환경 내에서 필요에 따라 복제될 수 있도록 관련 이미지를 설치한다. 이러한 방식으로, 지정된 하드웨어 환경과의 선택된 소프트웨어의 호환성이 HPC 사용자(155)에게 사전에 보장된다.The ISV and customer SW manager 122 manages the platform's software library, and a subset of the software library is based on their license terms for such third-party software (and its component features), the designated HPC user 155 Connection is possible by The ISV and customer SW manager 122 maintains a separate software “image” for each operating system of each backend hardware provider 115. In one embodiment, before the task is executed, the platform installs the associated image so that it can be replicated as needed within the selected hardware environment. In this way, compatibility of the selected software with the specified hardware environment is ensured in advance to the HPC user 155.

다른 실시형태에서, 플랫폼은, HPC 사용자(155)가 후속 작업 흐름 및 작업 동안 이들의 사용을 위해 사유 소프트웨어를 개발 및 통합할 수 있게 하는, 개발 및 통합 도구를 포함한다. 이러한 도구는 이용 가능한 하드웨어 환경과의 호환성을 보장하고, HPC 사용자(155)에 의해 지정된 최적화 요소에 따라, 최상의 "HW-SW 매칭"을 최적화하기 위한 구성 도구를 제공한다. 또 다른 실시형태에서, 플랫폼은, 상이한 운영 체제 및 백엔드 하드웨어 공급자(115)에 걸쳐서 그러한 소프트웨어의 설치를 가능하게 하기 위해 OS-독립적 "컨테이너(container)"를 생성한다.In another embodiment, the platform includes development and integration tools that allow HPC users 155 to develop and integrate proprietary software for their use during subsequent workflows and tasks. These tools ensure compatibility with available hardware environments and provide configuration tools for optimizing the best "HW-SW matching" according to the optimization factors specified by the HPC user 155. In yet another embodiment, the platform creates an OS-independent “container” to enable installation of such software across different operating systems and backend hardware providers 115.

ISV 및 고객 SW 관리자(122)는, 작업 흐름 또는 작업의 실행 동안 및 실행 후에, 분석 및 다른 대화형 GUI 보기를 가능하게 하는 "가상 데스크톱" 도구를 더 포함한다. 애플리케이션이 로컬로 제어되지만, 원격으로 실행되는 "원격 데스크톱" 소프트웨어와 유사하게, 가상 데스크톱 기능은, 실행 동안 및 실행 후에, 이들의 작업의 특정 양태를 호출 및 모니터링하는 기능을 HPC 사용자(155)에게 제공한다.The ISV and customer SW manager 122 further includes a "virtual desktop" tool that enables analysis and other interactive GUI viewing during and after execution of a workflow or task. Similar to "remote desktop" software where applications are controlled locally, but run remotely, the virtual desktop functionality provides HPC users 155 with the ability to invoke and monitor certain aspects of their operations during and after execution. to provide.

전술한 바와 같이, 상이한 ISV는, 이들의 사유 및 타사 라이센스 서버(128)의 위치 및 사용에 대한 상이한 요건을 갖는다. 라이센스 서버 추상화 계층(127)은, 사실상 임의의 물리적 위치에 설치된 (다수의 상이한 ISV에 걸친) 다양한 상이한 라이센스 서버(128)와 통합할 때 상당한 유연성을 제공한다. 예를 들어, 일부 ISV는 물리적 라이센스 서버(128)의 위치를 (예를 들어, ISV 구내, 또는 HPC 사용자(155) 구내로) 제한할 수 있는 반면에, 다른 ISV는 라이센스 서버 기능을 구현하는 소프트웨어가 어디든(예를 들어, (ISV가 라이센스 서버 기능의 무결성을 보장하기에 충분한 제어를 유지하는 경우) 퍼블릭 클라우드(116)에) 물리적으로 위치될 수 있게 허용할 수 있다.As mentioned above, different ISVs have different requirements for their reasons and the location and use of third party license servers 128. The license server abstraction layer 127 provides a great deal of flexibility when integrating with a variety of different license servers 128 (across a number of different ISVs) installed in virtually any physical location. For example, some ISVs may limit the location of the physical license server 128 (e.g., on the ISV premises, or on the premises of HPC users 155), while others are software that implement the license server function. Can be physically located anywhere (eg, in the public cloud 116 (if the ISV maintains sufficient control to ensure the integrity of the license server functionality)).

라이센스 관리자(126)는, (예를 들어, 인증 그리고 체크인 및 체크아웃 목적을 위해, 그리고 라이센스 조건이 엄격하게 시행되도록 보장하기 위해) 관련 라이센스 서버(128)의 HPC 사용자의 라이센스 파일이 이의 물리적 위치와 관계없이, 현재 작업에 의해 접속 가능하도록 보장하기 위한 도구를 제공한다. 특정한 경우에, 라이센스 서버(128)가 HPC 사용자(155)의 구내에 위치된 경우, 사전 맞춤형 통합이 필요하다.The license manager 126 may ensure that the license file of the HPC user of the associated license server 128 is located in its physical location (e.g., for authentication and check-in and check-out purposes, and to ensure that the license terms are strictly enforced). Regardless, it provides a tool to ensure that it is accessible by the current job. In certain cases, if the license server 128 is located on the premises of the HPC user 155, pre-custom integration is required.

라이센스 관리자(126)는 HW 및 SW 측정 관리자(180)와 함께 작업하여, 라이센스 조건이 엄격하게 시행되도록 보장한다. 일 실시형태에서, HPC 사용자(155)는 "bring-your-own"(BYOL) 라이센스를 제공함으로써, 작업의 실행 동안 관련 라이센스 서버(128)를 통해 플랫폼에 접속 가능하게 된다. 다른 실시형태에서, 플랫폼의 소유자/운영자는 또한 관련 ISV로부터 사전 승인을 획득하여, 이와 동일한 목적을 위해 주문형 라이센스(선불 및 기타)를 생성한다. 이러한 시나리오에서, HPC 사용자(155)에 의해 제공된 BYOL 라이센스가 없는 경우(예를 들어, 구식 버전 또는 다른 이유로 인해), 플랫폼은, 작업을 실행하기 위해(또는 다른 실시형태에서, HPC 사용자(155)가 할당된 사용량 요건을 초과한 경우 주문형 "버스트" 기능을 제공하기 위해), 플랫폼-호스팅 라이센스 서버(128)로 접속을 자동으로 방향 전환할 수 있다.The license manager 126 works with the HW and SW measurement manager 180 to ensure that the license conditions are strictly enforced. In one embodiment, the HPC user 155 provides a "bring-your-own" (BYOL) license, allowing access to the platform through the associated license server 128 during execution of the job. In another embodiment, the owner/operator of the platform also obtains prior approval from the relevant ISV to create on-demand licenses (prepaid and other) for this same purpose. In such a scenario, if there is no BYOL license provided by the HPC user 155 (e.g., due to an outdated version or other reason), the platform is to execute the task (or in other embodiments, the HPC user 155). In order to provide an on-demand "burst" function) if it exceeds the allocated usage requirements), it can automatically redirect the connection to the platform-hosting license server 128.

플랫폼과의 이러한 수준의 통합으로 인해, HPC 사용자(155)는 기존 BYOL(및 심지어 일부 주문형) 라이센싱 체계의 많은 제약으로부터 벗어난다. 타사 라이센스 서버(128)와의 플랫폼의 통합 수준은 작업의 실행 동안 양방향 통신을 가능하게 하며, 프록시를 사용하여, 다양한 상이한 백엔드 하드웨어 공급자(115)에 걸친 방화벽(HPC 사용자(155)의 물리적 위치에서의 온 프레미스 방화벽을 포함함) 문제를 해결한다. 이러한 라이센스 서버(128)를 사전에 탐색함으로써, 플랫폼은 HPC 사용자(155)의 불필요한 하드웨어 프로비저닝 비용을 방지한다(예를 들어, 라이센스 인증이 실패하는 경우).Due to this level of integration with the platform, HPC users 155 are freed from many limitations of the existing BYOL (and even some on-demand) licensing schemes. The level of integration of the platform with the third-party license server 128 enables two-way communication during the execution of the task and, using a proxy, a firewall across a variety of different backend hardware providers 115 (at the physical location of the HPC user 155). On-premises firewall) By searching for such a license server 128 in advance, the platform prevents unnecessary hardware provisioning costs of the HPC user 155 (eg, when license authentication fails).

작업 흐름을 설정할 때 HPC 사용자(155)를 지원하기 위해, 작업 흐름 관리자(170)는, 전형적으로 HPC 사용자(155)가 해결해야 하는 하드웨어 및 소프트웨어 호환성 문제로부터 보호되는 도구를 제공한다. 즉, 이러한 작업 흐름 도구는 더 높은 추상화 수준이므로, HPC 사용자(155)가 이들의 특정 HPC 태스크의 기능에 집중할 수 있게 한다.To assist the HPC user 155 in setting up a workflow, the workflow manager 170 provides tools that are typically protected from hardware and software compatibility issues that the HPC user 155 must address. That is, these workflow tools are at a higher level of abstraction, allowing HPC users 155 to focus on the functionality of their specific HPC tasks.

위에 언급된 바와 같이, 작업 흐름 관리자(170)는, HPC 사용자(155)가 (다수의 백엔드 하드웨어 공급자(115)의 하드웨어 자원에 걸쳐서 실행되는 다수의 소프트웨어 공급자(125)로부터의 소프트웨어 패키지를 포함하는) 개별 HPC 태스크 및 작업 내에서 그리고 개별 HPC 태스크 및 작업에 걸쳐서 모두, 루프, 조건, 및 다른 제어 흐름 구성 요소를 구현할 수 있게 하는, 템플릿 및 도구를 포함한다. 하나의 태스크의 출력은 후속 태스크에 대한 입력으로 방향 전환될 수 있다. 실행은 지정된 제약에 따라 중간 결과에 기초하여 지정된 태스크로 분기할 수 있다. 예를 들어, 비행기 날개를 설계하는 상황에서, 공통적으로 반복되는 계산 또는 "스위프(sweep)"는, 날개의 각도를 가변시키는 것을 포함한다. 날개의 각도를 한정하기 위해 사용되는 파라미터만이 가변되는 다수의 테스트 실행에서 동일한 계산이 반복될 수 있다.As mentioned above, the workflow manager 170 allows the HPC user 155 to (including software packages from a number of software providers 125 running across the hardware resources of a number of backend hardware providers 115). ) Includes templates and tools that enable the implementation of loops, conditions, and other control flow components, both within and across individual HPC tasks and tasks. The output of one task can be redirected to an input for a subsequent task. Execution can branch to a specified task based on intermediate results according to specified constraints. For example, in the context of designing an airplane wing, a commonly repeated calculation or “sweep” involves varying the angle of the wing. The same calculation can be repeated in multiple test runs where only the parameters used to define the angle of the wing are varied.

또한, HW 및 SW 튜너(Tuner)(172)는, HPC 사용자(155)가 원하는 하드웨어 자원 및 소프트웨어 구성 파라미터의 선택을 가능하게 하기 위해 "테스트 실행"을 설계할 수 있게 하는 도구를 포함한다. 예를 들어, HPC 사용자(155)는 자주 반복되는 작업의 상대적으로 작은 부분을 식별할 수 있으며, 다수의 상이한 하드웨어 구성을 통해 그 부분을 테스트할 수 있다. 원하는 구성이 결정되면, 원하는 하드웨어 컴퓨팅 자원이 프로비저닝되어 전체 작업을 실행할 수 있다. 다른 실시형태에서, HPC 사용자(155)가 테스트 실행을 위한 조건을 지정함으로써, 충족되는 경우, 원하는 하드웨어 환경에서 전체 작업이 자동으로 재구성 및 실행될 것이다. 이러한 "하드웨어 조정" 도구는 테스트 목적을 위한 유연성을 제공할 뿐만 아니라, 하드웨어 컴퓨팅 자원의 부적절한 선택으로 인해 결국 실패하는(또는 상당한 자원을 낭비하는) 고비용의 장기 작업을 방지함으로써, 비용 절감을 또한 제공한다.In addition, the HW and SW tuner 172 includes a tool that allows the HPC user 155 to design a "test run" to enable selection of desired hardware resources and software configuration parameters. For example, the HPC user 155 can identify a relatively small portion of a frequently repeated task, and test that portion through a number of different hardware configurations. Once the desired configuration is determined, the desired hardware computing resources are provisioned and can execute the entire task. In another embodiment, by specifying conditions for test execution by HPC user 155, the entire task will be automatically reconfigured and executed in the desired hardware environment if satisfied. These "hardware tuning" tools not only provide flexibility for testing purposes, but also provide cost savings by avoiding expensive, long-term tasks that eventually fail (or waste significant resources) due to improper selection of hardware computing resources. do.

또한, HW 및 SW 튜너(172)는, HPC 사용자(155)가 적절한 하드웨어 컴퓨팅 자원을 식별하기 위한 노력으로 이들의 작업 흐름 및 작업의 소프트웨어별 양태를 측정하기 위한 테스트 실행을 설계할 수 있게 하는, "소프트웨어 조정" 도구를 포함한다. 예를 들어, HW 및 SW 튜너(172)를 통해, HPC 사용자(155)는 원하는 구성을 선택하기 전에, 상이한 구성(예를 들어, 특정 소프트웨어 드라이버의 상이한 구현)의 성능을 테스트 및 비교할 수 있다.In addition, the HW and SW tuner 172 allows HPC users 155 to design test runs to measure their work flow and software-specific aspects of work in an effort to identify appropriate hardware computing resources. Includes a "software adjustment" tool. For example, through the HW and SW tuner 172, the HPC user 155 can test and compare the performance of different configurations (eg, different implementations of a particular software driver) before selecting the desired configuration.

다른 경우에, 더 복잡한 작업 흐름이 중간 결과에 기초하여 개발될 수 있다(예를 들어, 특정 조건이 충족될 때까지 계산을 반복, 또는 다른 조건이 충족되는 경우 분석 소프트웨어를 호출). 또한, 부분적인 결과 또는 중간 결과는, 예를 들어, GPU 전용 구성을 포함하도록, 또는 프로비저닝된 VM의 수를 증가시키거나 감소시키도록, 하드웨어 구성이 변경되어야 함을 나타낼 수 있다.In other cases, more complex workflows can be developed based on intermediate results (e.g., repeating calculations until certain conditions are met, or calling analysis software if other conditions are met). Further, partial or intermediate results may indicate that the hardware configuration should be changed, for example, to include a GPU-only configuration, or to increase or decrease the number of provisioned VMs.

전술한 바와 같이, HW 및 SW 튜너(172)는, HPC 사용자(155)가 특히, 작업 실행 시간 및 작업 비용과 같은 최적화 요소를 지정할 수 있게 하는, 최적화 도구를 더 포함한다. 이러한 도구는, 실행 시간을 탐색하여 "스위트 스폿(sweet spot)"에 가격 책정하는(예를 들어, 노드 비용, 통신 오버헤드, 라이센싱 제한, 및 다양한 다른 요소를 비교 평가하는) 자동화 수단을 제공한다.As mentioned above, the HW and SW tuner 172 further includes an optimization tool, which allows the HPC user 155 to specify optimization factors, such as, in particular, job execution time and job cost. These tools provide an automated means of exploring execution times and pricing "sweet spots" (e.g., comparing node cost, communication overhead, licensing limits, and various other factors). .

분석 관리자(174)는, 작업 또는 더 복잡한 작업 흐름의 실행 동안 및 실행 후에 모두 사용하기 위해, (예를 들어, 플랫폼의 소프트웨어 라이브러리에 포함된) 분석 소프트웨어의 구성을 맞춤화하기 위한 도구를 제공한다. 일 실시형태에서, 그러한 분석 소프트웨어는 대화형 GUI 기반 도구를 HPC 사용자(155)에게 제공함으로써, 이들이 작업 흐름의 중간 결과를 모니터링할 수 있게 할 뿐만 아니라, 특정 파라미터를 변경하여 그러한 결과에 영향을 줄 수도 있게 하며, 그러한 변경의 효과를 실시간으로 시각화할 수 있게 한다.The analysis manager 174 provides tools for customizing the configuration of analysis software (eg, included in the platform's software library) for use both during and after execution of a task or more complex workflow. In one embodiment, such analysis software provides an interactive GUI-based tool to HPC users 155, allowing them to monitor intermediate results of the workflow, as well as changing certain parameters to affect those results. It also makes it possible to visualize the effect of such changes in real time.

HPC 사용자(155)가 작업 또는 작업 흐름을 한정 및 구성하였고, 하드웨어 및 소프트웨어를 조정하였다면, HPC 태스크 관리자(175)를 사용하여, 지정된 컴퓨팅 자원을 선택된 하드웨어 환경에 프로비저닝하고, 선택된 소프트웨어를 설치 및 구성하여, 작업 흐름의 실행을 개시한다. 또한, HPC 태스크 관리자(175)는 작업 흐름의 실행을 모니터링하여, (예를 들어, 프로비저닝된 VM과 같은, 작업 또는 이의 일부가 실패하는 경우) 중간 상태를 획득하며, 작업 흐름이 완료되거나 조기에 종료되는 경우, HPC 사용자(155)에게 알린다.If the HPC user 155 has defined and configured a job or workflow, and has adjusted hardware and software, then using the HPC task manager 175, provisioning the designated computing resources to the selected hardware environment, and installing and configuring the selected software. Thus, execution of the work flow is started. In addition, the HPC Task Manager 175 monitors the execution of the job flow to obtain an intermediate status (for example, when a job or part of it, such as a provisioned VM) fails, and the job flow is completed or prematurely. When it is finished, it notifies the HPC user 155.

전술한 바와 같이, HW 및 SW 측정 관리자(180)는, 다양한 상이한 목적을 위해 작업 흐름의 실행 동안 하드웨어 및 소프트웨어 자원 둘 모두의 사용량을 모니터링한다. 모니터링되는 하드웨어 및 소프트웨어 사용량 데이터는, 요금 산출을 위한(예를 들어, 인보이스를 발행하거나, 리포트를 제공하거나, HPC 사용자(155) 및 파트너(132), 그리고 백엔드 하드웨어 공급자(115) 및 소프트웨어 공급자(125)와 결제를 교환하기 위한) 기준을 제공한다. HW 및 SW 측정 관리자(180)는, 이와 관련하여 비용 청구 관리자(145) 및 비용 청구 계층(140)과 상호 작용한다.As mentioned above, the HW and SW measurement manager 180 monitors the usage of both hardware and software resources during execution of the work flow for a variety of different purposes. Monitored hardware and software usage data can be used for billing purposes (e.g., invoicing, providing reports, HPC users 155 and partners 132, and backend hardware providers 115 and software providers ( 125) and payments). HW and SW measurement manager 180 interacts with billing manager 145 and billing layer 140 in this regard.

또한, HW 및 SW 측정 관리자(180)는 라이센스 관리자(126)와도 함께 작업하여, 소프트웨어 사용량을 모니터링하고, 관련 라이센싱 체계의 준수를 보장한다. 위에 언급된 바와 같이, 하드웨어 및 소프트웨어 공급자와 플랫폼의 통합, 그리고 불연속적 세분성 수준으로 하드웨어 및 소프트웨어 사용량을 모니터링하는 기능은, 새로운 유형의 가격 책정 체계를 가능하게 한다. 하드웨어 및 소프트웨어 사용량(즉, 시간)에 기초하는 소비량 기반 주문형 가격 책정과 더불어, (예를 들어, 하드웨어 자원 소비량에 기초하는) 결과 기반 및 다른 형태의 가격 책정이 다른 실시형태에서 지원될 수 있다.In addition, the HW and SW measurement manager 180 also works with the license manager 126 to monitor software usage and ensure compliance with the related licensing system. As mentioned above, the integration of hardware and software providers and platforms, and the ability to monitor hardware and software usage at a discrete level of granularity, enables a new type of pricing scheme. In addition to consumption-based on-demand pricing based on hardware and software usage (ie, time), outcome-based and other forms of pricing (eg, based on hardware resource consumption) may be supported in other embodiments.

예를 들어, 일 실시형태에서, 가격 책정은, 작업의 "성공"(작업의 완료 동안 또는 완료 후에, 소프트웨어로부터 추출된 결과로부터 결정되는 지정된 목표에 의해 측정됨)에 기초한다. 다른 실시형태에서, 시간 블록의 사전 구매가 지원된다(즉, 실제 모니터링되는 하드웨어 및/또는 사용량이 적용되는, 환불되지 않는 금액으로). 이러한 블록 구매는 "수량 할인(volume discount)" 가격으로 제공되며, 초과 사용 금액은 금지되거나 할증 요금으로 청구된다.For example, in one embodiment, pricing is based on the “success” of the task (measured by a specified goal determined from results extracted from software during or after completion of the task). In other embodiments, pre-purchase of blocks of time is supported (ie, in a non-refundable amount subject to actual monitored hardware and/or usage). These block purchases are offered at a "volume discount" price, and excess usage is prohibited or charged at a premium.

다양한 소비량 기반, 결과 기반 그리고 다른 하드웨어 및 소프트웨어 가격 책정 및 라이센싱 체계는 당업자에게 명백할 것이며, 그 모두는 다수의 하드웨어 및 소프트웨어 공급자와 플랫폼의 통합에 의해 지원될 뿐만 아니라, 개별 태스크, 작업, 및 더 복잡한 HPC 작업 흐름 내에서 그리고 이들에 걸쳐서 모두 긴밀하게 통합된 이의 모니터링 메커니즘에 의해 지원된다. 이러한 다중-공급자 접근 방식은, HPC 작업 흐름의 비용에 대한 개선된 가시성을 HPC 사용자(155)에게 제공할 뿐만 아니라, 초과 용량, 그리고 다른 구성, 가격 책정 및 라이센싱 옵션을 위해 온 프레미스 하드웨어로부터 클라우드로 "버스트"되는, 상이한 하드웨어 및 소프트웨어 환경을 "믹스 앤 매칭"함으로써 비용, 시간 및 다른 원하는 요소를 최적화하기 위한 유연성을 HPC 사용자(155)에게 제공한다.Various consumption-based, outcome-based, and other hardware and software pricing and licensing schemes will be apparent to those skilled in the art, all of which are supported by the integration of multiple hardware and software providers and platforms, as well as individual tasks, tasks, and more. It is supported by its tightly integrated monitoring mechanisms both within and across the complex HPC workflow. This multi-vendor approach not only provides HPC users 155 with improved visibility into the cost of HPC workflows, but also provides excess capacity, and from on-premises hardware to the cloud for other configuration, pricing and licensing options. It provides HPC users 155 with the flexibility to optimize cost, time and other desired factors by “mixing and matching” different hardware and software environments that are “bursted”.

도 2의 흐름도(200)는 (HPC 사용자(155)의 관점에서) HPC 작업 흐름의 설계 및 실행에 대한 동적 보기를 제공한다. 임의의 HPC 사용자(155)가 작업 또는 작업 흐름 설계를 시작하기도 전에, 플랫폼은 단계(201)에서, (하드웨어 추상화 계층(110)을 통해) 백엔드 하드웨어 공급자(115)와의 하드웨어 공급자 설정을 사전에 설정한다. 일 실시형태에서, 플랫폼은, 다중-공급자 서버(101)의 기능을 선택된 백엔드 하드웨어 공급자(115)에 프로비저닝 및 설치하며, 이에 따라 다른 타사 공급자와의 전술한 다양한 추상화 및 통합 계층을 제공한다.Flow diagram 200 of FIG. 2 provides a dynamic view of the design and execution of HPC workflows (from the perspective of the HPC user 155). Before any HPC user 155 even starts designing a job or workflow, the platform pre-establishes the hardware provider settings with the backend hardware provider 115 (via hardware abstraction layer 110) at step 201. do. In one embodiment, the platform provisions and installs the functionality of the multi-provider server 101 to selected backend hardware providers 115, thereby providing the various layers of abstraction and integration described above with other third-party providers.

또한, 단계(202)에서, 플랫폼은, 필요한 소프트웨어 드라이버와 함께, 각각의 지원되는 운영 체제에 대해 이의 소프트웨어 라이브러리의 소프트웨어의 각각의 버전의 이미지를 생성 및 설치한다. 이를 통해, 플랫폼은, 호환성이 이미 확인되었음을 보장하면서, 임의의 선택된 소프트웨어 패키지의 적절한 이미지를 임의의 프로비저닝된 하드웨어 환경에 설치할 수 있다. 플랫폼은 사용자 인터페이스 계층(150)을 통해, 웹(156), CLI(157), 및 API 클라이언트(158) 인터페이스를 추가로 구현하며, 이를 통해 HPC 사용자(155)가 플랫폼에 접속한다.Further, in step 202, the platform creates and installs an image of each version of the software in its software library for each supported operating system, along with the necessary software drivers. This allows the platform to install an appropriate image of any selected software package into any provisioned hardware environment, ensuring that compatibility has already been verified. The platform additionally implements the web 156, CLI 157, and API client 158 interfaces through the user interface layer 150, through which the HPC user 155 accesses the platform.

HPC 사용자(155)가 처음에 플랫폼을 통해 작업 흐름을 준비하여 실행하기를 원하는 경우, 사용자는 전형적으로 먼저 이의 모델을 한정하고, 원하는 소프트웨어를 초기화하기 위해 제공할 입력 데이터를 준비한다(단계(204)에서). 그 다음, HPC 사용자(155)는 단계(206)에서 플랫폼의 작업 흐름 도구를 호출하고, 이의 모델 및 입력 데이터를 플랫폼에 제공한다. 플랫폼의 작업 흐름 도구는 HPC 사용자(155)에게 소프트웨어 라이브러리를 제시하며, 이로부터 HPC 사용자(155)가 단계(208)에서, 하나 이상의 원하는 소프트웨어 패키지를 선택한다. 전술한 바와 같이, 작업 흐름은, 단일 작업의 일부로서든, 또는 더 복잡한 다중-작업 작업 흐름으로서든 관계없이, 다수의 소프트웨어 패키지를 포함할 수 있다.When the HPC user 155 initially wants to prepare and execute a workflow through the platform, the user typically first defines its model and prepares the input data to provide to initialize the desired software (step 204). )in). The HPC user 155 then invokes the platform's workflow tool in step 206 and provides its model and input data to the platform. The platform's workflow tool presents the software library to the HPC user 155 from which the HPC user 155 selects, at step 208, one or more desired software packages. As noted above, a workflow may include multiple software packages, whether as part of a single task, or as a more complex multi-task workflow.

그 다음, 단계(210)에서, 작업 흐름 도구는, 이용 가능한 하드웨어 자원 "코어 유형" 및 백엔드 하드웨어 공급자(115)로부터 이용 가능한 다른 서버 구성의 리스트를 HPC 사용자(155)에게 제시한다. 일 실시형태에서, 플랫폼은, 각각의 백엔드 하드웨어 공급자(115)에 의해 제공되는 특정 코어 유형 및 물리적 서버 구성보다 더 높은 추상화 수준으로 이러한 옵션을 생성 및 제시한다. 다른 실시형태에서, 옵션은 그러한 옵션을 제공하는 특정 백엔드 하드웨어 공급자(115)를 식별할 수 있게 한다(예를 들어, HPC 사용자(155)가 원하는 공급자를 선택하거나 회피할 수 있게 하기 위해).Then, at step 210, the workflow tool presents the HPC user 155 with a list of available hardware resources "core types" and other server configurations available from the backend hardware provider 115. In one embodiment, the platform creates and presents these options with a higher level of abstraction than the specific core types and physical server configurations provided by each backend hardware provider 115. In other embodiments, the option allows to identify a specific backend hardware provider 115 that provides such an option (eg, to enable HPC user 155 to select or circumvent the desired provider).

다른 실시형태에서, 이러한 리스트는 사용자의 이전 소프트웨어 선택에 기초하여 필터링된다(예를 들어, 선택된 소프트웨어가 특정 백엔드 하드웨어 공급자 플랫폼과 호환되지 않거나, 그렇지 않으면 특정 백엔드 하드웨어 공급자 플랫폼에서 이용 가능하지 않는 경우). 다른 실시형태에서, 플랫폼은 사용자의 모델 및 다른 입력 데이터를 분석하고, 그 분석에 기초하여, 제안되는 하드웨어 자원 옵션을 HPC 사용자(155)에게 제공한다.In other embodiments, this list is filtered based on the user's previous software selections (e.g., if the selected software is not compatible with a particular backend hardware provider platform, or otherwise not available on a particular backend hardware provider platform). . In another embodiment, the platform analyzes the user's model and other input data and, based on the analysis, provides the HPC user 155 with suggested hardware resource options.

HPC 사용자(155)가 이용 가능한 하드웨어 자원 옵션 중에서 선택하면, 플랫폼의 작업 흐름 도구는, 작업 흐름 및 각각의 구성 요소 작업을 구성하기 위한 인터페이스를 HPC 사용자(155)에게 제시한다. 전술한 바와 같이, 이러한 구성은, 선택된 소프트웨어 패키지에 기초할 뿐만 아니라, 사용자의 모델 및 다른 입력 데이터에 기초하는 애플리케이션-종속적이다. 여기서도, 플랫폼은 이전에 선택된 하드웨어 및 소프트웨어 옵션들 간의 임의의 종속성을 자동으로 해결하기 때문에, 선택권이 더 높은 수준의 추상화로 제시된다. 일 실시형태에서, 작업 흐름 도구는, 이전에 선택된 하드웨어 컴퓨팅 자원에 기초하여 결정되는 그러한 하드웨어별 옵션을 자동으로 구성한다(원하는 코어 수와 같은 하드웨어별 파라미터의 추가적인 사양은 여전히 필요할 수 있음).When the HPC user 155 selects from the available hardware resource options, the platform's work flow tool presents the work flow and an interface for configuring each component work to the HPC user 155. As mentioned above, this configuration is application-specific, not only based on the selected software package, but also based on the user's model and other input data. Again, since the platform automatically resolves any dependencies between previously selected hardware and software options, the options are presented at a higher level of abstraction. In one embodiment, the workflow tool automatically configures those hardware-specific options that are determined based on previously selected hardware computing resources (additional specifications of hardware-specific parameters such as desired number of cores may still be required).

플랫폼의 작업 흐름 도구의 도움으로, HPC 사용자(155)는 (예를 들어, 다수의 HPC 태스크 및/또는 다수의 작업이 포함되는 경우) 원하는 제어 흐름 구성을 결정하고, 작업 흐름 도구에 의해 제공되는 옵션에 따라 이들을 지정한다. 전술한 바와 같이, 작업 흐름은 다수의 소프트웨어 패키지를 포함할 수 있으며, 제어 흐름은 후속 소프트웨어 패키지가 호출되는 조건을 결정할 뿐만 아니라, 하나의 패키지의 결과가 다른 패키지에 대한 입력으로 제공되는지 여부를 결정한다.With the help of the platform's workflow tool, the HPC user 155 can determine the desired control flow configuration (e.g., when multiple HPC tasks and/or multiple jobs are involved), and are provided by the workflow tool. Specify them according to your options. As mentioned above, a workflow can include multiple software packages, and the control flow not only determines the conditions under which subsequent software packages are invoked, but also determines whether the result of one package is provided as input to another package. do.

임의의 사전 작업 흐름 하드웨어 또는 소프트웨어 조정이 필요한 경우, HPC 사용자(155)는 단계(214)에서 HW 조정 도구, 및/또는 단계(216)에서 SW 조정 도구를 호출한다. 일 실시형태에서, 플랫폼은 하드웨어 및 소프트웨어 조정을 위한 공통 템플릿을 제시한다. 다른 실시형태에서, 최적화 도구가 제공됨으로써, HPC 사용자(155)는 원하는 최적화 요소(예를 들어, 시간, 비용 등)를 지정할 수 있을 뿐만 아니라, 지정된 하드웨어 자원 구성이 허용되거나 거부되는 조건을 지정할 수 있다. 또 다른 실시형태에서, HPC 사용자(155)는 하드웨어 및/또는 소프트웨어 조정 프로세스의 정확한 제어 흐름을 지정하는 맞춤형 스크립트를 제공한다.If any pre-workflow hardware or software adjustments are required, the HPC user 155 invokes the HW adjustment tool in step 214, and/or the SW adjustment tool in step 216. In one embodiment, the platform presents a common template for hardware and software coordination. In another embodiment, by providing an optimization tool, the HPC user 155 can specify the desired optimization factors (e.g., time, cost, etc.), as well as the conditions under which the specified hardware resource configuration is allowed or denied. have. In yet another embodiment, the HPC user 155 provides a custom script that specifies the exact control flow of the hardware and/or software coordination process.

HPC 사용자(155)는 단계(220)에서, 한정된 작업 흐름을 개시한다. 그러나, HPC 사용자(155)가 단계(214 또는 216)에서 임의의 하드웨어 또는 소프트웨어 조정 "테스트 실행"을 지정한 경우, 플랫폼은 아래에 설명되는 바와 같이, 그러한 테스트 실행을 먼저 실행할 것임을 유의한다.The HPC user 155 initiates a defined workflow in step 220. Note, however, that if the HPC user 155 has specified any hardware or software adjustment "run tests" in step 214 or 216, the platform will run those test runs first, as described below.

단계(222)에서, 다중-공급자 서버(101)는, 선택된 하드웨어 컴퓨팅 자원을 단계(210)에서 HPC 사용자(155)에 의해 선택된(또는 이를 위해 생성된) 하나 이상의 백엔드 하드웨어 공급자(115)에 프로비저닝한다. 또한, 다중-공급자 서버(101)는, 모델 및 사용자 입력 데이터를 프로비저닝된 하드웨어 환경에 복제한다.In step 222, the multi-provider server 101 provisions the selected hardware computing resources to one or more backend hardware providers 115 selected (or created for) by the HPC user 155 in step 210. do. In addition, the multi-provider server 101 replicates the model and user input data to the provisioned hardware environment.

단계(224)에서, 다중-공급자 서버(101)는, 선택된 소프트웨어 이미지의 적절한 버전을 프로비저닝된 하드웨어 환경에 설치한 다음, 단계(212)에서 한정된 지정된 구성에 따라 그러한 소프트웨어를 구성한다. 전술한 바와 같이, 소프트웨어의 다수의 인스턴스는, 하드웨어 자원 구성에 따라(예를 들어, 지정된 코어의 수에 기초하여), (예를 들어, 다수의 VM 또는 물리적 서버에, 그리고 잠재적으로 다수의 백엔드 하드웨어 공급자에 걸쳐서) 추가로 복제될 수 있다. 또한, 추가적인 인스턴스가 작업 흐름의 실행 동안 복제 및/또는 제거될 수 있다.In step 224, the multi-provider server 101 installs the appropriate version of the selected software image into the provisioned hardware environment, and then configures such software according to the specified configuration defined in step 212. As noted above, multiple instances of the software can be configured (e.g., based on the number of specified cores), depending on the hardware resource configuration (e.g., on multiple VMs or physical servers, and potentially multiple backends). May be further replicated across hardware providers). Additionally, additional instances may be duplicated and/or removed during execution of the workflow.

단계(226)에서, 다중-공급자 서버(101)는, 프로비저닝된 하드웨어 환경에 설치 및 구성된 소프트웨어와 각각의 관련 라이센스 서버(128) 간의 연결을 (SW 추상화 계층(120)을 통해) 구성한다. 이에 따라, HPC 사용자(155)가 인증되고, 개별 기능이 작업 흐름의 실행 동안 체크아웃 및 체크인되면, 소프트웨어가 적절하게 실행될 수 있다.In step 226, the multi-provider server 101 configures (via the SW abstraction layer 120) a connection between the software installed and configured in the provisioned hardware environment and each associated license server 128. Accordingly, if the HPC user 155 is authenticated, and individual functions are checked out and checked in during execution of the workflow, the software can be properly executed.

일 실시형태에서, 상대적으로 짧은 지속 시간(예를 들어, 1년 대신에 1일)을 갖는 라이센스 키가 반복적으로 생성되어, 추가적인 보안 계층을 제공한다(예를 들어, "위조" 라이센스 서버가 유효한 라이센스 키를 획득함에 따라 계속 작업하는 것을 방지하기 위해). 라이센스 관리자(126)는 (SW 추상화 계층(120)을 통해) 관련 라이센스 서버(128)와의 빈번한(예를 들어, 매일 수행되는) 통신을 관리함으로써, 빈번하게 재생성된 이러한 라이센스 키를 인증하고, 인증된 HPC 사용자(155)에 의한 지속적인 접속을 보장한다.In one embodiment, a license key with a relatively short duration (e.g., 1 day instead of 1 year) is repeatedly generated, providing an additional layer of security (e.g., a "counterfeit" license server is To prevent you from continuing to work as you obtain your license key). The license manager 126 manages frequent (eg, daily) communication with the associated license server 128 (via the SW abstraction layer 120), thereby authenticating and authenticating these license keys that are frequently regenerated. Ensures continuous access by the HPC user 155.

이러한 시점에, 단계(228)에서, 다중-공급자 서버(101)는 임의의 지정된 하드웨어 및/또는 소프트웨어 조정 테스트 실행을 수행한다. 전형적으로 실제 작업 또는 작업 흐름보다 훨씬 더 작고 더 빠르지만, 이러한 테스트 실행으로 인해, 일 실시형태에서, 지정된 컴퓨팅 자원이 자동으로 재구성될 수 있다. 다른 실시형태에서, 플랫폼은 HPC 사용자(155)에 대한 제안 사항을 생성하거나, 단순히 결과를 제공함으로써, 이로부터 HPC 사용자(155)가 임의의 그러한 재구성에 관하여 스스로 결정한다.At this point, in step 228, the multi-provider server 101 performs any designated hardware and/or software tuning test execution. Although typically much smaller and faster than the actual work or workflow, these test executions allow, in one embodiment, designated computing resources to be automatically reconfigured. In another embodiment, the platform generates a suggestion for the HPC user 155, or simply by providing a result, from which the HPC user 155 makes its own decisions regarding any such reconfiguration.

따라서, 단계(235)에서, HPC 사용자(155)(또는 전술한 다른 실시형태에서, 플랫폼)는, 단계(208 및 210)에서 이전에 이루어진 하드웨어 및/또는 소프트웨어 선택을 "재조정"할지 여부를 결정한다. 재조정이 필요하거나 원하는 경우, 제어는 단계(208)로 복귀한다(이 시점에, HPC 사용자(155)가 하드웨어 및/또는 소프트웨어 조정 도구를 재호출하는지 여부에 따라, 추가적인 하드웨어 및/또는 소프트웨어 조정이 수행될 수 있거나 수행되지 않을 수 있다). 전술한 바와 같이, 일 실시형태(도시되지 않음)에서, 플랫폼은 컴퓨팅 자원을 자동으로 재구성하고, (재프로비저닝이 필요할 수 있음에 따라) 단계(220)에서 작업 흐름 실행을 다시 개시한다.Thus, in step 235, the HPC user 155 (or in other embodiments described above, the platform) determines whether to "re-adjust" the hardware and/or software selections previously made in steps 208 and 210. do. If re-adjustment is required or desired, control returns to step 208 (at this point, additional hardware and/or software adjustments are required, depending on whether the HPC user 155 recalls the hardware and/or software adjustment tool. May or may not be performed). As described above, in one embodiment (not shown), the platform automatically reconfigures computing resources and resumes execution of the workflow at step 220 (as reprovisioning may be required).

그렇지 않으면, 단계(235)에서 재조정이 지시되지 않는 경우, 다중-공급자 서버(101)는 단계(240)에서 "전체" 작업 흐름의 실행을 개시한다. 전술한 바와 같이, 플랫폼은 단계(242)에서, (사용량 및 비용 청구 목적을 위한) 하드웨어 및 소프트웨어 측정을 포함하는, 작업 흐름의 실행을 모니터링할 뿐만 아니라, 작업 흐름에 지정된 제어 흐름의 구현을 모니터링한다.Otherwise, if no remediation is indicated in step 235, the multi-provider server 101 initiates execution of the "full" workflow in step 240. As mentioned above, the platform, in step 242, monitors the execution of the workflow, including hardware and software measurements (for usage and billing purposes), as well as the implementation of the control flow specified in the workflow. do.

(특정 인스턴스의 조기 종료를 포함하여) 작업 흐름 실행의 종료 시에, 플랫폼은 단계(244)에서 "정리(cleanup)" 프로세스를 구현한다. 단계(250)에서, (사용자 인터페이스 계층(150)을 통해) 결과가 추출, 저장되고 HPC 사용자(155)에게 제공된다. 또한, 플랫폼은 전술한 바와 같이, 하드웨어 자원을 프로비저닝 해제하고, 비용 청구 및 다른 목적을 위해, 측정된 하드웨어 및 소프트웨어 사용량 정보를 추출하여 플랫폼에 저장한다. 또한 전술한 바와 같이, 결과에 대한 분석이 수행될 수 있지만(일 실시형태에서, 작업 흐름의 실행 동안을 포함함), 이러한 분석 소프트웨어의 실행은 작업 흐름 자체의 일부로 간주된다(이러한 소프트웨어가 플랫폼의 소프트웨어 라이브러리의 일부이기 때문임).At the end of the workflow execution (including early termination of a particular instance), the platform implements a "cleanup" process in step 244. In step 250, the results (via user interface layer 150) are extracted, stored and provided to the HPC user 155. In addition, as described above, the platform de-provisions hardware resources, and for billing and other purposes, the measured hardware and software usage information is extracted and stored in the platform. Also, as described above, an analysis of the results can be performed (including during execution of the workflow in one embodiment), but the execution of such analysis software is considered part of the workflow itself (such software is Because it is part of the software library).

본 발명은 첨부된 도면에 도시된 바와 같은 구체적인 실시형태를 참조하여 본원에 설명되었다. 본 발명의 기능적 구성 요소 및 동적 작업의 실시형태의 많은 변형은 본 발명의 사상을 벗어나지 않으면서 당업자에게 명백할 것이다.The invention has been described herein with reference to specific embodiments as shown in the accompanying drawings. Many variations of the embodiments of the functional components and dynamic operation of the present invention will be apparent to those skilled in the art without departing from the spirit of the present invention.

Claims (1)

통합형 클라우드 기반 플랫폼으로서,
(a) 상기 플랫폼의 사용자가 복수의 백엔드 하드웨어 공급자에 걸친 복수의 하드웨어 코어 유형 중에서 선택함으로써 작업을 구성할 수 있게 하는 백엔드 하드웨어 공급자 추상화 계층;
(b) 상기 사용자가 복수의 소프트웨어 공급자에 걸친 복수의 소프트웨어 패키지 중에서 선택함으로써 상기 작업을 추가로 구성할 수 있게 하는 소프트웨어 추상화 계층;
(c) 상기 사용자에 의해 선택된 소프트웨어와 관련된 라이센스 서버와 상기 사용자의 작업 간의 네트워크 연결을 구현하는 라이센스 서버 추상화 계층;
(d) 관련된 백엔드 하드웨어 공급자로부터의 선택된 하드웨어 코어 유형과 관련된 하드웨어 자원을 프로비저닝하고, 상기 선택된 소프트웨어를 프로비저닝된 하드웨어에 설치 및 구성하며, 상기 사용자의 작업의 실행을 호출하는 관리자;
(e) 상기 작업의 실행 동안, 상기 프로비저닝된 하드웨어의 사용량을 모니터링하는 하드웨어 측정 모듈;
(f) 상기 작업의 실행 동안, 상기 선택된 소프트웨어의 사용량을 모니터링하는 소프트웨어 측정 모듈; 및
(g) 상기 사용자가 상기 작업의 결과에 접속할 수 있게 하는 사용자 인터페이스 계층
을 포함하는, 통합형 클라우드 기반 플랫폼.
As an integrated cloud-based platform,
(a) a backend hardware provider abstraction layer that allows a user of the platform to organize tasks by selecting from a plurality of hardware core types across a plurality of backend hardware providers;
(b) a software abstraction layer that allows the user to further compose the task by selecting from a plurality of software packages across a plurality of software providers;
(c) a license server abstraction layer that implements a network connection between a license server related to the software selected by the user and the user's work;
(d) an administrator who provisions hardware resources related to a selected hardware core type from an associated backend hardware provider, installs and configures the selected software on the provisioned hardware, and invokes execution of the user's task;
(e) a hardware measurement module that monitors usage of the provisioned hardware during execution of the task;
(f) a software measurement module for monitoring usage of the selected software during execution of the task; And
(g) a user interface layer that allows the user to access the results of the task.
Including, an integrated cloud-based platform.
KR1020217001162A 2018-06-14 2019-06-10 Integrated multi-vendor computing platform KR20210008924A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/008,465 US10387198B2 (en) 2016-08-11 2018-06-14 Integrated multi-provider compute platform
US16/008,465 2018-06-14
PCT/US2019/036426 WO2019241171A1 (en) 2018-06-14 2019-06-10 Integrated multi-provider compute platform

Publications (1)

Publication Number Publication Date
KR20210008924A true KR20210008924A (en) 2021-01-25

Family

ID=68842298

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217001162A KR20210008924A (en) 2018-06-14 2019-06-10 Integrated multi-vendor computing platform

Country Status (4)

Country Link
EP (1) EP3803584A4 (en)
JP (1) JP2021527265A (en)
KR (1) KR20210008924A (en)
WO (1) WO2019241171A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210108791A (en) * 2020-02-26 2021-09-03 삼성전자주식회사 Method and apparatus for implementing virtualized network function
KR20220040816A (en) * 2020-09-24 2022-03-31 삼성전자주식회사 Method and apparatus for off-loading hardware of software package
EP4187879A4 (en) * 2020-09-24 2023-11-22 Samsung Electronics Co., Ltd. Method and device for offloading hardware to software package

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7941801B2 (en) * 2006-03-07 2011-05-10 Oracle America Inc. Method and system for provisioning a virtual computer and scheduling resources of the provisioned virtual computer
US20090089078A1 (en) * 2007-09-28 2009-04-02 Great-Circle Technologies, Inc. Bundling of automated work flow
US9971880B2 (en) * 2009-11-30 2018-05-15 Red Hat, Inc. Verifying software license compliance in cloud computing environments
US9274848B2 (en) * 2009-12-03 2016-03-01 International Business Machines Corporation Optimizing cloud service delivery within a cloud computing environment
JP5556393B2 (en) * 2010-06-04 2014-07-23 富士通株式会社 Network system, management server, and virtual machine placement method
JP6085957B2 (en) * 2012-03-14 2017-03-01 株式会社リコー Information processing apparatus, program, information processing system, and information sharing method
US9940162B2 (en) * 2012-09-28 2018-04-10 Cycle Computing, Llc Realtime optimization of compute infrastructure in a virtualized environment
US20160034995A1 (en) * 2013-11-19 2016-02-04 Service Labs, Inc. Method and system for automated indentification and engagement of service providers
US9825881B2 (en) * 2014-09-30 2017-11-21 Sony Interactive Entertainment America Llc Methods and systems for portably deploying applications on one or more cloud systems
JP6668658B2 (en) * 2015-09-29 2020-03-18 日本電気株式会社 Job management method, job management device, and program
US10193762B2 (en) * 2016-08-11 2019-01-29 Rescale, Inc. Dynamic optimization of simulation resources
US10387198B2 (en) * 2016-08-11 2019-08-20 Rescale, Inc. Integrated multi-provider compute platform

Also Published As

Publication number Publication date
WO2019241171A1 (en) 2019-12-19
EP3803584A4 (en) 2022-03-09
EP3803584A1 (en) 2021-04-14
JP2021527265A (en) 2021-10-11

Similar Documents

Publication Publication Date Title
US11561829B2 (en) Integrated multi-provider compute platform
US10678526B2 (en) Method and system for managing the end to end lifecycle of a virtualization environment
US11321130B2 (en) Container orchestration in decentralized network computing environments
CA2990252C (en) Systems and methods for blueprint-based cloud management
US10244002B2 (en) Secure application zones for cloud burst environments
US10673900B2 (en) Application-based security rights in cloud environments
US20170208133A1 (en) System and method for providing virtual desktop extensions on a client desktop
CN106537338B (en) Self-expanding clouds
US8898763B1 (en) Automated infrastructure operations
KR20210008924A (en) Integrated multi-vendor computing platform
WO2018229624A1 (en) Application deployment
JP2022097438A (en) Dynamic cloud deployment of robotic process automation (rpa) robot
US9772833B2 (en) Application instance staging
US20230185608A1 (en) Compute recommendation engine
Xiong Cloud Computing for Scientific Research
Pot’vin et al. Cloud Lifecycle Management: by Bobby Curtis and Anand Akela
Patrick et al. Survey: Delivering Cloud Services based SLAs on Open Source Cloud
Ehrhardt Cloud build methodology
Attardi et al. Declarative Modeling for Deploying a Cloud Container Platform
Collell Martin Extending Cloud Management Tools at the IaaS and PaaS Layers for Cloud Interoperabitliy
Hegering et al. Architecture for the Automated Management of Data Center IT Infrastructure

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal