KR102304321B1 - 시뮬레이션 실행 시간 예측 장치 및 예측 방법 - Google Patents

시뮬레이션 실행 시간 예측 장치 및 예측 방법 Download PDF

Info

Publication number
KR102304321B1
KR102304321B1 KR1020200010327A KR20200010327A KR102304321B1 KR 102304321 B1 KR102304321 B1 KR 102304321B1 KR 1020200010327 A KR1020200010327 A KR 1020200010327A KR 20200010327 A KR20200010327 A KR 20200010327A KR 102304321 B1 KR102304321 B1 KR 102304321B1
Authority
KR
South Korea
Prior art keywords
simulation
prediction
model
unit
reliability
Prior art date
Application number
KR1020200010327A
Other languages
English (en)
Other versions
KR20210077566A (ko
Inventor
서영균
김성현
정현태
박수호
Original Assignee
경북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경북대학교 산학협력단 filed Critical 경북대학교 산학협력단
Publication of KR20210077566A publication Critical patent/KR20210077566A/ko
Application granted granted Critical
Publication of KR102304321B1 publication Critical patent/KR102304321B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 시뮬레이션 실행 시간 예측 장치에 관한 것으로, 보다 구체적으로는 오일이 봉입된 실린더, 시뮬레이션 수행을 위한 복수의 파라미터 정보를 전처리하는 전처리부, 분류모델, 회귀모델 및 혼합모델을 하나 이상 이용하여 상기 전처리된 데이터의 시뮬레이션을 처리하는데 필요한 예측 시간 및 신뢰도를 예측하는 예측부, 상기 예측부의 결과를 비교하여 최적의 결과를 선택하는 선택부, 상기 시뮬레이션을 처리하는데 필요한 시간의 예측 결과 및 신뢰도와 함께 사용자에게 제공하는 출력부를 포함하며, 상기 혼합모델은 상기 분류모델과 상기 회귀모델을 함께 이용하고, 상기 분류모델 및 상기 회귀모델은 복수의 기계학습 모델로 구성되어 사용자에게 시뮬레이션 실행 전에 시뮬레이션을 수행하는데 필요한 시간을 예측하여 제공함으로써 사용자가 시뮬레이션 수행 전에 효율적으로 시뮬레이션 스케쥴을 조절할 수 있다.

Description

시뮬레이션 실행 시간 예측 장치 및 예측 방법{An Apparatus And Method for Predicting Simulation Execution Time}
본 발명은 파라미터에 따른 시뮬레이션의 실행 시간을 효과적으로 예측하기 위한 시뮬레이션 실행 시간 예측 방법에 관한 것으로, 구체적으로는 분류 모델, 회귀 모델, 분류와 회귀를 결합한 혼합 모델을 사용하여 시뮬레이션을 활용하는 연구 계획을 효율적으로 스케줄링할 수 있도록 파라미터에 따른 시뮬레이션의 실행 시간을 예측하는 방법에 관한 것이다.
계산과학공학(Computational Science and Engineering, CSE)은 기존의 과학이나 공학 분야에서 직접 실험을 통해 연구를 하거나, 이론적으로 연구를 하는 분야가 아닌, 고성능 컴퓨팅 자원을 활용한 시뮬레이션으로 문제를 해결하는 분야이다.
이러한 계산과학공학은 최근에, CPU, I/O, 네트워크 등 컴퓨팅 자원의 성능 고도화가 급진적으로 진행됨에 따라 컴퓨팅 자원의 성능 향상을 통해 기존에 해 볼 수 없었던 다양한 계산과학공학 시뮬레이션의 수행을 가능하게 하였다.
계산과학공학 시뮬레이션 플랫폼인 EDISON은 온라인 상에서 시뮬레이션을 수행하는 플랫폼으로서, 주어진 입력 파라미터에 대해 시뮬레이션 결과를 추론하기 위해 기계학습 기술을 사용하는 장치며, 온라인에서 수행할 수 있다는 편리함으로 인하여 한국과 대만, 미국 등의 많은 국가와 대학 등에서 수많은 사용자가 적극적으로 사용하고 있다.
이에 따라, 시뮬레이션의 수행으로 인한 이력(provenance) 데이터가 폭발적으로 생성되기 시작하였으며, 계산과학공학 시뮬레이션의 효율성 측면에서, 생성되고 수집된 시뮬레이션 이력 데이터의 효과적인 활용 및 분석 또한 매우 중요한 시점에 이르렀다.
그러나, 시뮬레이션을 수행하기 위해서는 시뮬레이션에 의해 지정된 입력 파라미터에 따라 며칠, 몇 주, 몇 개월 등의 긴 시간이 필요한 경우가 발생할 수 있으며, 이에 따라 많은 시간과 비용이 소모되는 경우가 발생할 수 있다.
또한, 시뮬레이션 이력 데이터를 활용하는 방법에 대해 연구가 부족하여 잘못된 파라미터를 이용함에 따라 며칠, 몇 주, 몇 개월 등의 긴 시간이 필요한 경우가 발생할 수 있으며, 이에 따라 많은 시간과 비용이 소모되는 경우가 발생할 수 있다. 이로 인하여 연구자는 자신의 시뮬레이션이 완전히 종료될 때까지 긴 수행시간 동안 기약 없이 대기해야 하며, 연구 수행 스케줄에 큰 지장을 받게 되고, 동시다발적으로 생성된 시뮬레이션들에 대한 작업 큐의 처리량이 현저하게 낮아질 수 있다.
상기와 같은 문제가 발생할 수 있음에도 불구하고, 계산과학공학 연구자들의 시뮬레이션 편의성을 증대시킬 수 있는 분석 서비스 프레임워크에 대한 연구가 아직 미비한 실정으로써 경험에 의한 파라미터 설정 및 시뮬레이션 실행 후의 기약 없이 시뮬레이션의 종료를 기다림을 지속하는 문제가 있다.
본 발명은 상기 기술적 과제에 대한 문제점을 해결하기 위한 것으로, 시뮬레이션의 실행 시간을 예측하여 시뮬레이션 수행 전 파라미터의 조합을 신중하게 선택할 수 있는 기회를 제공하는데 그 목적이 있다.
다른 측면에서 본 발명은 특정 시뮬레이션에서 자주 사용되는 파라미터 값들의 집합을 사용자에게 제공하여 보다 효율적인 시뮬레이션을 동작할 수 있도록 제공하는데 그 목적이 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 시뮬레이션실행시간 예측 장치는 시뮬레이션 수행을 위한 복수의 파라미터 정보를 전처리하는 전처리부, 분류모델, 회귀모델 및 혼합모델을 하나 이상 이용하여 상기 전처리된 데이터의 시뮬레이션을 처리하는데 필요한 예측 시간 및 신뢰도를 예측하는 예측부, 상기 예측부의 결과를 비교하여 최적의 결과를 선택하는 선택부, 상기 시뮬레이션을 처리하는데 필요한 시간의 예측 결과 및 신뢰도와 함께 사용자에게 제공하는 출력부를 포함하며, 상기 혼합모델은 상기 분류모델과 상기 회귀모델을 함께 이용하고, 상기 분류모델 및 상기 회귀모델은 복수의 기계학습 모델로 구성될 수 있다.
또한, 상기 전처리부는 상기 시뮬레이션 수행을 위한 상기 파라미터 정보를 상기 기계학습 모델에서 사용 가능하도록 이상치 및 중복되는 상기 파라미터를 제거하는 정렬부, 상기 복수의 파라미터를 정규화하는 정규화부, 상기 시뮬레이션의 이전 실행 기록들의 평균 런타임으로 상기 시뮬레이션의 런타임을 변경하는 런타임 변환부를 포함하여 구성될 수 있다.
또한, 상기 저장부는 상기 파라미터 정보의 사용 이력을 작업 데이터와 원시 데이터로 구분하여 저장하며, 상기 작업 데이터는 상기 시뮬레이션에서 사용된 상기 파라미터 정보를 세트 형태로 구성하여 저장하고, 상기 원시 데이터는 상기 시뮬레이션에서 사용된 파라미터 세트 이외의 사용 시간, 사용 날자, 사용 횟수와 같은 이력 정보를 저장할 수 있다.
또한, 상기 전처리된 데이터를 이용하여 상기 분류모델, 상기 회귀모델 및 상기 혼합모델을 학습하는 학습부를 더 포함하여 구성될 수 있다.
또한, 상기 분류모델은 의사결정 트리 또는 k-NN(k-nearest neighbor) 방법 중 더 나은 신뢰도를 가지는 분류 모델을 선택하여 제공할 수 있다.
또한, 상기 회귀모델은 의사결정 트리, 랜덤 포레스트(random forest), SVM (support vector machine) 기술을 모두 이용하여 각각의 예측 결과를 생성할 수 있다.
또한, 상기 선택부는 상기 회귀모델의 예측 시간 및 신뢰도와 상기 혼합모델의 예측 시간 및 신뢰도를 비교하여 최적의 결과를 선택하고, 상기 출력부는 상기 선택부의 결과와 함께 상기 분류모델의 예측 시간 및 신뢰도를 함께 제공할 수 있다.
또 다른 측면에서 상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 시뮬레이션실행시간 예측 방법은 복수의 파라미터 정보를 전처리부가 시뮬레이션 수행을 위한 형태로 전처리하는 단계, 계산부의 분류모델, 회귀모델 및 혼합모델을 하나 이상 이용하여 상기 전처리된 데이터의 시뮬레이션을 처리하는데 필요한 예측 시간 및 신뢰도를 계산하는 단계, 선택부에서 상기 계산부의 결과를 비교하여 최적의 결과를 선택하는 단계, 상기 선택된 최적의 결과를 사용자에게 제공하는 단계를 포함하며, 상기 혼합모델은 상기 분류모델과 상기 회귀모델을 함께 이용하고, 상기 분류모델 및 상기 회귀모델은 복수의 기계학습 모델로 구성될 수 있다.
또한, 상기 전처리하는 단계는 상기 파라미터 정보를 상기 기계학습 모델에서 사용 가능하도록 이상치 및 중복되는 상기 파라미터를 제거하는 단계, 상기 복수의 파라미터를 정규화하는 단계, 상기 시뮬레이션의 이전 실행 기록들의 평균 런타임으로 상기 시뮬레이션의 런타임을 변경하는 단계를 포함할 수 있다.
또한, 예측 시간 및 신뢰도를 계산하는 단계는 상기 전처리된 데이터를 이용하여 상기 분류모델, 상기 회귀모델 및 상기 혼합모델을 학습하는 단계를 더 포함할 수 있다.
또한, 상기 분류모델은 의사결정 트리 또는 k-NN(k-nearest neighbor) 방법 중 더 나은 신뢰도를 가지는 분류 모델을 선택할 수 있다.
또한, 상기 회귀모델은 의사결정 트리, 랜덤 포레스트(random forest), SVM (support vector machine) 기술을 모두 이용하여 각각의 예측 결과를 생성할 수 있다.
또한, 상기 최적의 결과를 선택하는 단계는, 상기 회귀모델의 예측 시간 및 신뢰도와 상기 혼합모델의 예측 시간 및 신뢰도를 비교하여 최적의 결과를 선택하는 단계를 포함하고, 상기 최적의 결과를 사용자에게 제공하는 단계는 상기 최적의 결과를 선택하는 단계의 결과와 함께 상기 분류모델의 예측 시간 및 신뢰도를 함께 제공할 수 있다.
상기한 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치는 사용자에게 시뮬레이션 실행 전에 시뮬레이션을 수행하는데 필요한 시간을 예측하여 제공함으로써 사용자가 시뮬레이션 수행 전에 효율적으로 시뮬레이션 스케쥴을 조절할 수 있다.
또한, 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치는 입력 파라미터 세트별로 시뮬레이션을 수행하는데 필요한 시간을 예측할 수 있어 최적의 파라미터 선정을 통해 시뮬레이션 수행에 필요한 시간을 최소화할 수 있다.
또한, 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치는 시뮬레이션 수행과 관련된 데이터를 저장 및 관리함으로써 사용자에게 적절한 파라미터를 제공하여 시뮬레이션 수행에 불필요한 자원 소모를 감소시킬 수 있다.
또한, 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치는 이력 데이터 분석을 통하여 복수의 사용자들이 많이 사용하는 파라미터 및 시뮬레이션 사용 현황 통계를 제공할 수 있으며, 빅데이터 분석을 통해 다양한 분석 자료를 획득할 수 있다.
도 1은 본 발명의 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치의 블록 다이어그램이다.
도 2는 도 1의 파라미터를 관리하는 관리부를 구체화하는 블록 다이어그램이다.
도 3은 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치를 프레임워크 형태로 표현한 도면이다.
도 4는 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치의 실행 알고리즘이다.
도 5 내지 8은 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 방법의 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시 예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명의 일 실시예에서의 시뮬레이션은 계산과학공학(CSE)에서 활용될 수 있는 시뮬레이션들에 대하여 개시하고 있으나, 시뮬레이션을 통해 데이터를 처리하는 모든 장치에 적용할 수 있다.
먼저, 도 1을 참조하여 본 발명의 시뮬레이션 실행 시간 예측 장치에 관하여 설명하도록 한다.
본 발명의 시뮬레이션 실행 시간 예측 장치는 소정의 파라미터를 인가받는 전처리부(120), 시뮬레이션 실행 시간을 예측하는 예측부(130), 예측 결과를 선택하는 선택부(140), 선택된 예측 결과를 사용자에게 제공하는 출력부(150)로 구성될 수 있다.
전처리부에 인가되는 파라미터는 시뮬레이션 실행을 위한 변수이며, 하나 이상의 변수로 구성될 수 있다. 이러한 파라미터는 사용자가 직접 설정하거나 시뮬레이션 플랫폼 내에 저장되어 있는 값을 이용할 수 있다.
전처리부(120)는 파라미터를 이용하여 시뮬레이션 수행을 할 수 있도록 변수 형식을 변환하기 위한 것이다.
계산과학공학 시뮬레이션 플랫폼은 주어진 입력 파라미터에 대해 시뮬레이션 결과를 추론하기 위해 기계학습 기술을 사용하는 장치로서 주어지는 입력 파라미터에 대해 기계학습에서 사용할 수 있도록 형태를 변환하여야 한다. 이러한 변환을 위하여 전처리부(120)는 정렬부(121), 정규화부(122), 런타임 변환부(123)를 더 포함할 수 있다.
정렬부(121)는 기계학습에서 사용할 수 있도록 사용자로부터 입력된 파라미터를 분석하여 이상치(Outlier)를 제거하고, 정렬할 수 있다.
사용자로부터 입력받은 파라미터를 변환하지 않고 단순 정렬만을 수행하여 시뮬레이션 수행 예측을 실시하는 경우, 시뮬레이션 장치에 의해 발생하는 내부 문제로 매우 짧은 시간에 처리 가능하다고 잘못된 예측을 수행하거나, 불필요한 파라미터를 처리하는데 시간이 소모되어 오랜 시간이 걸린다고 예측하는 경우 등의 비정상적인 예측을 수행할 수 있다.
이러한 잘못된 예측을 최소화하기 위하여 정렬부(120)에서는 시뮬레이션 실행 시간의 평균값을 사전에 정의하며, 이러한 평균값과 차이가 심한 데이터를 이상치로 판단하여 삭제할 수 있다.
또한, 복수의 파라미터가 입력되는 경우, 사용자의 부주의, 실수 또는 파라미터 내부의 변수에 따라 중복되는 데이터가 다수 포함될 수 있다, 이러한 중복되는 데이터는 시뮬레이션 실행 및 예측을 수행함에 있어 처리 시간이 길어지거나 잘못된 예측을 하게 되는 원인이 될 수 있으므로 이러한 중복 데이터 또한 이상치로 판단하여 삭제할 수 있다.
그러나, 이러한 이상치를 삭제함에 있어서 너무 많은 변수가 삭제되거나 데이터가 필요치 이하로 줄어 시뮬레이션 수행을 정확하게 실시할 수 없는 경우가 발생할 수 있다. 이러한 문제를 예방하기 위하여 사전에 파라미터 임계값을 설정하고, 설정된 임계값 이하로 파라미터 숫자가 감소하는 경우에 이상치 삭제 동작을 중지할 수 있다.
이상치가 삭제된 데이터는 기계학습에서 사용할 수 있도록 정렬을 수행할 수 있다. 정렬 방법으로는 오름차순, 내림차순 등의 순차적 정렬, 데이터 프레임 단위로 분할 정렬 및 테이블 형태로 변환하여 정렬할 수 있으며, 기계학습에서 사용할 수 있는 어떠한 형태로도 변환할 수 있다.
정규화부(122)는 파라미터를 정규화할 수 있다.
구체적으로, 각 파라미터는 파라미터의 설정에 따라 숫자 범위가 매우 넓을 수 있으며, 이러한 범위의 차이로 인하여 노이즈가 발생할 수 있다. 이러한 노이즈를 최소화하기 위하여 실행시간 값(x)을 기준으로 하기의 수학식 1을 이용하여 파라미터의 범위를 0에서 1사이의 값으로 정규화할 수 있다.
Figure 112020009377305-pat00001
파라미터가 동일하고, 시뮬레이션을 수행하는 응용프로그램이 동일한 경우에도 외부 요인(예: 하드웨어, 동시에 수행되는 시뮬레이션의 수 등)에 의하여 시뮬레이션 실행시간 예측 결과가 상이할 수 있으며, 예측 결과가 상이하여 발생하는 편차는 시뮬레이션 런타임 예측에 매우 치명적인 노이즈가 될 수 있다.
이러한 노이즈를 처리하기 위하여 런타임 변한부(123)는 파라미터의 런타임을 대체할 수 있다.
상기 대체되는 런타임은 시뮬레이션 응용프로그램에 대해 동일한 입력 파라미터로 수행한 평균 런타임일 수 있으며, 이러한 런타임은 사전에 시뮬레이션을 실제 수행하거나 본 발명의 시뮬레이션 실행시간 예측 장치 결과물의 평균일 수 있다.
전처리부(120)는 파라미터를 예측부(130)에서 이용하도록 전처리를 수행하는 한편, 예측부(130)의 기계학습 모델을 학습할 수 있도록 학습용 데이터를 생성하여 학습을 수행할 수 있다.
상기 학습용 데이터는 예측부(130)에 포함되어 있는 각 기계학습 모델별로 제공될 수 있으며, 필요 시 최적의 학습을 수행할 수 있도록 추가적인 전처리가 적용될 수 있다.
전처리부(120)는 전처리된 파라미터의 일부 또는 전체를 복사하여 테스트 데이터를 생성하여 예측부(130)의 동작 전 정상적으로 예측부(130)가 동작하는지 사전에 테스트를 수행할 수 있다.
예측부(130)는 분류모델(131), 회귀모델(132) 및 혼합모델(133)을 이용하여 전처리부(120)에서 전처리된 파라미터를 이용하여 시뮬레이션의 실행시간을 예측할 수 있다.
예측부(130)에서는 하나 이상의 기계학습 모델을 포함하고 있으며, 기계학습 모델로는 분류모델(131), 회귀모델(132) 및 혼합모델(133)을 포함할 수 있고, 기계학습 모델은 전처리된 파라미터를 이용하여 시뮬레이션의 실행시간을 예측할 수 있다.
분류모델(131)은 과거 동일 시뮬레이션 응용프로그램의 전체 실행시간을 기설정된 개수의 하위 범위(또는 간격)로 분할하고, 사용자가 설정한 파라미터를 이용하여 기설정된 개수 중 어느 부분에 시뮬레이션 실행시간이 포함되는지 판단하여 시뮬레이션의 예상 실행 시간 예측 값을 도출할 수 있다.
예를 들어, 저장되어 있는 A라는 시뮬레이션 응용프로그램의 이전 실행시간 기록이 100초라 하면, 전체 실행 시간 범위인 100초를 1초 단위의 100개의 간격으로 분할하고, 파라미터의 값을 대입하여 A의 예측된 인덱스 값을 출력하고, 예측된 인덱스 값이 실제 값(또는 주어진 입력 시뮬레이션 파라미터에 해당하는 실행 시간(초))과 임계값 이내로 유사하거나 일치하면 올바르게 예측하였다고 판단하여 시뮬레이션 실행 시간 예측 값을 출력할 수 있다.
분류모델(131)은 의사 결정 트리(Classification Tree, ctree) 및 k-최근접 이웃(k-Nearest Neighbor, KNN)기법을 이용할 수 있다.
분류모델(131)은 의사 결정 트리(ctree) 및 k-최근접 이웃(KNN) 방법 중 하나를 이용할 수 있다.
그러나, 본 발명의 일 실시예에서는 실행 시간 예측 값의 정확도를 증가시키기 위하여 결정 의사 트리 및 k-최근접 이웃 기법을 모두 이용하여 2개의 시뮬레이션 실행 시간 예측 값 및 신뢰도를 계산한 후에 신뢰도가 높은 하나의 값을 결과값으로 출력할 수 있다.
또한, 상기 실시예로 제시한 의사 결정 트리(ctree) 및 k-최근접 이웃(k-Nearest Neighbor, KNN) 방법은 하나의 실시예에 속하며, 분류모델(131)의 동작 방법을 이용할 수 있는 기계학습 모델이라면 무엇이든지 이용 가능하고, 2개의 시뮬레이션 실행 시간 예측 값이 아닌 셋 이상의 모델을 이용하여 결과값을 도출할 수 있다.
회귀모델(132)은 주어진 파라미터 세트에 대해 하기의 수학식 2를 이용하여 원 실행시간과 예상 실행시간 사이의 상대 오류를 계산하고, 파라미터 세트 내의 모든 상대 오차의 평균을 구하여 최종 시뮬레이션 실행 시간 예측 값을 출력할 수 있다.
Figure 112020009377305-pat00002
상기 수학식 2에서 r는 상대오차, xraw는 원 실행 시간, xest는 예상 실행시간이다.
회귀모델(132)은 의사 결정 트리(Classification Tree, ctree), 랜덤 포레스트(random forest), SVM (support vector machine) 방법을 이용하여 시뮬레이션 실행 시간 예측 값 및 신뢰도를 계산할 수 있다.
그러나, 본 발명의 일 실시예에서는 실행 시간 예측 값의 정확도를 증가시키기 위하여 의사 결정 트리(ctree), 랜덤 포레스트, SVM 기법을 모두 이용하여 3개의 시뮬레이션 실행 시간 예측 값 및 신뢰도를 계산한 후에 신뢰도가 높은 하나의 값을 결과 값으로 출력할 수 있다.
또한, 상기 실시예로 제시한 의사 결정 트리(Classification Tree, ctree), 랜덤 포레스트(random forest), SVM (support vector machine)방법은 하나의 실시예에 속하며, 회귀모델(132)의 동작 방법을 이용할 수 있는 기계학습 모델이라면 무엇이든지 이용 가능하고, 3개의 시뮬레이션 실행 시간 예측 값이 아닌 넷 이상의 모델을 이용하여 결과값을 도출할 수 있다.
혼합모델(133)은 분류모델(131)과 회귀모델(132)의 하이브리드형 혼합 모델로서, 시뮬레이션 응용프로그램에 대하여 분류모델(131)과 같이 과거 동일 시뮬레이션 응용프로그램의 전체 실행시간을 기설정된 개수의 하위 범위(또는 간격)로 분할한 후에 각 분할된 하위 범위(또는 간격)에 대하여 회귀모델(132)과 같이 원 실행시간과 예상 실행시간 사이의 상대 오류를 계산하고, 파라미터 세트 내의 모든 상대 오차의 평균을 구하여 최종 시뮬레이션 실행 시간 예측 값을 출력할 수 있다.
예를 들어, 저장되어 있는 A라는 시뮬레이션 응용프로그램의 이전 실행시간 기록이 100초라 하면, 전체 실행 시간 범위인 100초를 10초 단위의 10개의 간격으로 분할하고, 분할된 10개의 간격별로 회귀모델(132)을 적용하여 회귀를 수행하여 회귀에 의해 예상 실행 간격을 계산할 수 있다.
혼합모델(133)은 보다 작은 범위에서 회귀를 시킴으로써 보다 정확한 예상 시간을 추정할 수 있다.
선택부(140)는 예측부(130)에서 예측한 시뮬레이션 실행 시간 예측 값을 비교하여 가장 높은 신뢰도를 가지는 결과 값을 출력부(150)로 제공할 수 있다.
선택부(140)는 필요에 따라 다양한 형태로 구성할 수 있으며, 예를 들어, 분류모델(131)의 결과, 회귀모델(132)의 결과, 혼합모델(133)의 결과를 모두 출력부(150)로 제공하는 방법, 회귀모델(132) 및 혼합모델의 결과(133)의 결과를 비교하여 가장 높은 신뢰도를 가지는 결과 값과 분류모델(131)의 결괏값을 출력부(150)로 제공하는 방법 등의 다양한 방법으로 결과 값을 선택할 수 있다.
선택부(140)는 분류모델(131)의 의사 결정 트리(ctree) 및 k-최근접 이웃(k-Nearest Neighbor, KNN) 방법의 두 가지 결과를 모두 제공하거나 하나를 선택하여 출력부(150)로 제공할 수 있다.
선택부(140)는 회귀모델(132)의 의사 결정 트리(Classification Tree, ctree), 랜덤 포레스트(random forest), SVM (support vector machine) 방법의 세 가지 결과를 모두 제공하거나 하나를 선택하여 출력부(150)로 제공할 수 있다.
선택부(140)는 회귀모델(132)의 의사 결정 트리(Classification Tree, ctree), 랜덤 포레스트(random forest), SVM (support vector machine) 방법 및 혼합모델(132)의 4개의 결과 값 중 하나를 선택하여 출력부(150)로 제공할 수 있다.
출력부(150)는 선택부(140)에서 제공받은 시뮬레이션 실행 시간 예측 값을 사용자에게 디스플레이(미도시)를 이용하여 제공할 수 있다.
출력부(150)는 예측부(130)에서 계산한 시뮬레이션 실행 시간 예측 값 및 신뢰도를 함께 제공할 수 있다.
더하여, 출력부(150)는 디스플레이(150)의 정보를 음성으로 변환하여 사용자에게 제공하거나, 무선통신 모듈(미도시)을 더 포함하여 사용자의 스마트폰, 노트북, 태블릿 등의 외부 전자기기에서 확인할 수 있도록 데이터를 전송할 수 있으며, 필요 시 설정에 의해 이메일, 문자메시지 등의 형태로도 전달할 수 있다.
도 2는 도 1의 파라미터를 관리하는 관리부를 구체화하는 블록 다이어그램이다.
파라미터는 사용자가 직접 입력할 수 있으나, 보다 편리하게 이용하도록 관리부(110)에 저장되어 있는 이력 데이터를 이용할 수 있다.
관리부(110)는 저장부(111), 통계부(112), 추천부(113)를 포함할 수 있다.
저장부(111)는 시뮬레이션 실행 전 파라미터의 정보 및 시뮬레이션 실행 후의 전처리된 파라미터의 정보를 모두 수집하며, 수집된 데이터는 원시 데이터(Raw Data)와 작업 데이터(Job Data)로 나누어 수집할 수 있다. 원시 데이터는 시뮬레이션 데이터 중 파라미터 세트 이외의 정보이며, 작업 데이터는 시뮬레이션 데이터 중 파라미터 세트 정보일 수 있다.
작업 데이터는 데이터베이스(미도시)에 전달되어 가장 최근 날짜의 실행 기록, 최신 버전의 파라미터 값 집합을 추출하여 시뮬레이션 데이터 베이스(미도시)에 마스터 데이터(Master Data)형태로 저장하여 향후 갱신되는 데이터들의 기준 정보로 이용될 수 있다.
저장부(111)는 시뮬레이션 수행 또는 실행 시간 예측 장치의 구동 단위로 파라미터를 저장하거나 각 파라미터를 테이블 단위로 변환하여 개별적으로 저장할 수 있으며, 각 파라미터 정보 및 사용 횟수, 시뮬레이션 응용프로그램 사용 정보 및 사용 횟수, 실제 실행에 소모된 시간, 실행 예측 시간 등의 시뮬레이션 실행과 관련된 모든 정보를 저장할 수 있다.
통계부(112)는 저장부(111)에 저장된 데이터를 기반으로 다양한 통계를 생성할 수 있다. 예를 들어, 많이 사용된 파라미터의 순위, 많이 사용된 파라미터의 사용 횟수, 오류가 발생하였던 파라미터의 정보 등의 파라미터와 관련된 통계 및 실제 구동 시 가장 높은 속도의 시뮬레이션 응용프로그램, 실제 구동 시 가장 낮은 속도의 시뮬레이션 응용 프로그램, 예측 정확도가 높은 시뮬레이션 응용 프로그램, 예측 정확도가 낮은 시뮬레이션 응용 프로그램, 시뮬레이션 응용프로그램별 사용 횟수 등의 시뮬레이션 정보와 관련된 통계를 생성하여 제공할 수 있다.
상기 생성된 통계는 추가적인 인터페이스 등을 이용하여 빅테이터 분석에 활용될 수 있다. 이러한 분석을 통해 사용자는 시뮬레이션에 대하여 다양한 통계 자료를 확보 및 분석하여 추가적인 실험에 이용할 수 있다.
추천부(113)는 사용자가 시뮬레이션 실행 시간을 예측하기 위하여 응용프로그램을 선택하면, 응용프로그램과 관련된 정보 및 관련 파라미터의 정보를 통계부(112)에서 제공받아 사용자에게 파라미터를 추천하여 보다 이용이 편리하도록 도울 수 있다.
도 3은 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치를 프레임워크 형태로 표현한 도면이다.
도 3의 프레임워크를 구성하는 각각의 구성은 도 1 및 도 2의 구성과는 명칭이 상이하게 기재되어 있으나, 그 구성이 수행하는 역할 및 동작이 동일하다면 동일한 구성으로 판단할 수 있으며, 본 도면에서 기재하고 있는 프레임워크의 구성은 그 일 실시예로 이에 한정하지 않고 그 기능 및 동작 방법에 중점을 두도록 한다.
시뮬레이션 실행 시간 예측 장치는 계산과학공학(CSE) 시뮬레이션을 수행하는 사용자들의 편의성을 증대하기 위하여 이력 데이터 분석 서비스 프레임워크 장치(Simulation Provenance data Analytics service framework, 이하, SPA)을 제공할 수 있다.
SPA는 프레임워크 내에서 스크립트 언어를 통한 시뮬레이션 제공 및 REST API(Representational State Transfer Application Programming Interface) 서버 구축, 웹 인터페이스를 구현하기 위한 소프트웨어 플랫폼(예: Node js)과 데이터를 수집 및 관리하기 위한 데이터베이스(예: MongoDB)를 기반으로 구성될 수 있으며, 크게 데이터 매니저(Data Manager), REST API 요청 핸들러(Representational State Transfer Application Programming Interface Request Handler), 시뮬레이션 데이터베이스(Simulation DataBase), 시뮬레이션 시간 추정부(Simulation Time Estimator), 시뮬레이션 쿼리 인터페이스(Simulation Query Interface)로 구성될 수 있다.
데이터 매니저는 데이터 로더(Data Loader), 작업 데이터 추출부(Job Data Extractor), 작업 데이터 파서부(Job Data Parser)를 포함할 수 있다.
데이터 로더(Data Loader)는 시뮬레이션 이력 정보 데이터를 원시 데이터와 작업 데이터로 나누어 수집할 수 있다. 수집된 데이터는 시뮬레이션 데이터 베이스에 컬렉션 형태로 저장될 수 있다.
작업 데이터 추출부(Job Data Extractor)는 작업 데이터로부터 가장 최근 날짜, 즉 최신 버전의 파라미터 값 집합(Parameter Value Set)을 추출하여 시뮬레이션 데이터 베이스에 마스터 데이터(Master Data) 형태로 저장할 수 있다. 이렇게 저장된 마스터 데이터는 향후 갱신될 데이터들의 기준 정보로서, 최신 버전으로 유지될 수 있다.
작업 데이터 파서부(Job Data Parser)는 데이터 로더에서 추출된 각 시뮬레이션 이력 정보 데이터를 파싱하고, 시뮬레이션 데이터 베이스에 저장된 마스터 데이터를 기반으로, 하기의 표 1의 스키마(schema)에 따라 데이터의 형태로 추출하여 정제 데이터(Refined Data)로 저장시킬 수 있다.
cluster: String 시뮬레이션 프로그램이 속해 있는 계산과학공학 분야
Science App Name:String (특정 계산과학공학분야에 속해 있는) 사이언스 응용프로그램 이름
Simulation Uuid: String 시뮬레이션 고유 아이디
Job Exec Time: String 시뮬레이션 수행 시간
Job Status: String 시뮬레이션 종료 상태
parameter: Array 사이언스 응용프로그램에 따른 파라미터 리스트
values: Array 각 파라미터에 (사용자가) 할당한 실제 값
REST API 요청 핸들러는 클러스터 리스트 API(Cluster List API), 사이언스 응용 프로그램 이름 리스트 API(ScienceAppName List API), 파라미터 리스트 API(Parameter List API), 통계 결과 API(Statistics Result API), 추정 결과 API(Estimation Result API)를 포함할 수 있다.
클러스터 리스트 API(Cluster List API)는 시뮬레이션 데이터 베이스에 저장된 마스터 데이터를 기준으로 시뮬레이션 플랫폼에서 지원하는 계산과학공학 분야 리스트를 프로그래밍 언어(예: 자바 스크립트)의 형태로 제공하기 위한 API일 수 있다.
사이언스 응용 프로그램 이름 리스트 API(ScienceAppName List API)는 시뮬레이션 데이터 베이스에 저장된 마스터 데이터를 기준으로 시뮬레이션 플랫폼에서 지원하는 계산과학공학 분야에서 이용 가능한 사이언스 응용프로그램(이름)들을 프로그래밍 언어(예: 자바 스크립트)의 형태로 제공하기 위한 API일 수 있다.
파라미터 리스트 API(Parameter List API)는 시뮬레이션 데이터 베이스에 저장된 마스터 데이터를 기준으로 선택된 사이언스 응용프로그램이 가지고 있는 파라미터 리스트를 프로그래밍 언어(예: 자바 스크립트)의 형태로 제공하기 위한 API일 수 있다.
통계 결과 API(Statistics Result API)는 사용자가 입력한 정보(계산과학공학분야, 사이언스 응용프로그램)를 바탕으로, 정제 데이터에 축적된 데이터를 분석해, 시뮬레이션 플랫폼에서 가장 많이 사용된(즉, 사용자로부터 입력된) 파라미터 값 집합의 Top 10~100을 프로그래밍 언어(예: 자바 스크립트)의 형태로 제공하기 위한 API일 수 있다.
추정 결과 API(Estimation Result API)는 시뮬레이션 쿼리 인터페이스(Simulation Query Interface)에서 사용자가 입력한 시뮬레이션 실행 정보(계산과학공학분야, 사이언스 응용프로그램, 파라미터 값)를 기반으로 시뮬레이션 실행 시간 추정 장치의 시뮬레이션의 예상 시뮬레이션 수행시간을 추정하여 밀리초 단위로 제공하기 위한 API일 수 있다.
시뮬레이션 시간 추정부(Simulation Time Estimator)는 통계 컴퓨팅(Statistical Computing) 언어와 프로그램 설계용 프로그램 언어(예: Python)에 해당하는 래퍼(Wrapper), 익스큐터(Executor)로 구성될 수 있다.
래퍼(Wrapper)는 익스큐터(Executor) 즉, 통계 컴퓨팅(Statistical Computing) 언어 혹은 프로그램 설계용 프로그램 언어(예: Python)로 실행되는 시뮬레이션 툴과 소프트웨어 플랫폼(예: Node js) 기반 서버를 연결하기 위한 인터페이스일 수 있다.
래퍼(Wrapper)는 추정 결과 API(Estimation Result API)가 호출 시 자녀 프로세스(Child Process)를 서버 내에서 생성하여 사용자가 입력한 입력데이터를 리스트 형태로 변화한 다음 익스큐터(Executor) 를 호출한 뒤, 익스큐터(Executor)에 변환된 리스트 데이터를 제공하며 익스큐터(Executor)에서 반환한 값을 서버에 다시 넘겨줄 수 있다. 익스큐터(Executor)는 래퍼(Wrapper)로부터 받은 데이터를 기반으로 추정한 시뮬레이션의 수행시간을 출력으로 가지며 출력 결과는 래퍼(Wrapper)로 반환할 수 있다.
시뮬레이션 쿼리 인터페이스(Simulation Query Interface)는 작업 완료 시간 추정부(Job Completion Time Estimation), 작업 파라미터 통계부(Job Parameter Statistics), 작업 파라미터 검색부(Job Parameter Search)로 구성될 수 있다.
작업 완료 시간 추정부(Job Completion Time Estimation)는 사용자에게 특정 계산과학공학분야(Cluster), 시뮬레이션을 수행하고자 하는 사이언스 응용프로그램 이름(ScienceAppName), 응용프로그램의 파라미터 값 집합(parameter) 등의 정보를 입력 받아 추정된 시뮬레이션 종료 시간을 제공할 수 있다.
작업 파라미터 통계부(Job Parameter Statistics)는 사용자에게 계산과학공학분야(Cluster), 사이언스 응용프로그램 이름(ScienceAppName)을 입력받아 해당하는 사이언스 응용프로그램 내에서 많이 사용된 파라미터 값 집합을 분석하여 10~100 순위까지의 랭킹 결과를 제공할 수 있다.
작업 파라미터 검색부(Job Parameter Search)는 사용자가 사이언스 응용프로그램을 입력할 경우 해당하는 사이언스 응용프로그램이 요구하는 구체적인 파라미터 입력 정보를 제공할 수 있다.
도 4는 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 장치의 실행 알고리즘이다.
시뮬레이션 실행 시간 예측 장치는 시뮬레이션 파라미터 값과 런타임 데이터를 입력 값으로 입력할 수 있고, 출력 값으로는 분류모델(131) 및 회귀모델(132)의 리스트를 출력할 수 있다.
본 발명의 일 실시예에서는 분류모델(131)은 의사 결정 트리(Classification Tree, ctree) 및 k-최근접 이웃(k-Nearest Neighbor, KNN) 방법이고, 회귀모델(132)은 의사 결정 트리(Classification Tree, ctree), 랜덤 포레스트(random forest), SVM (support vector machine) 방법으로 예시되어 있으나, 각 부분에서 동작할 수 있는 기계학습 모델이라면 한정하지 않고 이용할 수 있다.
제1라인에서는 기계학습에서 사용할 수 있도록 데이터를 가공할 수 있다.
제2라인에서는 기계학습 모델에서 학습에 이용할 수 있도록 트레이닝 데이터를 생성할 수 있으며, 입력된 데이터의 일부 또는 전체를 이용하여 생성할 수 있다.
제3라인에서는 기계학습 모델을 테스트하기 위한 테스트 데이터를 생성할 수 있으며, 입력된 데이터의 일부 또는 전체를 이용하여 생성할 수 있다.
제4라인에서는 분류모델(131) 및 회귀모델(132)를 호출할 수 있다.
제5라인에서는 상기 트레이닝 데이터를 이용하여 분류모델(131) 및 회귀모델(132)을 학습할 수 있다.
제6라인에서는 상기 테스트 데이터를 이용하여 분류모델(131) 및 회귀모델(132)이 정상 동작을 수행할 수 있는지 테스트를 수행할 수 있다.
제7, 8라인에서는 분류모델(131)을 이용하여 각각의 모델별로 시뮬레이션 실행 시간을 예측하여 결과물(실행시간 예측 값, 신뢰도)을 출력할 수 있다.
제9, 10라인에서는 회귀모델(132)을 이용하여 각각의 모델별로 시뮬레이션 실행 시간을 예측하여 신뢰도가 가장 높은 결과물(실행시간 예측 값, 신뢰도)을 출력할 수 있다.
제12 내지 제18라인은 혼합모델(133)의 동작 방법으로 제12라인에서는 시간 간격에 따라 일정 간격(예: 10)의 섹션으로 분할할 수 있다.
제13라인은 모델 검증 및 테스트를 위해 시간 간격에 따라 일정 간격(예: 10)의 섹션으로 분할할 수 있다.
제14, 15, 16라인은 10개의 섹션 각각에 대해 회귀를 수행하여 실행시간 예측 및 신뢰도를 계산할 수 있다.
제17라인은 10개의 섹션의 결과를 수집하여 최종 신뢰도를 계산할 수 있으며, 제18라인은 분류모델(131)의 결과 값과 함께 회귀모델(132)의 결과와 비교하여 가장 신뢰도가 높은 모델의 결과 값을 최종 결과 값으로 출력할 수 있다.
즉, 본 발명의 일 실시예에서는 분류모델(131)에 속하여 있는 복수의 기계학습 모델의 결과 값을 최종 결과 값으로 각각 출력하는 한편, 회귀모델(132)과 혼합모델(133)의 결과 값 중 최적의 결과 값을 출력할 수 있으며, 본 발명의 예시를 기반으로 설명하면 분류모델(131)의 의사 결정 트리(Classification Tree, ctree) 및 k-최근접 이웃(k-Nearest Neighbor, KNN) 방법으로 출력한 결과값 2개와 회귀모델(132)과 혼합모델(133)의 결과 값중 최적의 결과 값 1개의 총 3개의 결과 값을 사용자에게 제공할 수 있다.
도 5는 본 발명의 일 실시예에 따른 시뮬레이션 실행 시간 예측 방법의 대표 순서도이다.
사용자가 시뮬레이션 실행 예측을 위하여 파라미터를 선정한 뒤에 시뮬레이터에 입력하면 시뮬레이션 실행 예측 장치는 입력된 입력 파라미터를 기계학습 모델에서 사용할 수 있는 형태로 전처리부(120)에서 전처리를 수행할 수 있다(S100).
전처리된 입력 파라미터는 예측부(130)에서 시뮬레이션 실행 시간을 예측한 예측값 및 신뢰도를 생성할 수 있다(S200).
예측된 실행시간 예측값 및 신뢰도를 사용자에게 제공할 수 있다(S300).
도 6은 본 발명의 일 실시예에서 S100단계를 구체화하는 순서도이다.
파라미터가 전처리부(120)에 입력되면 정렬부(121)는 파라미터의 이상치 및 중복값을 제거할 수 있다(S111).
정렬부(121)는 시뮬레이션 실행 시간의 평균값을 사전에 정의하며, 이러한 평균값과 차이가 심한 데이터를 이상치로 판단하여 삭제하는 한편, 시뮬레이션 실행 및 예측을 수행함에 있어 처리 시간이 길어지거나 잘못된 예측을 하게 되는 원인이 될 수 있는 중복 데이터를 제거하여 실행시간을 최소화하도록 처리할 수 있다.
파라미터는 정해진 범위가 아닌 각 파라미터 값에 따라 숫자 범위가 매우 넓거나 좁을 수 있으므로 이러한 범위 차이로 인하여 발생하는 노이즈를 최소화하기 위하여 파라미터의 범위를 0에서 1 사이의 값을 갖도록 정규화할 수 있다(S112).
시뮬레이션을 수행하는 응용프로그램이 동일한 경우에도 외부 요인(예: 하드웨어, 동시에 수행되는 시뮬레이션의 수 등)에 의하여 발생할 수 있는 노이즈를 제거하기 위하여 시뮬레이션 데이터베이스에 저장되어 있는 이전 시뮬레이션 실행 결과 데이터를 호출하여 평균 런타임을 계산하고, 평균 런타임으로 시뮬레이션 런타임을 변경할 수 있다(S113).
도 7은 본 발명의 일 실시예에 따른 S200단계를 구체화하는 순서도이다.
전처리된 파라미터에 대하여 예측부(130)는 분류모델(131), 회귀모델(132), 혼합모델(133)을 이용하여 시뮬레이션 실행 시간 예측을 수행하여 실행 시간 예측 값 및 그에 대한 신뢰도를 계산할 수 있다(S211).
상기 S211 단계에서, 분류모델(131), 회귀모델(132)은 각각 하나 이상의 기계학습 모델로 구성될 수 있으며, 각각의 기계학습 모델별로 시뮬레이션 실행 시간 예측 및 예측 신뢰도를 계산할 수 있다.
예측부(130)의 분류모델(131), 회귀모델(132), 혼합모델(133)에서 계산한 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 비교하여 신뢰도가 가장 높은 실행 시간 예측 값을 도출할 수 있다(S212).
상기 S212 단계에서, 예측 시간 및 예측 신뢰도를 평가하는 방법으로는 1) 분류모델(131) 내 복수의 기계학습 모델별 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 비교하여 최적의 결과를 도출하고, 회귀모델(132) 내 복수의 기계학습 모델 별 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 비교하여 최적의 결과를 도출하며, 분류모델(131)의 최적의 결과 값, 회귀모델(132)의 최적의 결과값 및 혼합모델(133)의 결과 값을 비교하여 하나의 결과를 도출하는 방법, 2) 분류모델(131)의 최적의 결과 값, 회귀모델(132)의 최적의 결과 값 및 혼합모델(133)의 결과 값을 리스트화 하여 제공하는 방법, 3) 모든 분류모델(131)의 결과값, 회귀모델(132)의 결과 값 및 혼합모델(133)의 결과 값을 리스트화하여 제공하는 방법 등 분류모델(131), 회귀모델(132), 혼합모델(133)을 모두 이용하여 비교 후에 사용자에게 결과값을 제공하는 방법이라면 어떠한 방법을 사용하더라도 제한을 두지 않는다.
도 8은 본 발명의 또 다른 일 실시예에 따른 S200단계를 구체화하는 순서도 이다.
S100 단계에서 전처리된 파라미터는 회귀모델(132)에 인가되어 시뮬레이션 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 계산할 수 있다(S221).
회귀모델(132)은 의사 결정 트리(Classification Tree, ctree), 랜덤 포레스트(random forest), SVM (support vector machine) 방법을 포함하는 복수의 기계학습 모델로 구성될 수 있으며, 복수의 기계학습 모델별로 각각 시뮬레이션 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 계산할 수 있다.
S100 단계에서 전처리된 파라미터는 혼합모델(132)에 인가되어 시뮬레이션 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 계산할 수 있다(S221).
혼합모델은 분류모델(131)과 회귀모델(132)을 혼합한 하이브리드형 혼합모델로써 시뮬레이션 응용프로그램에 대하여 분류모델(131)과 같이 과거 동일 시뮬레이션 응용프로그램의 전체 실행시간을 기설정된 개수의 하위 범위(또는 간격)로 분할한 후에 각 분할된 하위 범위(또는 간격)에 대하여 회귀모델(132)와 같이 원 실행시간과 예상 실행시간 사이의 상대 오류를 계산하고, 파라미터 세트 내의 모든 상대 오차의 평균을 구하여 최종 시뮬레이션 실행 시간 예측 값 및 신뢰도를 출력할 수 있다.
회귀모델(132) 내 복수의 기계학습 모델에서 생성한 복수의 시뮬레이션 실행 시간 예측 값 및 그에 대한 예측 신뢰도와 혼합모델(133)에서 생성한 시뮬레이션 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 비교하여 예측 신뢰도가 가장 높은 모델의 시뮬레이션 실행 시간 예측 값 및 예측 신뢰도를 결과물로 출력할 수 있다(S224).
한편, S100 단계에서 전처리된 파라미터는 분류모델(131)에 인가되어 시뮬레이션 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 계산할 수 있다(S223).
회귀모델(132)은 의사 결정 트리(ctree) 및 k-최근접 이웃(k-Nearest Neighbor, KNN) 방법을 포함하는 복수의 기계학습 모델로 구성될 수 있으며, 복수의 기계학습 모델별로 각각 시뮬레이션 실행 시간 예측 값 및 그에 대한 예측 신뢰도를 계산할 수 있다.
상기 S224 단계에서 생성된 시뮬레이션 실행 시간 예측 값 및 예측 신뢰도와 함께 S223 단계에서 생성한 복수의 생성된 시뮬레이션 실행 시간 예측 값 및 예측 신뢰도를 사용자에게 제공하도록 출력부(140)로 전송할 수 있다.
결과적으로, 도 8에서는 분류모델(131)에서 생성한 복수의 시뮬레이션 실행 시간 예측 값 및 신뢰도와 회귀모델(132) 및 혼합모델(133)에서 생성한 하나의 시뮬레이션 실행 시간 예측 값 및 신뢰도를 사용자에게 제공할 수 있다.
이상에서 본 발명에 따른 바람직한 실시예의 시뮬레이션 실행 시간 예측 장치는 실제 시뮬레이션을 수행하기 이전에 시뮬레이션을 실행하는데 필요한 시간을 추정하여 사용자에게 제공할 수 있으며, 사용자는 시뮬레이션 실행 추정 시간을 기반으로 시뮬레이션 스케줄을 조절할 수 있다.
또한, 시뮬레이션 실행 이전에 파라미터 세트별로 시뮬레이션 실행 시간을 예측할 수 있어 최적의 파라미터를 선정하여 시뮬레이션을 수행할 수 있으며, 파라미터 및 시뮬레이션 통계를 통해 적절한 파라미터를 추천받아 이용함으로써 보다 쉽게 파라미터 선정을 수행함으로써 인력 등의 시뮬레이션 수행을 위한 불필요한 자원 소모를 감소시킬 수 있다.
또한, 이전에 이용된 파라미터 및 시뮬레이션 이력 정보 및 통계 정보를 제공함에 따라 사용자는 손쉽게 파라미터 및 시뮬레이션 사용 현황 정보를 확인할 수 있으며, 빅테이터 분석을 통해 다양한 통계자료를 확보할 수 있다.
상술한 실시 예에 설명된 특징, 구조, 효과 등은 본 발명의 적어도 하나의 실시 예에 포함되며, 반드시 하나의 실시 예에만 한정되는 것은 아니다. 나아가, 각 실시 예에서 예시된 특징, 구조, 효과 등은 실시예들이 속하는 분야의 통상의 지식을 가지는 자에 의하여 다른 실시예들에 대해서도 조합 또는 변형되어 실시 가능하다.
따라서 이러한 조합과 변형에 관계된 내용들은 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다. 또한, 이상에서 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
110: 관리부
120: 전처리부
130: 예측부
140: 선택부
150: 출력부

