KR20200103181A - 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법 - Google Patents

클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법 Download PDF

Info

Publication number
KR20200103181A
KR20200103181A KR1020190016906A KR20190016906A KR20200103181A KR 20200103181 A KR20200103181 A KR 20200103181A KR 1020190016906 A KR1020190016906 A KR 1020190016906A KR 20190016906 A KR20190016906 A KR 20190016906A KR 20200103181 A KR20200103181 A KR 20200103181A
Authority
KR
South Korea
Prior art keywords
simulation
resource
environment
resource configuration
history
Prior art date
Application number
KR1020190016906A
Other languages
English (en)
Other versions
KR102456023B1 (ko
Inventor
손석호
강동재
김병섭
배승조
오병택
이규철
정영우
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020190016906A priority Critical patent/KR102456023B1/ko
Priority to US16/789,234 priority patent/US11650855B2/en
Publication of KR20200103181A publication Critical patent/KR20200103181A/ko
Application granted granted Critical
Publication of KR102456023B1 publication Critical patent/KR102456023B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • 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
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명에 따른 클라우드 컴퓨팅 기반의 시뮬레이션 장치의 동작 방법은, 사용자가 요청한 시뮬레이션 모델과 설정 사항을 고려하여 시뮬레이션을 프로파일링 하는 단계, 상기 프로파일링된 시뮬레이션 결과에 대응하는 히스토리가 존재할 때, 상기 히스토리를 이용하여 상기 시뮬레이션에 대한 자원 구성 확률 분포를 계산하는 단계, 상기 자원 구성 확률 분포에 따라 N(2 이상의 정수)개의 시뮬레이션 환경의 자원 구성을 선택함으로써 상기 시뮬레이션 환경을 다중화하는 단계, 및 상기 다중화된 시뮬레이션 환경에서 상기 시뮬레이션을 동시에 실행하는 단계를 포함할 수 있다.

Description

클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법{APPARATUS AND METHOD FOR CLOUD COMPUTION BASED SIMULATION}
본 발명은 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법에 관한 것이다.
일반적으로, 시뮬레이션은 단일 컴퓨터 또는 다수의 컴퓨터로 구성된 클러스터에서 동작한다. 클라우드 컴퓨팅은 물리적인 컴퓨팅 자원들을 가상화하여 논리적으로 구성할 수 있으며, 사용자에게 가상 노드(가상의 컴퓨팅 자원, 가상 머신, 가상 서버, 컨테이너 등)를 제공할 수 있다. 따라서, 클라우드 컴퓨팅 기반의 시뮬레이션에서는 시뮬레이션이 클라우드의 가상 노드 (가상의 컴퓨팅 자원, 가상 머신, 가상 서버, 컨테이너 등) 또는 가상 노드들로 구성된 가상 클러스터에서 동작할 수 있다. 시뮬레이션을 클라우드 컴퓨팅의 가상 노드를 통해서 수행하면, 시뮬레이션의 실행환경을 민첩하게 구성할 수 있고, 시뮬레이션의 컴퓨팅 요구사항이 높을 때는 온디멘드로 클라우드의 자원을 추가 활용할 수 있다.
종래의 클라우드를 활용한 시뮬레이션 실행 방식에서는 사용자가 임의로 시뮬레이션의 컴퓨팅 자원의 구성을 선택하고 시뮬레이션을 수행하였다. 시뮬레이션은 수행하는데 상당히 시간이 오래 걸리는 작업이다. 만약 지정한 자원의 구성이 적합하지 않은 경우 시뮬레이션의 수행 속도는 현저히 낮아질 수 있다. 또한, 시뮬레이션이 요구하는 자원의 성능, 용량, 종류 등을 잘못 구성한 경우, 장시간 수행한 시뮬레이션 완료 전에 오류를 일으킬 수도 있다. 이때 시뮬레이션 사용자는 컴퓨팅 자원에 대한 비용뿐만 아니라 시간도 낭비하게 된다.
미국공개특허: US 2018-0060456, 공개일: 2018년 3월 1일, SIMULAION INCLUDING MULTPLE SIMULATORS 미국공개특허: US 2018-0046561, 공개일: 2018년 2월 15일, SYSTEM, CONTROLLER, METHOD, AND PROGRAM FOR EXECUTING SIMULATION JOBS
본 발명의 목적은 다양한 시뮬레이션에 적합한 최적의 클라우드의 컴퓨팅 자원을 동적으로 구성하여, 시뮬레이션의 속도를 향상시키고 컴퓨팅 자원 부족 및 구성 문제로 인한 시뮬레이션 실패를 방지하는 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법을 공하는데 있다.
본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반의 시뮬레이션 장치의 동작 방법은, 사용자가 요청한 시뮬레이션 모델과 설정 사항을 고려하여 시뮬레이션을 프로파일링 하는 단계, 상기 프로파일링된 시뮬레이션 결과에 대응하는 히스토리가 존재할 때, 상기 히스토리를 이용하여 상기 시뮬레이션에 대한 자원 구성 확률 분포를 계산하는 단계, 상기 자원 구성 확률 분포에 따라 N(2 이상의 정수)개의 시뮬레이션 환경의 자원 구성을 선택함으로써 상기 시뮬레이션 환경을 다중화하는 단계, 및 상기 다중화된 시뮬레이션 환경에서 상기 시뮬레이션을 동시에 실행하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 자원 구성 확률 분포를 계산하는 단계는, 상기 히스토리가 존재할 때, 상기 히스토리의 복수의 구간에 대한 이동 평균을 계산하는 단계; 상기 복수의 구간에 대한 이동 분산을 계산하는 단계; 및 상기 이동 평균과 상기 이동 분산에 따른 확률 정규 분포를 계산함으로써 자원 구성 확률 표를 생성하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 프로파일링된 시뮬레이션 결과에 대응하는 히스토리가 존재하지 않을 때, 상기 사용자의 설정을 중심으로 유니폼하게 상기 자원 구성 확률 분포를 계산하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 N은 시스템 지정 값, 상기 사용자가 지정한 값, 상기 사용자의 가상 자원 사용 예산에 부합하는 값 중에서 어느 하나로 설정되는 것을 특징으로 한다.
실시 예에 있어서, 상기 시뮬레이션을 동시에 실행하는 단계는, 개별 시뮬레이션 환경에서 자원 구성을 확인 및 가상 노드들을 할당하는 단계; 상기 할당된 가상 노드들을 시뮬레이션 클러스터로 구성하는 단계; 및 상기 구성된 시뮬레이션 클러스터에서 상기 시뮬레이션을 실행하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 다중화된 시뮬레이션 환경에서 실행되는 상기 시뮬레이션의 수행 상태를 모니터링 하는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 모니터링 결과로써, 상기 다중 시뮬레이션 환경 중에서 어느 하나에서 상기 시뮬레이션이 완료될 때, 상기 시뮬레이션의 완료 시간을 저장하고, 상기 시뮬레이션 수행 결과 및 상시 시뮬레이션 실행 환경의 자원 구성 및 설정 정보를 상기 히스토리에 업데이트 하는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 모니터링 결과로써, 상기 다중 시뮬레이션 환경 중에서 어느 하나에서 상기 시뮬레이션이 완료될 때, 나머지 시뮬레이션 환경에서의 상기 시뮬레이션의 실행을 종료시키는 단계를 더 포함할 수 있다.
실시 예에 있어서, 상기 모니터링 결과로써 상기 다중 시뮬레이션 환경에서 모두 시뮬레이션이 실패한 경우, 상기 사용자에게 상기 시뮬레이션의 실패를 전달하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 적어도 하나의 프로세서, 및 상기 적어도 하나의 프로세서에 의해 실행되는 적어도 하나의 인스트럭션을 저장하는 메모리를 갖는 클라우드 컴퓨팅 기반의 시뮬레이션 장치는: 상기 적어도 하나의 인스트럭션은, 사용자 요청한 시뮬레이션 모델과 설정 사항을 고려하여 시뮬레이션을 프로파일링 하고; 상기 프로파일링된 시뮬레이션 결과에 대응하는 히스토리가 존재할 때, 상기 히스토리를 이용하여 상기 시뮬레이션에 대한 자원 구성 확률 분포를 계산하고; 상기 자원 구성 확률 분포에 따라 N(2 이상의 정수)개의 시뮬레이션 환경의 자원 구성을 선택함으로써 상기 시뮬레이션 환경을 다중화하고; 및 상기 다중화된 시뮬레이션 환경에서 상기 시뮬레이션을 동시에 실행하는 것을 특징으로 한다.
실시 예에 있어서, 상기 다중화된 시뮬레이션 환경은 서로 다른 개수의 가상 노드에 의해 구성되는 것을 특징으로 한다.
실시 예에 있어서, 상기 다중화된 시뮬레이션 환경 중에서 어느 하나에서 상기 시뮬레이션이 완료될 때, 나머지 시뮬레이션 환경에서의 시뮬레이션을 종료시키고, 사용한 클라우드 자원을 반환시키는 것을 특징으로 한다.
실시 예에 있어서, 상기 다중화된 시뮬레이션 환경에서 시뮬레이션의 수행 상태를 푸쉬 방식 혹은 폴링 방식으로 모니터링 하는 것을 특징으로 한다.
실시 예에 있어서, 시뮬레이션 상태의 모니터링을 통해서 다중 시뮬레이션의 결과를 취합하여 저장하는 것을 특징으로 한다.
본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반 시뮬레이션 장치 및 그것의 동작 방법은 시뮬레이션 사용자들이 다양한 시뮬레이션에 적합한 최적의 클라우드의 컴퓨팅 자원을 동적으로 구성하고, 시뮬레이션을 수행하기 위한 가상 자원의 구성을 다중화 (시뮬레이션 실행환경의 다중화)하여 동시에 폭증(bursting) 실행할 수 있다.
본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반 시뮬레이션 장치 및 그것의 동작 방법은 다양한 구성의 시뮬레이션이 동시에 동작하기 때문에, 사용자는 시뮬레이션 실행 환경들 중 가장 빨리 성공적으로 완료된 시뮬레이션의 결과만 확인할 수 있다. 결과적으로는 사용자에게 최적의 시뮬레이션 환경을 제공하게 된다.
본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반 시뮬레이션 장치 및 그것의 동작 방법은 다양한 시뮬레이션에 적합한 최적의 클라우드 컴퓨팅 자원을 동적으로 구성되면, 시뮬레이션의 속도 저하와 시뮬레이션 실패를 감소시킬 수 있다.
본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반 시뮬레이션 장치 및 그것의 동작 방법은 많은 수의 가상 자원(가상 노드)의 사용량을 비용에 따라 제한적으로 사용할 수 있다.
본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반 시뮬레이션 장치 및 그것의 동작 방법은 다양한 이종 시뮬레이션들을 사용자들이 반복해서 구성 및 실행할 때, 다양한 이종 시뮬레이션들을 프로파일링하고 과거에 성공적이었던 시뮬레이션 환경의 구성들의 히스토리 정보를 활용하여 통계와 확률을 통한 효율적인 최적 자원 구성의 선택할 수 있다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 일반적인 클라우드를 활용한 시뮬레이션 환경 구성 및 실행 방법을 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반의 시뮬레이션 장치(100)를 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반 시뮬레이션 블록 다이어그램을 보여주는 도면이다.
도 4 및 도 5는 시뮬레이션 환경 구성 다중화 및 자원 구성 최적화 프로세스를 예시적으로 보여주는 도면이다.
도 6은 시뮬레이션에 대한 히스토리가 있는 경우 확률 분포를 예시적으로 보여주는 도면이다.
도 7은 시뮬레이션에 대한 히스토리가 없는 경우 확률 분포를 예시적으로 보여주는 도면이다.
도 8은 자원 구성 설정 요소가 1개만 설정된 경우 선택 가능 자원 구성 리스트를 예시적으로 보여주는 도면이다.
도 9는 자원 구성 설정 요소가 2개 설정된 경우 선택 가능 자원 구성 리스트를 예시적으로 보여주는 도면이다.
도 10은 가장 빨리 완료된 시뮬레이션 환경의 자원 구성의 히스토리 및 이동 평균 계산 구간을 예시적으로 보여주는 도면이다.
도 11은
Figure pat00001
확률 분포를 따르는 최적 시뮬레이션 자원 구성 확률의 확률 분포의 그래프를 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
일반적인 클라우드를 활용한 시뮬레이션은 시뮬레이션에 필요한 컴퓨팅 자원 구성(성능, 개수, 자원의 종류, 각종 설정 등)을 시뮬레이션 사용자가 임의로 지정한다.
도 1은 일반적인 클라우드를 활용한 시뮬레이션 환경 구성 및 실행 방법을 보여주는 도면이다. 도 1을 참조하면, 사용자는 시뮬레이션에 필요한 자원의 종류 및 규모를 임의로 산정하고, 클라우드 컴퓨팅 장치에 생성 요청한다. 클라우드 컴퓨팅 장치가 가상 노드 컴퓨팅 자원을 사용자에게 제공하면, 사용자는 시뮬레이션 환경 구성 및 설정하고, 시뮬레이션을 실행하여 최종적으로 시뮬레이션의 결과를 받는다.
하지만, 시뮬레이션 사용자들은 컴퓨팅 자원을 구성하고 사용 방법에 대해서 비전문적이기 때문에 컴퓨팅 자원을 다양한 시뮬레이션에 적합하게 구성 및 설정하는 것에 어려움을 갖는다. 적합하게 컴퓨팅 자원이 구성되지 않은 경우에는 시뮬레이션의 속도 저하 또는 자원 부족으로 시뮬레이션 실패가 야기될 수 있다.
따라서, 시뮬레이션 사용자들이 다양한 시뮬레이션에 적합한 최적의 클라우드의 컴퓨팅 자원을 동적으로 구성하도록 지원할 필요가 있다. 다양한 시뮬레이션에 적합한 최적의 클라우드의 컴퓨팅 자원을 동적으로 구성되면, 시뮬레이션의 속도 저하 또는 시뮬레이션 실패를 감소시킬 수 있다.
본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 그것의 동작 방법은, 다양한 시뮬레이션에 적합한 최적의 클라우드의 컴퓨팅 자원을 동적으로 구성하고, 시뮬레이션의 속도를 향상시키고 컴퓨팅 자원 부족 및 구성 문제로 인한 시뮬레이션 실패를 방지할 수 있다.
도 2는 본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반의 시뮬레이션 장치(100)를 예시적으로 보여주는 도면이다.
사용자는 적합한 클라우드 자원의 구성방법을 모르기 때문에, 사용자가 임의로 설정한 자원의 구성(예를 들면, 가상 클러스터를 구성하는 가상 노드의 개수, 가상 노드의 메모리 크기 등)을 기반으로 시뮬레이션을 수행하면, 시뮬레이션의 속도가 낮을 수 있다. 또한, 자원 량이 부족하면 시뮬레이션이 정상 동작하지 않을 수 있다. 예를 들어, 가상자원의 메모리 량이 부족하여 시뮬레이션이 동작 중에 중단되는 문제 등이 발생 가능하다.
실시 예에 있어서, 시뮬레이션 장치(100)는 사용자가 요청한 1회의 시뮬레이션에 대해서도 시뮬레이션을 자원 구성 및 설정에 따라 N개의 시뮬레이션 환경으로 다중화하고, 다중화된 시뮬레이션을 동시에 실행할 수 있다.
실시 예에 있어서, N개의 시뮬레이션 환경에서 동작시킨 N회의 시뮬레이션 중 가장 빠른 속도(시뮬레이션 완료시간이 가장 빠른)를 제공한 시뮬레이션 환경에서의 시뮬레이션 결과는 사용자에게 반환될 수 있다.
실시 예에 있어서, 시뮬레이션 결과의 반환과 동시에 시작한 다른 구성의 시뮬레이션 환경은 자원의 사용 효율성 및 비용 절감을 위해서 빠르게 종료 및 반환시킬 수 있다.
실시 예에 있어서, 중도에 시뮬레이션 실패나 오류가 발생한 시뮬레이션 환경은 빠르게 종료 및 자원을 반환할 수 있다.
실시 예에 있어서, N회의 시뮬레이션 중 가장 빠른 속도(시뮬레이션 완료시간이 가장 빠른)를 제공한 시뮬레이션 환경의 가상 자원 구성 및 설정을 최적의 선정이라고 볼 수 있다.
상술된 바와 같이 1개의 시뮬레이션 환경을 N개의 시뮬레이션 환경으로 다중화 및 동시 실행하는 것은 시뮬레이션 속도 향상 및 시뮬레이션 실패 방지에는 매우 효과적이다. 다만, 이와 같은 방법은 가상자원의 사용량을 증가시키기 때문에 비용과 속도에 대한 트레이드오프가 발생한다. 시뮬레이션 장치(100)는 시뮬레이션 속도를 향상시키면서도 비용을 제한적으로 사용할 수 있다.
한편, 시뮬레이션은 시뮬레이션 모델에 따라 다양한 이종의 시뮬레이션으로 개발될 수 있다. 이종의 시뮬레이션은 각각 다른 패턴의 워크로드를 보이기 때문에 소모하는 자원의 규모와 종류가 다르다. 또한 동일한 모델을 활용한 시뮬레이션도 시뮬레이션 내에서 사용되는 다양한 파라미터에 따라 각각 다른 패턴의 워크로드를 보이기 때문에 소모하는 자원의 규모와 종류가 다르다.
본 발명의 실시 예에 따른 시뮬레이션 장치(100)는 다양한 이종 시뮬레이션들을 사용자들이 반복해서 구성 및 실행할 때, 다양한 이종 시뮬레이션들을 프로파일링하고 과거에 성공적이었던 시뮬레이션 환경의 구성들을 통계와 확률을 통해서 신규 시뮬레이션 환경 구성 및 실행에 반영할 수 있다.
실시 예에 있어서, 시뮬레이션 장치(100)는 1개의 시뮬레이션 환경을 N개의 시뮬레이션 환경으로 다중화 및 동시 실행하고, 가장 적합한 자원 구성의 시뮬레이션 환경이 정상 종료되었을 때, 대응하는 정보를 히스토리에 저장할 수 있다.
실시 예에 있어서, 시뮬레이션 장치(100)는 대응하는 시뮬레이션 환경의 가상 자원 구성 정보 및 설정을 프로파일링하고, 히스토리 정보를 통해 통계화 확률을 통해서 최적 자원 구성에 대한 확률 분포를 생성할 수 있다.
이후, 사용자가 시뮬레이션 환경 구성 및 실행을 반복할 때, 프로파일링된 시뮬레이션의 결과 히스토리가 있으면, 시뮬레이션 장치(100)는 대응하는 시뮬레이션의 최적 자원 구성에 대한 확률 분포를 활용하여, 시뮬레이션 환경 다중화를 동시 실행할 수 있다.
실시 예에 있어서, 시뮬레이션 장치(100)는 최적 자원 구성에 대한 확률 분포를 활용함으로써, 최적 자원의 구성일 확률(시뮬레이션이 성공적으로 빨리 수행될 확률)이 높은 구간의 구성들을 사용하여 시뮬레이션 환경을 다중화 시킬 수 있다. 이 때문에 시뮬레이션 장치(100)는 시뮬레이션 속도를 확률적으로 향상시킬 수 있으며, 다중화되는 시뮬레이션 환경의 개수를 제한적으로 설정하여 시뮬레이션 성능을 향상시키고 비용 증가를 최소화할 수 있다.
또한, 클라우드 컴퓨팅 기반의 시뮬레이션 장치(100)는 적어도 하나의 프로세서, 및 상기 적어도 하나의 프로세서에 의해 실행되는 적어도 하나의 인스트럭션(instruction)을 저장하는 메모리를 포함할 수 있다. 적어도 하나의 인스트럭션은 아래의 클라우드 컴퓨팅 기반 시뮬레이션 블록 다이어그램을 구성할 수 있다.
도 3은 본 발명의 실시 예에 따른 클라우드 컴퓨팅 기반 시뮬레이션 블록 다이어그램을 보여주는 도면이다.
사용자 인터페이스는 사용자가 시뮬레이션 장치(100)를 통해서 시뮬레이션을 구성, 실행, 결과 확인 등을 하도록 기능을 수행할 수 있다.
시뮬레이션 환경 구성 모듈은 사용자가 요청한 시뮬레이션 구성 및 설정 대로 시뮬레이션이 수행될 수 있도록 시뮬레이션의 설정을 수행할 수 있다.
시뮬레이션 프로파일러는 다양한 시뮬레이션 모델과 각 시뮬레이션의 설정에 따라 같거나 유사한 시뮬레이션을 분류할 수 있다. 시뮬레이션 프로파일에 따라 최적의 가상 자원 구성 및 설정이 지정될 수 있다.
자원 구성 요소 설정 인터페이스는 관리자가 시뮬레이션에 주요한 자원 구성 요소를 추가적으로 플러그인 할 수 있는 인터페이스 및 기능이다. 여기서 자원 구성 요소는 시뮬레이션 클러스터를 구성하는 가상 노드의 개수, 자원의 성능(CPU, 메모리, 네트워크 대역폭), 가상 노드의 특정 기능 지원 여부 등을 포함할 수 있다. 관리자는 자원 구성 요소를 추가할 때, 실제로 자원의 구성 및 설정을 대응하는 자원 구성 요소에 따라 변경 가능하도록 실행 방법도 포함시킬 수 있다. 예를 들어, 가상 자원 구성 요소로 GPU 지원 여부를 추가하고 싶다면, 가상 자원 생성을 클라우드 자원 풀에 요청 시, 관리자는 GPU를 지원하는 자원을 지정할 수 있는 기능을 포함시킬 수 있다.
자원 사용 비용 관리 모듈은 시뮬레이션을 다중화할 때 사용되는 가상자원에 소비되는 비용을 관리할 수 있다.
최적 자원 구성 모듈은 1개의 시뮬레이션 환경을 N개의 시뮬레이션 환경으로 다중화 및 동시 실행하고 가장 적합한 자원 구성의 시뮬레이션 환경에서 시뮬레이션이 정상 종료(완료)될 때, 대응하는 정보를 히스토리에 저장할 수 있다.
실시 예에 있어서, 시뮬레이션 장치(100)는 기존에 수행된 시뮬레이션의 히스토리 정보를 활용하여 대응하는 시뮬레이션 환경의 가상 자원 구성 정보 및 설정을 프로파일링하고, 히스토리 정보를 통해 통계화 확률을 통해서 최적 자원 구성에 대한 확률 분포를 생성할 수 있다.
시뮬레이션 다중화 모듈은 1개의 시뮬레이션 환경을 다양한 자원 구성을 가진 N개의 시뮬레이션 환경으로 생성하고, N개의 시뮬레이션이 동시에 실행될 수 있도록 계획할 수 있다.
클라우드 자원 할당 모듈은 클라우드의 가상 자원의 구성에 대한 성능을 올바르게 평가하도록 기존의 자원 노드에서 동작 중인 가상 자원들을 마이그레이션을 통해 이동시키거나 종료시킬 수 있다.
클라우드 자원 할당 모듈은 시뮬레이션 다중화 모듈에 따라 지정된 자원 구성 및 설정을 사용하여, 클라우드의 자원 노드에 시뮬레이션을 위한 가상 노드를 할당할 수 있다. 클라우드의 자원 노드는 시스템의 외부에 있는 클라우드의 자원도 필요에 따라 요청하여 사용할 수 있다.
시뮬레이션 엔진 배치 및 실행 모듈은 생성된 클라우드의 가상 자원 및 가상 자원으로 구성된 클러스터에 시뮬레이션 엔진 및 시뮬레이션 환경을 자동 구축하고 사용자가 요청한 시뮬레이션 설정에 따라 시뮬레이션을 실행할 수 있다.
실시 예에 있어서, 시뮬레이션 장치(100)는 시뮬레이션 다중화 모듈의 정책에 따라 자원에 관련된 설정을 적용하여 시뮬레이션을 실행할 수 있다.
시뮬레이션 상태 모니터링은 시뮬레이션의 시작, 성공, 오류, 실패 등의 상태 이벤트를 모니터링 할 수 있다. 여기서 모니터링은 폴링 방식 또는 푸시 방식으로 구현될 수 있다.
시뮬레이션 결과 저장 모듈은 시뮬레이션 상태 모니터링을 통해서 다중 시뮬레이션의 결과(시작, 성공, 오류, 실패 등)을 취합하여 저장할 수 있다
클라우드 자원 반환 모듈은 시뮬레이션이 실패된 시뮬레이션 환경의 가상 노드들을 즉시 종료 및 자원을 반환할 수 있다. 클라우드 자원 반환 모듈은 다중 시뮬레이션이 모두 종료될 때 사용된 모든 클라우드 자원을 반환할 수 있다.
도 4 및 도 5는 시뮬레이션 환경 구성 다중화 및 자원 구성 최적화 프로세스를 예시적으로 보여주는 도면들이다. 도 4 및 도 5를 참조하면, 시뮬레이션 환경 구성 다중화 및 자원 구성 최적화 프로세스는 다음과 같이 진행될 수 있다.
사용자가 시뮬레이션 환경 구성 및 실행 요청을 하면, 시뮬레이션 장치(100)는 사용자가 요청한 시뮬레이션의 모델 및 설정사항을 고려하여 시뮬레이션을 프로파일링하여 같거나 유사한 정도에 따라 시뮬레이션 그룹을 생성할 수 있다(S110).
이후 시뮬레이션 장치(100)는 기존의 시뮬레이션 수행 결과(시뮬레이션 종류별로 가장 빠른 성능을 제공했던 최적 자원 구성 및 설정에 대한 정보) 히스토리를 활용하여 최적 자원 구성 확률 분포를 계산할 수 있다(S120).
도 6은 시뮬레이션에 대한 히스토리가 있는 경우 확률 분포를 예시적으로 보여주는 도면이다. 도 6를 참조하면, 대응하는 시뮬레이션에 대한 히스토리가 있는 경우, 시뮬레이션 장치(100)는 수식 1을 이용하여 히스토리의 m 구간에 대한 이동 평균(MA)을 계산할 수 있다. 또한 시뮬레이션 장치(100)는 수식 2를 이용하여 히스토리의 m 구간에 대한 이동 분산(MSTD2)을 계산할 수 있다. 이로써, 시뮬레이션 장치(100)는
Figure pat00002
를 따르는 확률 정규 분포를 계산하여 최적 자원 구성 확률 표를 생성할 수 있다.
수식 1은 이동 평균(MA)의 계산 수식이다.
Figure pat00003
수식 2는 이동 분산(MSTD2) 계산 수식이다.
Figure pat00004
도 7은 시뮬레이션에 대한 히스토리가 없는 경우 확률 분포를 예시적으로 보여주는 도면이다. 도 7을 참조하면, 대응하는 시뮬레이션에 대한 히스토리가 없는 경우, 사용자가 제시한 설정을 중심적으로 유니폼하게 확률을 분포 시킬 수 있다. 예를 들어, 가상 노드 2개, 4개, 6개, 8개, … , 32개 모두 5%의 확률로 가장 최적의 자원 구성일 확률로 확률 분포가 설정될 수 있다.
이후에, 시뮬레이션 장치(100)는 최적 자원 구성 확률 분포에 따라 N개의 시뮬레이션 환경의 자원 구성을 선택(다중화 실행 번호 지정)하여 시뮬레이션을 다중화를 수행할 수 있다(S130). 여기서 N은 시스템 지정 값, 사용자가 지정한 값, 사용자의 가상 자원 사용 예산에 부합하는 값 등으로 설정될 수 있다.
시뮬레이션 장치(100)는 선택된 다중화 실행번호를 기준으로 가상 자원 노드 할당과 시뮬레이션 실행 등을 N개의 과정으로 분기하여 동시에 수행할 수 있다(S140). S140 단계는 다음과 같이 진행될 수 있다.
시뮬레이션 장치(100)는 개별 시뮬레이션 자원 구성을 확인하고 필요한 가상 노드를 할당 및 생성할 수 있다. 시뮬레이션 장치(100)는 가상 노드를 동작시키기 위한 클라우드 자원은 내부 자원 노드 또는 외부 클라우드의 자원 노드에 할당할 수 있다(S141).
시뮬레이션 장치(100)는 시뮬레이션 환경의 가상 노드들의 성능에 다른 외부 워크로드가 혼합되지 않도록 제어할 수 있다. 시뮬레이션 장치(100)는 가상 노드의 자원을 클라우드 자원 노드에 할당 시, 외부 워크로드를 수행 중이지 않은 자원 노드를 선택하거나, 필요에 따라 자원 노드에서 동작 중인 외부 워크로드를 종료시키거나 다른 자원 노드로 이주시켜서 시뮬레이션에 관한 워크로드만 수행하도록 유도할 수도 있다. 시뮬레이션 장치(100)는 생성된 가상 노드들을 시뮬레이션 클러스터로 구성하고, 시뮬레이션 클러스터 내에 시뮬레이션에 관련된 엔진 및 실행환경을 구성하고, 사용자가 요청한 시뮬레이션을 실행할 수 있다(S142)
이후 시뮬레이션이 완료되었는지가 판별될 수 있다(S143). 실시 예에 있어서, 시뮬레이션 장치(100)는 시뮬레이션이 종료되는 시점까지 시뮬레이션의 수행 상태를 모니터링 할 수 있다. 예를 들어, 푸쉬, 폴링 등 다양한 방식을 통해 모니터링이 가능하다.
만일, 시뮬레이션이 완료되었으면, 시뮬레이션 장치(100)는 시뮬레이션 완료 시간을 저장할 수 있다(S144). 시뮬레이션 장치(1000는 시뮬레이션이 완료된 경우, 시뮬레이션의 완료 시간을 저장하고, 시뮬레이션 수행 결과 및 시뮬레이션 실행 환경의 자원 구성 및 설정 정보를 포함하여, 결과를 취합하기 위해서 다음 단계로 넘어갈 수 있다.
반면에, 시뮬레이션이 완료되지 않았다면, 시뮬레이션 오류 혹은 실패인지가 판별될 수 있다(S145). 만일, 시뮬레이션 오류 혹은 실패가 아니라면, S143 단계가 진행될 수 있다. 반면에, 시뮬레이션 오류 혹은 실패라면, 시뮬레이션 장치(100)는 시뮬레이션 실패 상태를 저장할 수 있다(S146). 시뮬레이션이 오류를 일으키거나 실패된 경우, 시뮬레이션 장치(100)는 시뮬레이션의 실패 상태를 저장하고, 정보 취합을 위해서 다음 단계로 넘어갈 수 있다.
이후, 시뮬레이션 장치(100)는 개별 시뮬레이션이 종료될 때마다, 개별 정보를 취합하여 다중화된 전체 시뮬레이션 결과를 구성할 수 있다(S150). 종료된 시뮬레이션의 결과는 시뮬레이션 수행 결과 히스토리에 저장될 수 있다.
이후, 완료된 시뮬레이션이 존재하는지가 판별될 수 있다. 이는 가장 먼저 완료된 시뮬레이션이 있는지 이다(S160).
만일, 완료된 시뮬레이션이 존재하는 경우, 시뮬레이션 장치(100)는 가장 먼저 완료된 시뮬레이션이므로 나머지 시뮬레이션 및 시뮬레이션 실행 환경을 종료시키고 사용한 클라우드 자원을 빠르게 반환할 수 있다(S170). 이후에, 사용자에게 가장 빨리 완료된 시뮬레이션의 결과가 통보될 수 있다(S190)
반면에, 완료된 시뮬레이션이 존재하지 않을 때, N개의 시뮬레이션이 모두 실패하였는 지가 판별될 수 있다(S180). 만일 N개의 시뮬레이션이 모두 실패하지 않았다면, S150 단계가 진행될 수 있다. 반면에, N개의 시뮬레이션이 모두 실패하였다면, 사용자에게 시뮬레이션의 실패가 통보될 수 있다(S190).
실시 예에 따라서는, 단계들 및/혹은 동작들의 일부 혹은 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/혹은 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 혹은 수행될 수 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), SSD(solid state drive), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/혹은 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/혹은 그것들의 어떠한 조합으로 구현될 수 있다.
본 발명의 실시 예들의 하나 이상의 동작들/단계들/모듈들을 구현/수행하기 위한 하나 이상의 비-일시적 컴퓨터-판독가능 매체 및/혹은 수단들은 ASICs(application-specific integrated circuits), 표준 집적 회로들, 마이크로 컨트롤러를 포함하는, 적절한 명령들을 수행하는 컨트롤러, 및/혹은 임베디드 컨트롤러, FPGAs(field-programmable gate arrays), CPLDs(complex programmable logic devices), 및 그와 같은 것들을 포함할 수 있지만, 여기에 한정되지는 않는다.
아래에서는 시뮬레이션 환경 구성 다중화 및 자원 구성 최적화 프로세스에 대하여 상세하게 설명하도록 하겠다.
시뮬레이션 환경을 위한 가상 자원 구성은 다양한 요소로 구성될 수 있다. 자원 구성 요소에는 시뮬레이션 클러스터를 구성하는 가상 노드의 개수, 자원의 성능(CPU, 메모리, 네트워크 대역폭), 가상 노드의 특정 기능 지원 여부 등이 포함될 수 있다.
도 8은 자원 구성 설정 요소가 1개만 설정된 경우 선택 가능 자원 구성 리스트를 예시적으로 보여주는 도면이다. 도 8을 참조하면, 자원 구성 설정 요소가 1개만 사용되는 경우는 선택 가능한 자원 구성의 리스트가 1차원 배열로 순차적으로 지정될 수 있다.
도 9는 자원 구성 설정 요소가 2개 설정된 경우 선택 가능 자원 구성 리스트를 예시적으로 보여주는 도면이다. 도 9를 참조하면, 자원 구성 설정 요소를 2개 사용하는 경우는 선택 가능한 자원 구성의 리스트가 2차원 배열로 순차적으로 지정될 수 있다. 마찬가지로 자원 구성 설정 요소가 많으면, 선택 가능한 자원 구성의 리스트가 다차원으로 정의될 수 있다.
또한, 최적 자원 구성의 확률 분포를 계산하는 방법은 다음과 같다. 시뮬레이션 장치(100)는 시뮬레이션 타입 별 가장 빨리 완료된 시뮬레이션 환경의 자원 구성을 과거의 트랜잭션 히스토리에서 확인할 수 있다. 시뮬레이션 장치(100)는 m 개의 트랜잭션 구간(i ~ n)에 대한 가장 빨리 완료된 시뮬레이션 환경의 자원 구성 번호의 이동 평균(MA)을 계산할 수 있다. MA는 수식 1에 의해서 계산될 수 있다.
또한 시뮬레이션 장치(100)는 m 개의 트랜잭션 구간(i ~ n)에 대한 이동 분산(MSTD2)을 계산할 수 있다. MSTD2는 수식 2에 의해서 계산될 수 있다.
도 10은 가장 빨리 완료된 시뮬레이션 환경의 자원 구성의 히스토리 및 이동 평균 계산 구간을 예시적으로 보여주는 도면이다.
일반적인
Figure pat00005
확률정규분포는 수식 3과 같이 정의될 수 있다.
Figure pat00006
MA는 가장 빨리 완료된 시뮬레이션 환경의 자원 구성 번호 이동평균이고, MSTD2 는 가장 빨리 완료된 시뮬레이션 환경의 자원 구성 번호의 분산일 때, 최적 시뮬레이션 자원 구성 확률의 분포는
Figure pat00007
를 따르는 확률정규분포를 수식 4 와 같이 정의될 수 있다.
Figure pat00008
도 11은
Figure pat00009
확률 분포를 따르는 최적 시뮬레이션 자원 구성 확률의 확률 분포의 그래프를 예시적으로 보여주는 도면이다. 도 11을 참조하면, MA에 가까울수록 높은 확률이 분포하고, MA에서 멀어질수록 낮은 확률이 분포하는 것이 확인된다.
일반적인 클라우드를 활용한 시뮬레이션 실행 방식에서는 사용자가 임의로 시뮬레이션의 컴퓨팅 자원의 구성을 선택하고 시뮬레이션을 수행하였다. 시뮬레이션은 수행하는데 상당히 시간이 오래 걸리는 작업이다. 만약 지정한 자원의 구성이 적합하지 않은 경우 시뮬레이션의 수행 속도는 현저히 낮아질 수 있다. 또한, 시뮬레이션이 요구하는 자원의 성능, 용량, 종류 등을 잘못 구성한 경우, 장시간 수행한 시뮬레이션 완료 전에 오류를 일으킬 수도 있다. 이때 시뮬레이션 사용자는 컴퓨팅 자원에 대한 비용뿐만 아니라 시간도 낭비하게 된다.
본 발명에서는 시뮬레이션 사용자들이 다양한 시뮬레이션에 적합한 최적의 클라우드의 컴퓨팅 자원을 동적으로 구성한다. 시뮬레이션을 수행하기 위한 가상 자원의 구성을 다중화 (시뮬레이션 실행환경의 다중화)하여 동시에 폭증(bursting) 실행할 수 있는 방법을 제공한다. 다양한 구성의 시뮬레이션이 동시에 동작하기 때문에, 사용자는 시뮬레이션 실행 환경들 중 가장 빨리 성공적으로 완료된 시뮬레이션의 결과만 확인하면 된다. 결과적으로는 사용자에게 최적의 시뮬레이션 환경을 제공하게 된다. 다양한 시뮬레이션에 적합한 최적의 클라우드의 컴퓨팅 자원을 동적으로 구성되면, 시뮬레이션의 속도 저하와 시뮬레이션 실패를 감소시킬 수 있다.
본 발명은 또한 많은 수의 가상 자원(가상 노드)의 사용량을 비용에 따라 제한적으로 사용할 수 있는 방법을 포함한다. 본 발명을 통해서 다양한 이종 시뮬레이션들을 사용자들이 반복해서 구성 및 실행할 때, 다양한 이종 시뮬레이션들을 프로파일링하고 과거에 성공적이었던 시뮬레이션 환경의 구성들의 히스토리 정보를 활용하여 통계와 확률을 통한 효율적인 최적 자원 구성의 선택 방법을 제시한다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
100: 클라우드 컴퓨팅 기반 시뮬레이션 장치

Claims (14)

  1. 클라우드 컴퓨팅 기반의 시뮬레이션 장치의 동작 방법에 있어서,
    사용자가 요청한 시뮬레이션 모델과 설정 사항을 고려하여 시뮬레이션을 프로파일링 하는 단계;
    상기 프로파일링된 시뮬레이션 결과에 대응하는 히스토리가 존재할 때, 상기 히스토리를 이용하여 상기 시뮬레이션에 대한 자원 구성 확률 분포를 계산하는 단계;
    상기 자원 구성 확률 분포에 따라 N(2 이상의 정수)개의 시뮬레이션 환경의 자원 구성을 선택함으로써 상기 시뮬레이션 환경을 다중화하는 단계; 및
    상기 다중화된 시뮬레이션 환경에서 상기 시뮬레이션을 동시에 실행하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 자원 구성 확률 분포를 계산하는 단계는,
    상기 히스토리가 존재할 때, 상기 히스토리의 복수의 구간에 대한 이동 평균을 계산하는 단계;
    상기 복수의 구간에 대한 이동 분산을 계산하는 단계; 및
    상기 이동 평균과 상기 이동 분산에 따른 확률 정규 분포를 계산함으로써 자원 구성 확률 표를 생성하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 프로파일링된 시뮬레이션 결과에 대응하는 히스토리가 존재하지 않을 때, 상기 사용자의 설정을 중심으로 유니폼하게 상기 자원 구성 확률 분포를 계산하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 N은 시스템 지정 값, 상기 사용자가 지정한 값, 상기 사용자의 가상 자원 사용 예산에 부합하는 값 중에서 어느 하나로 설정되는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 시뮬레이션을 동시에 실행하는 단계는,
    개별 시뮬레이션 환경에서 자원 구성을 확인 및 가상 노드들을 할당하는 단계;
    상기 할당된 가상 노드들을 시뮬레이션 클러스터로 구성하는 단계; 및
    상기 구성된 시뮬레이션 클러스터에서 상기 시뮬레이션을 실행하는 단계를 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 다중화된 시뮬레이션 환경에서 실행되는 상기 시뮬레이션의 수행 상태를 모니터링 하는 단계를 더 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 모니터링 결과로써, 상기 다중 시뮬레이션 환경 중에서 어느 하나에서 상기 시뮬레이션이 완료될 때, 상기 시뮬레이션의 완료 시간을 저장하고, 상기 시뮬레이션 수행 결과 및 상시 시뮬레이션 실행 환경의 자원 구성 및 설정 정보를 상기 히스토리에 업데이트 하는 단계를 포함하는 방법.
  8. 제 7 항에 있어서,
    상기 모니터링 결과로써, 상기 다중 시뮬레이션 환경 중에서 어느 하나에서 상기 시뮬레이션이 완료될 때, 나머지 시뮬레이션 환경에서의 상기 시뮬레이션의 실행을 종료시키는 단계를 더 포함하는 방법.
  9. 제 6 항에 있어서,
    상기 모니터링 결과로써 상기 다중 시뮬레이션 환경에서 모두 시뮬레이션이 실패한 경우, 상기 사용자에게 상기 시뮬레이션의 실패를 전달하는 단계를 더 포함하는 방법.
  10. 적어도 하나의 프로세서, 및 상기 적어도 하나의 프로세서에 의해 실행되는 적어도 하나의 인스트럭션을 저장하는 메모리를 갖는 클라우드 컴퓨팅 기반의 시뮬레이션 장치에 있어서:
    상기 적어도 하나의 인스트럭션은,
    사용자 요청한 시뮬레이션 모델과 설정 사항을 고려하여 시뮬레이션을 프로파일링 하고;
    상기 프로파일링된 시뮬레이션 결과에 대응하는 히스토리가 존재할 때, 상기 히스토리를 이용하여 상기 시뮬레이션에 대한 자원 구성 확률 분포를 계산하고;
    상기 자원 구성 확률 분포에 따라 N(2 이상의 정수)개의 시뮬레이션 환경의 자원 구성을 선택함으로써 상기 시뮬레이션 환경을 다중화하고; 및
    상기 다중화된 시뮬레이션 환경에서 상기 시뮬레이션을 동시에 실행하는 것을 특징으로 하는 시뮬레이션 장치.
  11. 제 10 항에 있어서,
    상기 다중화된 시뮬레이션 환경은 서로 다른 개수의 가상 노드에 의해 구성되는 것을 특징으로 하는 시뮬레이션 장치.
  12. 제 10 항에 있어서,
    상기 다중화된 시뮬레이션 환경 중에서 어느 하나에서 상기 시뮬레이션이 완료될 때, 나머지 시뮬레이션 환경에서의 시뮬레이션을 종료시키고, 사용한 클라우드 자원을 반환시키는 것을 특징으로 하는 시뮬레이션 장치.
  13. 제 12 항에 있어서,
    상기 다중화된 시뮬레이션 환경에서 시뮬레이션의 수행 상태를 푸쉬 방식 혹은 폴링 방식으로 모니터링 하는 것을 특징으로 하는 시뮬레이션 장치.
  14. 제 13 항에 있어서,
    시뮬레이션 상태의 모니터링을 통해서 다중 시뮬레이션의 결과를 취합하여 저장하는 것을 특징으로 하는 시뮬레이션 장치.
KR1020190016906A 2019-02-13 2019-02-13 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법 KR102456023B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190016906A KR102456023B1 (ko) 2019-02-13 2019-02-13 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법
US16/789,234 US11650855B2 (en) 2019-02-13 2020-02-12 Cloud computing-based simulation apparatus and method for operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190016906A KR102456023B1 (ko) 2019-02-13 2019-02-13 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200103181A true KR20200103181A (ko) 2020-09-02
KR102456023B1 KR102456023B1 (ko) 2022-10-19

Family

ID=71945162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190016906A KR102456023B1 (ko) 2019-02-13 2019-02-13 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법

Country Status (2)

Country Link
US (1) US11650855B2 (ko)
KR (1) KR102456023B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11556392B2 (en) 2020-07-10 2023-01-17 Electronics And Telecommunications Research Institute Cloud access method for Iot devices, and devices performing the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130134569A (ko) * 2012-05-31 2013-12-10 삼성에스디에스 주식회사 분석 작업 실행 이력을 이용한 가상 클러스터 구축 시스템 및 방법
KR101474872B1 (ko) * 2014-01-09 2014-12-19 성균관대학교산학협력단 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템
KR101695013B1 (ko) * 2012-12-14 2017-01-10 한국전자통신연구원 적응형 자원 할당 및 관리 방법
JP2018005896A (ja) * 2016-07-08 2018-01-11 富士通株式会社 シミュレーションジョブを実行するためのシステム、コントローラ、方法、及びプログラム
JP2018032392A (ja) * 2016-08-26 2018-03-01 株式会社日立製作所 複数のシミュレータを含むシミュレーション

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819605B1 (en) * 2013-03-06 2014-08-26 Oracle International Corporation Deriving effective corners for complex correlations
US9424091B2 (en) * 2013-05-01 2016-08-23 Silicon Graphics International Corp. Deploying software in a multi-instance node
KR101613887B1 (ko) 2014-02-06 2016-04-29 서울대학교산학협력단 실시간 시뮬레이션 방법 및 이를 수행하는 시뮬레이션 장치
KR20170071750A (ko) 2015-12-16 2017-06-26 주식회사 에그 클라우드 기반 시뮬레이터 플랫폼 시스템
US10534643B2 (en) * 2016-05-09 2020-01-14 Oracle International Corporation Correlation of thread intensity and heap usage to identify heap-hoarding stack traces
KR20180086791A (ko) 2017-01-23 2018-08-01 한국전자통신연구원 빅 데이터 처리 지원을 위한 클라우드 시스템 및 그 운영 방법
KR102263361B1 (ko) 2017-06-15 2021-06-11 한국전자통신연구원 다중 클라우드 기반의 클라우드 브로커리지 서비스 제공 장치 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130134569A (ko) * 2012-05-31 2013-12-10 삼성에스디에스 주식회사 분석 작업 실행 이력을 이용한 가상 클러스터 구축 시스템 및 방법
KR101695013B1 (ko) * 2012-12-14 2017-01-10 한국전자통신연구원 적응형 자원 할당 및 관리 방법
KR101474872B1 (ko) * 2014-01-09 2014-12-19 성균관대학교산학협력단 클라우드 상에 가상 클러스터들의 효율적 구축을 위한 탄력적 가상 클러스터 관리 방법, 이를 이용한 가상 클러스터 관리 장치 및 클라우드 시스템
JP2018005896A (ja) * 2016-07-08 2018-01-11 富士通株式会社 シミュレーションジョブを実行するためのシステム、コントローラ、方法、及びプログラム
JP2018032392A (ja) * 2016-08-26 2018-03-01 株式会社日立製作所 複数のシミュレータを含むシミュレーション

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
미국공개특허: US 2018-0046561, 공개일: 2018년 2월 15일, SYSTEM, CONTROLLER, METHOD, AND PROGRAM FOR EXECUTING SIMULATION JOBS
미국공개특허: US 2018-0060456, 공개일: 2018년 3월 1일, SIMULAION INCLUDING MULTPLE SIMULATORS

Also Published As

Publication number Publication date
KR102456023B1 (ko) 2022-10-19
US11650855B2 (en) 2023-05-16
US20200257570A1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
EP3036625B1 (en) Virtual hadoop manager
US11586381B2 (en) Dynamic scheduling of distributed storage management tasks using predicted system characteristics
US10942760B2 (en) Predictive rightsizing for virtual machines in cloud computing systems
US9621654B2 (en) Intelligent data propagation using performance monitoring
US9424098B2 (en) Dynamic resource scheduling
US9389900B2 (en) Method and system for supporting a change in state within a cluster of host computers that run virtual machines
US20180239642A1 (en) Resource Configuration System, Resource Configuration Method and Resource Configuration Program
US20160112504A1 (en) Proposed storage system solution selection for service level objective management
WO2012056596A1 (ja) 計算機システム及び処理制御方法
US20150134606A1 (en) Intelligent data propagation in a highly distributed environment
EP2975515A1 (en) System and method for managing excessive distribution of memory
US20140282540A1 (en) Performant host selection for virtualization centers
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
CN113886089B (zh) 一种任务处理方法、装置、系统、设备及介质
CN104750538B (zh) 用于为目标应用提供虚拟存储池的方法和系统
US20180219794A1 (en) Deploying a cloud service with capacity reservation followed by activation
CN112862098A (zh) 一种集群训练任务处理的方法及系统
JP2019133291A (ja) 情報処理装置,情報処理システムおよび制御プログラム
Lee et al. I/O aware power shifting
KR102456023B1 (ko) 클라우드 컴퓨팅 기반의 시뮬레이션 장치 및 방법
US11983151B2 (en) Resilience based database placement in clustered environment
CN106325972B (zh) 一种虚拟机管理方法及网络设备
CN111338930A (zh) 一种基于多进程多租户的自动化测试系统及方法
US11093266B2 (en) Using a generative model to facilitate simulation of potential policies for an infrastructure as a service system
Alonso et al. Optimal resource allocation in a virtualized software aging platform with software rejuvenation

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)