Claims (14)

  1. 사용자가 입력한 복수의 파라미터 정보를 기반으로 시뮬레이션 실행시간을 예측하는 예측 장치에 있어서,
    시뮬레이션 수행을 위한 상기 복수의 파라미터 정보에 대해 이상치(Outlier) 및 중복을 판단하여 제거함으로써 전처리하는 전처리부;
    분류모델, 회귀모델 및 혼합모델을 하나 이상 이용하여 상기 전처리된 데이터의 시뮬레이션을 처리하는데 필요한 예측 시간 및 신뢰도를 예측하는 예측부;
    상기 예측부의 결과를 비교하여 최적의 결과를 선택하는 선택부; 및
    상기 시뮬레이션을 처리하는데 필요한 시간의 예측 결과 및 신뢰도와 함께 사용자에게 제공하는 출력부;
    를 포함하며,
    상기 전처리부는,
    상기 시뮬레이션 수행을 위한 상기 파라미터 정보를 기계학습 모델에서 사용 가능하도록 정렬하는 정렬부;
    상기 복수의 파라미터를 정규화하는 정규화부; 및
    상기 시뮬레이션의 이전 실행 기록들의 평균 런타임으로 상기 시뮬레이션의 런타임을 변경하는 런타임 변환부;
    를 포함하고,
    상기 혼합모델은 상기 분류모델과 상기 회귀모델을 함께 이용하고, 상기 분류모델 및 상기 회귀모델은 복수의 기계학습 모델로 구성되며,
    상기 전처리부는 전처리된 상기 복수의 파라미터를 이용하여 테스트 데이터를 생성하고, 상기 예측부의 동작 전에 상기 예측부가 정상적으로 동작하는지 사전에 테스트를 수행하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 시뮬레이션 정보를 관리하는 관리부를 더 포함하며,
    상기 관리부는
    상기 파라미터 정보의 사용 이력을 저장하는 저장부;
    상기 저장부의 정보를 기반으로 파라미터 추천 서비스를 제공하는 추천부; 및
    상기 저장부의 정보를 기반으로 파라미터 랭킹 서비스를 제공하는 통계부;
    를 더 포함하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 장치.
  4. 제3항에 있어서,
    상기 저장부는 상기 파라미터 정보의 사용 이력을 작업 데이터와 원시 데이터로 구분하여 저장하며,
    상기 작업 데이터는 상기 시뮬레이션에서 사용된 상기 파라미터 정보를 세트 형태로 구성하여 저장하고, 상기 원시 데이터는 상기 시뮬레이션에서 사용된 파라미터 세트 이외의 사용 시간, 사용 날짜, 사용 횟수와 같은 이력 정보를 저장하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 장치.
  5. 제1항에 있어서,
    상기 전처리된 데이터를 이용하여 상기 분류모델, 상기 회귀모델 및 상기 혼합모델을 학습하는 학습부를 더 포함하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 장치.
  6. 제1항에 있어서,
    상기 분류모델은 의사결정 트리 또는 k-NN(k-nearest neighbor) 방법 중 더 나은 신뢰도를 가지는 분류 모델을 선택하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 장치.
  7. 제1항에 있어서,
    상기 회귀모델은 의사결정 트리, 랜덤 포레스트(random forest), SVM (support vector machine) 기술을 모두 이용하여 각각의 예측 결과를 생성하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 장치.
  8. 제1항에 있어서,
    상기 선택부는,
    상기 회귀모델의 예측 시간 및 신뢰도와 상기 혼합모델의 예측 시간 및 신뢰도를 비교하여 최적의 결과를 선택하고,
    상기 출력부는 상기 선택부의 결과와 함께 상기 분류모델의 예측 시간 및 신뢰도를 함께 제공하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 장치.
  9. 사용자가 입력한 복수의 파라미터 정보를 기반으로 시뮬레이션 실행시간을 예측하는 예측 방법에 있어서,
    전처리부에서 시뮬레이션 수행을 위한 형태로 상기 복수의 파라미터 정보에 대해 이상치(Outlier) 및 중복을 판단하여 제거하는 전처리를 수행하는 단계;
    상기 전처리부에서 전처리된 상기 복수의 파라미터를 이용하여 테스트 데이터를 생성하고, 예측부의 동작 전에 상기 예측부가 정상적으로 동작하는지 사전에 테스트를 수행하는 단계;
    예측부에서 분류모델, 회귀모델 및 혼합모델 중 어느 하나 이상을 이용하여 상기 전처리된 데이터의 시뮬레이션을 처리하는데 필요한 예측 시간 및 신뢰도를 계산하는 단계;
    선택부에서 상기 계산부의 결과를 비교하여 최적의 결과를 선택하는 단계; 및
    출력부에서 상기 선택된 최적의 결과를 사용자에게 제공하는 단계;
    를 포함하며,
    상기 전처리를 수행하는 단계는,
    상기 파라미터 정보를 기계학습 모델에서 사용 가능하도록 정렬하는 단계;
    상기 복수의 파라미터를 정규화하는 단계; 및
    상기 시뮬레이션의 이전 실행 기록들의 평균 런타임으로 상기 시뮬레이션의 런타임을 변경하는 단계;
    를 포함하며,
    상기 혼합모델은 상기 분류모델과 상기 회귀모델을 함께 이용하고, 상기 분류모델 및 상기 회귀모델은 복수의 기계학습 모델로 구성되는 것을 특징으로 하는 시뮬레이션 실행시간 예측 방법.
  10. 삭제
  11. 제9항에 있어서,
    예측 시간 및 신뢰도를 계산하는 단계는,
    상기 전처리된 데이터를 이용하여 상기 분류모델, 상기 회귀모델 및 상기 혼합모델을 학습하는 단계를 더 포함하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 방법.
  12. 제9항에 있어서,
    상기 분류모델은 의사결정 트리 또는 k-NN(k-nearest neighbor) 방법 중 더 나은 신뢰도를 가지는 분류 모델을 선택하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 방법.
  13. 제9항에 있어서,
    상기 회귀모델은 의사결정 트리, 랜덤 포레스트(random forest), SVM (support vector machine) 기술을 모두 이용하여 각각의 예측 결과를 생성하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 방법.
  14. 제9항에 있어서,
    상기 결과를 선택하는 단계는,
    상기 회귀모델의 예측 시간 및 신뢰도와 상기 혼합모델의 예측 시간 및 신뢰도를 비교하여 최적의 결과를 선택하는 단계를 포함하고,
    상기 결과를 사용자에게 제공하는 단계는 상기 결과를 선택하는 단계의 결과와 함께 상기 분류모델의 예측 시간 및 신뢰도를 함께 제공하는 것을 특징으로 하는 시뮬레이션 실행시간 예측 방법.
KR1020200010327A 2019-12-17 2020-01-29 시뮬레이션 실행 시간 예측 장치 및 예측 방법 KR102304321B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190168821 2019-12-17
KR1020190168821 2019-12-17

Publications (2)

Publication Number Publication Date
KR20210077566A KR20210077566A (ko) 2021-06-25
KR102304321B1 true KR102304321B1 (ko) 2021-09-24

Family

ID=76629211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200010327A KR102304321B1 (ko) 2019-12-17 2020-01-29 시뮬레이션 실행 시간 예측 장치 및 예측 방법

Country Status (1)

Country Link
KR (1) KR102304321B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101729694B1 (ko) * 2017-01-02 2017-04-25 한국과학기술정보연구원 시뮬레이션 결과 예측 방법 및 장치
KR102015980B1 (ko) * 2018-11-14 2019-08-29 한국과학기술정보연구원 전후처리기 연계를 위한 계산과학공학 플랫폼 시뮬레이션 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101700832B1 (ko) * 2015-04-28 2017-02-01 한국과학기술정보연구원 컴퓨팅 시뮬레이션 작업 필요자원 예측 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101729694B1 (ko) * 2017-01-02 2017-04-25 한국과학기술정보연구원 시뮬레이션 결과 예측 방법 및 장치
KR102015980B1 (ko) * 2018-11-14 2019-08-29 한국과학기술정보연구원 전후처리기 연계를 위한 계산과학공학 플랫폼 시뮬레이션 시스템 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이기용 외 7명. 통계적 기계학습 기술을 이용한 시뮬레이션 결과 예측 시스템 개발. 2016년

Also Published As

Publication number Publication date
KR20210077566A (ko) 2021-06-25

Similar Documents

Publication Publication Date Title
US10983895B2 (en) System and method for data application performance management
US11632422B2 (en) Automated server workload management using machine learning
CN108052394B (zh) 基于sql语句运行时间的资源分配的方法及计算机设备
CN110297701B (zh) 数据处理作业调度方法、装置、计算机设备及存储介质
US9547529B2 (en) Finding resource bottlenecks with low-frequency sampled data
US10013656B1 (en) Methods and apparatus for analytical processing of provenance data for HPC workflow optimization
EP2413242B1 (en) System and method for test strategy optimization
US20200042659A1 (en) Autonomous surrogate model creation platform
CN116508019A (zh) 用于数据库管理系统的基于学习的工作负载资源优化
CN110610346A (zh) 智能办公自动化系统工作流实例时间预测分析
CN113610225A (zh) 质量评估模型训练方法、装置、电子设备及存储介质
US20230376800A1 (en) Predicting runtime variation in big data analytics
CN116244367A (zh) 一种基于多模型的自定义算法的可视化大数据分析平台
CN117573459A (zh) 一种故障检测方法、装置、电子设备及存储介质
US20220019918A1 (en) Machine learning feature recommendation
CN117826618B (zh) 基于冷轧机控制系统的自适应性控制方法及系统
KR102304321B1 (ko) 시뮬레이션 실행 시간 예측 장치 및 예측 방법
WO2024065776A1 (en) Method for data processing, apparatus for data processing, electronic device, and storage medium
CN118250164A (zh) 服务器集群配置参数调整方法及装置
WO2016012903A1 (en) A system for querying heterogeneous data sources and a method thereof
CN116578924A (zh) 一种用于机器学习分类的网络任务优化方法及系统
Bindal et al. Onestoptuner: an end to end architecture for jvm tuning of spark applications
KR20220120968A (ko) 데이터 분석 관리가 용이한 머신러닝 기반의 빅데이터 분석 및 성능 감시 방법
CN114254764B (zh) 基于反馈的机器学习模型搜索方法、系统、设备及介质
Коваль et al. Data collection for analytical activities using adaptive micro-service architecture

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant