KR20120060993A - 효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템 - Google Patents

효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템 Download PDF

Info

Publication number
KR20120060993A
KR20120060993A KR1020100106430A KR20100106430A KR20120060993A KR 20120060993 A KR20120060993 A KR 20120060993A KR 1020100106430 A KR1020100106430 A KR 1020100106430A KR 20100106430 A KR20100106430 A KR 20100106430A KR 20120060993 A KR20120060993 A KR 20120060993A
Authority
KR
South Korea
Prior art keywords
simulation
processes
cores
scenarios
output data
Prior art date
Application number
KR1020100106430A
Other languages
English (en)
Other versions
KR101158637B1 (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 KR1020100106430A priority Critical patent/KR101158637B1/ko
Publication of KR20120060993A publication Critical patent/KR20120060993A/ko
Application granted granted Critical
Publication of KR101158637B1 publication Critical patent/KR101158637B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

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

Abstract

실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템을 공개한다. 실험 틀은 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터를 이용하여 시뮬레이션 모델을 실행하는 시뮬레이션 시스템에 있어서, 시뮬레이션 모델에 대한 복수개의 프로세스를 생성하고, 생성된 복수개의 프로세스를 복수개 코어에 개별적으로 할당하는 프로세스 관리자와 시뮬레이션 모델에 대한 입력 데이터의 변수를 가변하여 다양한 조합의 복수개의 시나리오를 생성하여 복수개의 프로세스로 인가하는 시나리오 관리자를 구비하는 생성부, 복수개의 시나리오 각각에 응답하여 복수개의 프로세스에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 하나 또는 그 이상의 데이터 수집기를 구비하는 변환부, 및 입력 데이터에 대한 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 적용부를 구비한다. 따라서 복수개의 코어 자원을 최대한 사용하여 시뮬레이션의 성능을 향상시키고, 시뮬레이션의 신뢰도를 증진 시킬 수 있다.

Description

효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템{Experimental frame for efficient simulation data collection, and simulation method and system using it}
본 발명은 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템에 관한 것으로 특히 멀티 코어 환경에서 효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템에 관한 것이다.
모델링 및 시뮬레이션(Modeling & Simulation: M&S) 공학은 수많은 산업 분야에서 핵심적인 역할을 맡아 제품 개발 및 수요 예측 등을 통하여 비용을 절감시키며 유체 역학 시뮬레이션과 전투 실험과 같은 다양한 학문 분야에서도 연구비용을 감소하는 효과를 가져왔다. 이러한 시뮬레이션 소프트웨어는 모의 대상을 실세계를 최대한 모사하기 위하여 연속 시간 모델링, 이산 시간 모델링, 이산 사건 모델링 등의 방법들을 사용하여 모의 대상을 모의하였다. 하지만, 실세계를 반영한 시뮬레이션 모델들은 복잡하여 표현하기 어려우며, 표현하더라도 시뮬레이션 수행 시간이 길어 시뮬레이션 소프트웨어를 활용하기 어렵다. 또한, 시뮬레이션 소프트웨어를 사용하여 데이터를 수집하는 경우 몬테 카를로스 시뮬레이션과 같은 기법을 사용하여 시뮬레이션 데이터를 수집하면 전체 시뮬레이션 소요 시간은 시뮬레이션 소프트웨어의 수행 시간의 n배가 된다. 이와 같은 이유로 대부분의 시뮬레이션 모델들은 실세계 모델들을 추상화하여 모델링하여 시뮬레이션을 수행한다. 그러나 추상화된 모델링을 수행함으로써 시뮬레이션의 수행 시간을 감소하지만 추상화로 인한 시뮬레이션 결과의 부정확성은 증가하는 단점이 존재한다. 이러한 모의 대상의 수준에 따른 시뮬레이션 수행시간과 시뮬레이션의 정확성 문제를 해결하기 위하여 분산 처리 시스템을 이용한 시뮬레이션과 멀티코어 시스템을 활용한 시뮬레이션이 있다.
분산 처리 시스템은 오랜 시간동안 연구되어 온 학문으로 여러 개의 컴퓨터 시스템들이 네트워크를 통해 서로 연결되어 마치 하나의 시스템처럼 동작하는 시스템이다. 분산 시뮬레이션 시스템은 미들웨어를 통하여 모델 상호간의 메시지 전송 및 시뮬레이션 시간 동기화를 위한 인터페이스가 필요하고, 이들을 처리하며, 이러한 특징으로 인하여 확장성과 모듈성을 가진다. 하지만, 분산 처리 시스템은 오랫동안 연구되어왔음에도 불구하고 하나의 시뮬레이션 모델을 분산된 시스템에서 동작하게 만들기 위한 분산 알고리즘을 개발하기 어려워 분산 시스템에서 하나의 시뮬레이션 모델을 실행시키기 어렵고, 개별 모델들을 각각 분산 시스템의 서브시스템에 할당하여도 네트워크의 성능이 컴퓨터의 성능에 따라가지 못해서 시뮬레이션 수행 시간이 증가하는 문제점을 가진다.
이에 비해 멀티코어 시스템을 활용한 시뮬레이션은 최근 멀티코어 시스템의 보급으로 일반 개인이 사용하는 컴퓨터에서도 멀티코어 시스템이 보편화되고 있으며, 네트워크를 통한 분산처리가 아닌 CPU 내부에서 다수의 CPU코어에서 동작을 수행함으로써 네트워크의 부하 없이 분산 시뮬레이션을 단일 환경에서 수행할 수 있게 함으로써 시뮬레이션의 성능을 증가시킬 수 있다. 하지만, 기존의 분산 시스템과 마찬가지로 하나의 시뮬레이션 모델을 다수의 코어에 사상시키기 어려워, 보편화되고 있는 수행 환경에 반해 시뮬레이션 소프트웨어는 멀티코어 시스템을 거의 지원하고 있지 않다. 또한 기존에 개발된 시뮬레이션 소프트웨어들은 대부분 싱글코어 기반으로 설계 및 구현되었기 때문에 시뮬레이션 소프트웨어를 변경하여 멀티코어 기반으로 변경시키기 어렵다.
본 발명의 목적은 멀티 코어 환경에서 효율적으로 시뮬레이션 정보 수집할 수 있는 실험 틀을 제공하는데 있다.
본 발명의 다른 목적은 상기 목적을 달성하기 위한 시뮬레이션 시스템을 제공하는데 있다.
본 발명의 또 다른 목적은 상기 목적을 달성하기 위한 시뮬레이션 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 실험틀은 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터를 이용하여 시뮬레이션 모델을 실행하는 시뮬레이션 시스템에 있어서, 상기 시뮬레이션 모델에 대한 복수개의 프로세스를 생성하고, 생성된 상기 복수개의 프로세스를 상기 복수개 코어에 개별적으로 할당하는 프로세스 관리자와 상기 시뮬레이션 모델에 대한 입력 데이터의 변수를 가변하여 다양한 조합의 복수개의 시나리오를 생성하여 상기 복수개의 프로세스로 인가하는 시나리오 관리자를 구비하는 생성부, 상기 복수개의 시나리오 각각에 응답하여 상기 복수개의 프로세스에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 하나 또는 그 이상의 데이터 수집기를 구비하는 변환부, 및 상기 입력 데이터에 대한 상기 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 상기 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 적용부를 구비한다.
상기 목적을 달성하기 위한 시나리오 관리자는 생성된 상기 복수개의 시나리오에 따라 시뮬레이션 실행 횟수를 관리하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 프로세스 관리자는 상기 시뮬레이션 모델이 다른 시뮬레이션 소프트웨어와 연동되지 않는 단독형 시뮬레이션 소프트웨어인 경우에, 상기 단독형 시뮬레이션 소프트웨어 하나에 대한 복수개의 상기 프로세스를 생성하여, 상기 복수개의 프로세스를 상기 복수개의 코어 각각에 할당하고, 상기 시나리오 관리자는 상기 복수개의 코어 각각에 할당된 상기 프로세스로 상기 복수개의 시나리오 중 서로 다른 시나리오를 인가하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 프로세스 관리자는 상기 시뮬레이션 모델이 복수개의 시뮬레이션 소프트웨어를 연동하여 동작하는 연동형 시뮬레이션 소프트웨어인 경우에, 상기 복수개의 시뮬레이션 소프트웨어에 대응하는 복수개의 상기 프로세스를 생성하고, 상기 복수개의 프로세스를 상기 복수개의 코어 각각에 코어에 할당하고, 상기 시나리오 관리자는 상기 복수개의 시나리오 중 상기 복수개의 코어 할당된 상기 프로세스에 각각에 대응하는 시나리오를 인가하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 프로세스 관리자는 상기 사용자에 의해 지정되는 우선순위와 상기 복수개의 프로세스 각각의 부하를 판별하고, 판별된 우선순위와 부하에 따라 상기 복수개의 프로세스를 상기 복수개의 코어에 할당하는 것을 특징으로 한다.
상기 다른 목적을 달성하기 위한 시뮬레이션 시스템은 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터, 상기 컴퓨터상에서 실행되는 시뮬레이션 모델, 및 상기 시뮬레이션 모델에 대한 복수개의 프로세스를 생성하고, 생성된 복수개의 프로세스를 상기 복수개 코어에 개별적으로 할당하는 프로세스 관리자와 상기 시뮬레이션 모델에 대한 입력 데이터의 변수를 가변하여 다양한 조합의 복수개의 시나리오를 생성하여 상기 복수개의 프로세스 각각으로 상기 복수개의 시나리오 중 서로 다른 시나리오를 인가하는 시나리오 관리자를 구비하는 생성부, 상기 복수개의 시나리오 각각에 응답하여 상기 시뮬레이션 모델에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 하나 또는 그 이상의 데이터 수집기를 구비하는 변환부, 및 상기 입력 데이터에 대한 상기 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 상기 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 적용부를 구비하는 실험 틀을 구비한다.
상기 또 다른 목적을 달성하기 위한 시뮬레이션 방법은 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터를 이용하여, 서로 연동하여 동작하는 복수개의 시뮬레이션 소프트웨어를 구비하는 시뮬레이션 모델을 실행하는 시뮬레이션 시스템에 있어서, 상기 복수개의 시뮬레이션 소프트웨어에 대응하여 복수개의 프로세스를 생성하고, 생성된 상기 복수개의 프로세스를 상기 복수개 코어에 개별적으로 할당하는 단계, 상기 복수개의 코어에 할당된 상기 복수개의 프로세스 각각에 대응하는 시나리오를 인가하는 단계, 상기 시나리오 각각에 응답하여 상기 시뮬레이션 모델에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 단계, 및 상기 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 상기 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 단계를 구비한다.
상기 또 다른 목적을 달성하기 위한 시뮬레이션 방법은 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터를 이용하여, 서로 연동하여 동작하는 복수개의 시뮬레이션 소프트웨어를 구비하는 시뮬레이션 모델을 실행하는 시뮬레이션 시스템에 있어서, 상기 복수개의 시뮬레이션 소프트웨어에 대응하여 복수개의 프로세스를 생성하고, 생성된 상기 복수개의 프로세스를 상기 복수개 코어에 개별적으로 할당하는 단계, 상기 복수개의 코어에 할당된 상기 프로세스에 각각에 대한 상기 시뮬레이션 소프트웨어에 대응하는 시나리오를 인가하는 단계, 상기 시나리오 각각에 응답하여 상기 시뮬레이션 모델에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 단계, 및 상기 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 상기 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 단계를 구비한다.
따라서, 본 발명의 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템은 시뮬레이션 모델이 단독형 시뮬레이션 소프트웨어인지, 연동형 시뮬레이션 소프트웨어인지에 무관하게 동일한 실험 틀을 사용할 수 있으므로, 시뮬레이션을 용이하게 하며, 복수개의 코어 자원을 최대한 사용하여 시뮬레이션의 성능을 향상시키고(시뮬레이션 수행 시간을 단축시키고), 시뮬레이션 소프트웨어의 반복 실행 시 시뮬레이션 소프트웨어 프로세스 각각을 운영체제에서 제거하여 운용하는 시스템에서 발생할 수 있는 메모리 누수 현상을 제거하여 시뮬레이션의 신뢰도를 증진 시킬 수 있다.
도1 은 본 발명에 따른 실험 틀의 일예를 나타낸다.
도2 는 본 발명의 일예에 따른 실험 틀을 사용하여 단독형 시뮬레이션 수행 시 소요되는 시간을 종래 기술에 대비하여 나타내는 도면이다.
도3 은 본 발명의 일예에 따른 실험 틀을 사용하여 연동형 시뮬레이션 수행 시 소요되는 시간을 수동 연동 실험에 대비하여 나타내는 도면이다.
도4 은 본 발명의 일예에 따른 실험 틀을 코어 지정 및 코어 미지정 조건에서 각각 사용하여 연동형 시뮬레이션 수행 시 소요되는 시간을 나타내는 도면이다.
이하, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 수 있다.
또한, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 본 발명을 가장 적절하게 표현할 수 있도록 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다.
도1 은 본 발명에 따른 실험 틀의 일예를 나타낸다.
실험 틀(Experimental Frame)은 B. P. Zeigler에 의해서 처음으로 제시된 개념으로서, 시뮬레이션 시스템에 대한 입력 데이터를 생성하여 입력하고, 시뮬레이션 시스템에서 출력되는 출력 데이터를 인가받아 사용자가 이해하기 용이한 형태의 데이터로 변환하여 주는 양식을 일컫는다. 즉 실험 틀은 시뮬레이션 시스템에 대해 사용자가 입력 데이터를 일일이 인가하고 출력 데이터를 분석하기 위한 시간과 노력과 비용을 줄이고, 잘못된 입력 데이터의 입력 및 출력 데이터에 대한 분석 실수를 줄여 정형적으로 시뮬레이션 과정을 제어하여 시뮬레이션 시스템의 신뢰도를 높이기 위한 개념 틀이다.
도1 에 도시된 실험 틀(100)은 생성부(110)와 적용부(130), 그리고 변환부(120)를 구비한다. 생성부(110)는 실험 대상 시스템에 주어질 입력 데이터를 생성하는 역할을 담당한다. 예를 들어 생성부(110)는 실험 대상 시스템에 대하여 실험할 입력 데이터를 생성하여 시뮬레이션 시스템에 입력 데이터를 인가한다. 이때 생성부(110)는 입력 데이터에서 각종 변수를 가변하여 인가할 수 있다. 변환부(120)는 입력 데이터에 응답하여 시뮬레이션 시스템 생성한 출력 신호를 분석할 수 있도록 출력 데이터로 변경시킨다. 적용부(130)는 생성부(110)에서 입력한 입력 데이터에 따라 변환부(120)에서 받은 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하거나 시뮬레이션 결과를 정리한다. 즉, 시뮬레이션 시스템이 입력 데이터에 따라 생성한 출력 데이터가 사용자의 요구사항을 만족하는 지를 검사하거나 시뮬레이션 결과를 정리하여 사용자가 원하는 형태로 가공하는 모델이다.
그리고 생성부(110)는 시뮬레이션 모델의 프로세스를 생성하는 프로세스 관리자(111)와 생성된 시뮬레이션 모델에 입력할 입력 값의 시퀀스를 관리하는 시나리오 관리자(112)를 구비한다. 생성부(110) 모델의 프로세스 관리자(111)는 멀티코어(multi-core)를 활용하여 시뮬레이션 모델을 실행시킨다. 프로세스 관리자(111)는 사용자가 정의한 설정 값에 따라 시뮬레이션 모델을 실행 환경의 코어에 맵핑시켜 시뮬레이션을 관리한다. 시나리오 관리자(112)는 몬테 카를로스 시뮬레이션과 같이 특정 변수 값의 변화에 따른 시뮬레이션을 수행하기 위하여 현재 시뮬레이션의 시나리오를 관리하며 전체적인 시뮬레이션 횟수를 관리한다. 여기서 수행되는 실행 시나리오 관리자(112)는 몬테 카를로스 시뮬레이션과 같이 값을 변경시키며 시뮬레이션을 수행시킬 수 있도록 현재 진행되고 있는 시뮬레이션의 시나리오 값과 전체 시뮬레이션의 시나리오 값을 관리한다.
변환부(120)는 시뮬레이션 모델로부터 생성된 출력 데이터를 인가받기 위한 하나 또는 그 이상의 데이터 수집기(121 ~ 12n)를 가진다. 본 발명에 따른 실험 틀(100)은 단독형 시뮬레이션 소프트웨어와 연동형 시뮬레이션 소프트웨어에 모두 적용이 가능하도록 복수개의 데이터 수집기(121 ~ 12n)를 가질 수 있다. 즉 복수의 시뮬레이션 소프트웨어가 동시에 실행되는 연동형 시뮬레이션인 경우, 각 시뮬레이션 소프트웨어의 출력 데이터를 처리하기 위하여 변환부(120)는 시뮬레이션 소프트웨어들 각각의 고유 출력 포맷을 처리할 수 있도록 복수개의 데이터 수집기(121 ~ 12n)를 가질 수 있다.
적용부(130)는 정보를 수집한 후 이를 처리하는 후처리 과정을 담당한다. 즉, 엑셀을 사용한 그래프 생성 혹은 생성된 출력 값들의 평균 값 ??산과 같은 통계적 처리, 실행 시간의 측정, 모의하는 대상 시스템의 동작 확인 등, 시뮬레이션 모델이 만족해야 하는 조건이나 시뮬레이션이 종료된 이후에 처리해야 하는 과정을 처리한다.
본 발명에 따른 정보 수집을 위한 실험 틀(100)은 다른 시뮬레이터와 연동없이 홀로 동작하는 단독형 시뮬레이션 소프트웨어와 HLA/RTI(High Level Architecture/Runtime Infrastructure)와 같은 미들웨어를 사용하여 타 시뮬레이션 소프트웨어와 연동하여 시뮬레이션을 수행하는 연동형 시뮬레이션 소프트웨어에 모두 적용할 수 있다.
도2 는 본 발명의 일예에 따른 실험 틀을 사용하여 단독형 시뮬레이션 수행 시 소요되는 시간을 종래 기술에 대비하여 나타내는 도면이다.
단독형 시뮬레이션 소프트웨어의 입력 데이터의 변수값을 변경하면서 반복적으로 수행하는 경우, 본 발명의 실험 틀(100)은 프로세스 관리자(111)와 시나리오 관리자(112)를 사용하여 전체 시뮬레이션 시간을 단축시킬 수 있다. 즉, 동일한 시뮬레이션 소프트웨어에 대하여 시나리오 관리자(112)가 서로 다른 시나리오 데이터를 주고, 프로세스 관리자(111)에서 시뮬레이션 소프트웨어를 복수 개를 수행함으로써 전체 시뮬레이션 시간을 단축시킬 수 있다. 여기서 서로 다른 시나리오 데이터는 다양한 조건에서 시뮬레이션을 수행하기 위해, 시나리오 관리자(112)가 변수를 가변하여 생성하는 각기 다른 조합의 입력 데이터를 나타낸다.
단독형 시뮬레이션 소프트웨어의 수행 시 시뮬레이션 정보 수집을 위한 실험 틀(100)의 효과를 측정하기 위하여 이차원으로 구성된 모델에서 수상함(水上艦)의 생존율을 측정하는 단독형 시뮬레이션을 이용하였다.
도2 에서는 실험 틀(100)을 사용하여 단독형 시뮬레이션을 20회 수행하였을 경우 시뮬레이션의 종료 시까지 걸린 시간을 측정한 결과이다.
도2 에서 확인할 수 있듯이, 코어를 4개를 사용하여 시뮬레이션을 수행한 경우를 1 개의 코어를 사용하여 20회의 시뮬레이션을 수행한 경우와 비교하면 대략 3.34배 정도 시뮬레이션 수행시간을 단축되었음을 확인할 수 있다. 이상적으로 총 4개의 코어를 사용하여 시뮬레이션을 수행하는 경우 4배의 성능향상을 볼 수 있어야 하지만, 실제 시뮬레이션 소프트웨어를 각 코어에 할당하는 등 시뮬레이션 초기화를 수행하는 시간으로 인하여 이상적인 성능 향상이 발생하지는 않는다.
도3 은 본 발명의 일예에 따른 실험 틀을 사용하여 연동형 시뮬레이션 수행 시 소요되는 시간을 수동 연동 실험에 대비하여 나타내는 도면이다.
연동형 시뮬레이션에서 시뮬레이션 정보를 수집하기 위한 실험 틀(100)은 프로세스 관리자(111)가 다수의 시뮬레이션 소프트웨어를 수행할 때 각 시뮬레이션 소프트웨어를 멀티 코어의 서로 다른 코어에 배치시키며, 전체 시뮬레이션을 시나리오 관리자(112)가 관리함으로써 시뮬레이션의 수행시간을 감소시킨다. 연동형 시뮬레이션에서 시뮬레이션 정보 수집을 위한 실험 틀(100)의 효과를 측정하기 위하여 수상함의 생존율을 측정하는 연동형 시뮬레이션 소프트웨어를 사용하였다.
도3 에서는 사용자가 수동으로 시나리오와 시뮬레이션에서 사용될 랜덤 시드값을 입력하여 처음 시뮬레이션을 수행하였을 때부터 시뮬레이션의 종료될 때까지의 시간을 측정하고, 이와 반대로 실험 틀(100)을 사용한 경우 코어를 지정하지 않고, 시뮬레이션을 수행하여 각 시뮬레이션의 시간을 측정한 것이다. 도3 에서 시나리오 1번의 시드 2의 경우와 시나리오 2번의 시드 3번의 경우 수동으로 실험 한 것이 실험 틀(100)을 사용한 것보다 좋게 나온 것을 확인할 수 있다. 실험 틀(100)을 사용한 연동형 시뮬레이션은 전체 시뮬레이션에서 시뮬레이션 소프트웨어가 종료되는 시간과 초기화하는 시간을 프로세스 관리자(111)가 관리하는데 각 시뮬레이션에 따라 그 종료 시점과 초기화 시점이 불분명하기 때문에 일정시간 기다려야 한다. 이에 반해 사용자가 수동으로 시나리오를 입력하는 경우에는 종료 시점 혹은 초기화 시점에 즉시 시뮬레이션을 수행할 수 있기 때문에 몇몇 경우 시뮬레이션을 빨리 끝낼 수 있었다. 그러나 사용자가 수동으로 시나리오를 입력하는 시간을 고려한다면, 본 발명의 실험 틀(100)이 더욱 효율적이다.
도4 은 본 발명의 일예에 따른 실험 틀을 코어 지정 및 코어 미지정 조건에서 각각 사용하여 연동형 시뮬레이션 수행 시 소요되는 시간을 나타내는 도면이다.
그림 4는 실험 틀(100)을 사용하여 연동형 시뮬레이션을 수행하는 경우 프로세스 관리자(111)에서 연동형 시뮬레이션에서 사용되는 각 시뮬레이션 소프트웨어를 다양한 경우를 고려하여 코어에 개별적으로 수행하도록 할당한 경우와 프로세스 관리자(111)를 사용하지 않고, 운영 체제에서 자체적으로 프로세스를 관리하는 경우와 비교하였다. 도4 에서 EF 자동화(코어 미지정)로 표시된 그래프는 프로세스 관리자(111)가 코어를 개별적으로 할당한 경우를 나타내며, EF 자동화(코어 미지정) Opt1 과 EF 자동화(코어 미지정) Opt2 로 표시된 그래프는 각각 운영 체제에서 자체적으로 프로세스를 코어에 할당하는 경우를 나타낸다. 운영 체제가 자체적으로 프로세스를 코어에 할당하는 경우에는 사용자의 명령 또는 운영 체제의 상태에 따라 할당되는 코어가 변경될 수 있으며, 도4 에서는 예로서 프로세스가 할당된 코어가 각기 다른 2가지 경우를 도시하였다.
도4 를 참조하면, 연동형 시뮬레이션에서 코어의 개수 이상의 시뮬레이션 소프트웨어를 실행시켜야 하기 때문에 시뮬레이션 수행 중 부하가 큰 프로세스를 개별 코어에 할당하여 시뮬레이션을 수행하였을 경우, 그렇지 않은 경우와 비교하여 시뮬레이션 성능이 향상됨을 확인할 수 있다. 또한 실제 부하가 크지 않은 프로세스를 개별 프로세스에 할당한 경우에는 몇몇 경우에서 시뮬레이션 성능이 저하되는 것을 확인할 수 있었다.
본 발명에서 설명하는 특정 실행들은 일실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.

Claims (15)

  1. 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터를 이용하여 시뮬레이션 모델을 실행하는 시뮬레이션 시스템에 있어서,
    상기 시뮬레이션 모델에 대한 복수개의 프로세스를 생성하고, 생성된 상기 복수개의 프로세스를 상기 복수개 코어에 개별적으로 할당하는 프로세스 관리자와 상기 시뮬레이션 모델에 대한 입력 데이터의 변수를 가변하여 다양한 조합의 복수개의 시나리오를 생성하여 상기 복수개의 프로세스로 인가하는 시나리오 관리자를 구비하는 생성부;
    상기 복수개의 시나리오 각각에 응답하여 상기 복수개의 프로세스에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 하나 또는 그 이상의 데이터 수집기를 구비하는 변환부; 및
    상기 입력 데이터에 대한 상기 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 상기 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 적용부를 구비하는 실험 틀.
  2. 제1 항에 있어서, 상기 시나리오 관리자는
    생성된 상기 복수개의 시나리오에 따라 시뮬레이션 실행 횟수를 관리하는 것을 특징으로 하는 실험 틀.
  3. 제2 항에 있어서, 상기 프로세스 관리자는
    상기 시뮬레이션 모델이 다른 시뮬레이션 소프트웨어와 연동되지 않는 단독형 시뮬레이션 소프트웨어인 경우에, 상기 단독형 시뮬레이션 소프트웨어 하나에 대한 복수개의 상기 프로세스를 생성하여, 상기 복수개의 프로세스를 상기 복수개의 코어 각각에 할당하고,
    상기 시나리오 관리자는 상기 복수개의 코어 각각에 할당된 상기 프로세스로 상기 복수개의 시나리오 중 서로 다른 시나리오를 인가하는 것을 특징으로 하는 실험 틀.
  4. 제2 항에 있어서, 상기 프로세스 관리자는
    상기 시뮬레이션 모델이 복수개의 시뮬레이션 소프트웨어를 연동하여 동작하는 연동형 시뮬레이션 소프트웨어인 경우에, 상기 복수개의 시뮬레이션 소프트웨어에 대응하는 복수개의 상기 프로세스를 생성하고, 상기 복수개의 프로세스를 상기 복수개의 코어 각각에 코어에 할당하고,
    상기 시나리오 관리자는 상기 복수개의 시나리오 중 상기 복수개의 코어 할당된 상기 프로세스에 각각에 대응하는 시나리오를 인가하는 것을 특징으로 하는 실험 틀.
  5. 제4 항에 있어서, 상기 프로세스 관리자는
    상기 사용자에 의해 지정되는 우선순위와 상기 복수개의 프로세스 각각의 부하를 판별하고, 판별된 우선순위와 부하에 따라 상기 복수개의 프로세스를 상기 복수개의 코어에 할당하는 것을 특징으로 하는 실험 틀.
  6. 제3 항 또는 제4 항 중 어느 한에 있어서, 상기 하나 또는 그 이상의 데이터 수집기는
    상기 복수개의 코어 각각에 할당된 상기 프로세스에서 하나 또는 그 이상의 포맷으로 인가되는 출력을 미리 지정된 포맷의 상기 출력 데이터로 변환하는 것을 특징으로 하는 실험 틀.
  7. 제1 항에 있어서, 상기 적용부는
    상기 출력 데이터가 미리 지정된 조건 범위 내의 값인지 판별하고, 상기 조건 범위 내의 값이면, 상기 출력 데이터에 대해 통계적 처리를 수행하고, 상기 사용자가 지정하는 형태로 변환하는 것을 특징으로 하는 실험 틀.
  8. 제1 항 내지 제7 항 중 어느 한 항에 있어서, 상기 복수개의 코어를 갖는 컴퓨터에서 실행시키기 위한 상기 실험 틀을 저장하는 기록 매체.
  9. 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터;
    상기 컴퓨터상에서 실행되는 시뮬레이션 모델; 및
    상기 시뮬레이션 모델에 대한 복수개의 프로세스를 생성하고, 생성된 복수개의 프로세스를 상기 복수개 코어에 개별적으로 할당하는 프로세스 관리자와 상기 시뮬레이션 모델에 대한 입력 데이터의 변수를 가변하여 다양한 조합의 복수개의 시나리오를 생성하여 상기 복수개의 프로세스 각각으로 상기 복수개의 시나리오 중 서로 다른 시나리오를 인가하는 시나리오 관리자를 구비하는 생성부, 상기 복수개의 시나리오 각각에 응답하여 상기 시뮬레이션 모델에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 하나 또는 그 이상의 데이터 수집기를 구비하는 변환부, 및 상기 입력 데이터에 대한 상기 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 상기 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 적용부를 구비하는 실험 틀을 구비하는 시뮬레이션 시스템.
  10. 제9 항에 있어서, 상기 프로세스 관리자는
    상기 시뮬레이션 모델이 다른 시뮬레이션 소프트웨어와 연동되지 않는 단독형 시뮬레이션 소프트웨어인 경우에, 상기 단독형 시뮬레이션 소프트웨어 하나에 대한 복수개의 상기 프로세스를 생성하여, 상기 복수개의 프로세스를 상기 복수개의 코어 각각에 할당하고,
    상기 시나리오 관리자는 상기 복수개의 코어 각각에 할당된 상기 프로세스로 상기 복수개의 시나리오 중 서로 다른 시나리오를 인가하는 것을 특징으로 하는 시뮬레이션 시스템.
  11. 제9 항에 있어서, 상기 프로세스 관리자는
    상기 시뮬레이션 모델이 복수개의 시뮬레이션 소프트웨어를 연동하여 동작하는 연동형 시뮬레이션 소프트웨어인 경우에, 상기 복수개의 시뮬레이션 소프트웨어에 대응하는 복수개의 상기 프로세스를 생성하고, 상기 복수개의 프로세스를 상기 복수개의 코어 각각에 코어에 할당하고,
    상기 시나리오 관리자는 상기 복수개의 시나리오 중 상기 복수개의 코어 할당된 상기 프로세스에 각각에 대응하는 시나리오를 인가하는 것을 특징으로 하는 시뮬레이션 시스템.
  12. 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터를 이용하여 단독으로 동작하는 시뮬레이션 소프트웨어를 구비하는 시뮬레이션 모델을 실행하는 시뮬레이션 시스템에 있어서,
    상기 시뮬레이션 소프트웨어를 대한 복수개의 프로세스를 생성하고, 생성된 상기 복수개의 프로세스를 상기 복수개 코어에 개별적으로 할당하는 단계;
    상기 복수개의 코어 각각에 할당된 상기 프로세스로 입력 데이터의 변수가 서로 다른 복수개의 시나리오를 인가하는 단계;
    상기 복수개의 시나리오에 응답하여 상기 복수개의 프로세스에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 단계; 및
    상기 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 상기 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 단계를 구비하는 시뮬레이션 방법.
  13. 개별적으로 연산을 수행하는 복수개의 코어를 갖는 컴퓨터를 이용하여, 서로 연동하여 동작하는 복수개의 시뮬레이션 소프트웨어를 구비하는 시뮬레이션 모델을 실행하는 시뮬레이션 시스템에 있어서,
    상기 복수개의 시뮬레이션 소프트웨어에 대응하여 복수개의 프로세스를 생성하고, 생성된 상기 복수개의 프로세스를 상기 복수개 코어에 개별적으로 할당하는 단계;
    상기 복수개의 코어에 할당된 상기 복수개의 프로세스 각각에 대응하는 시나리오를 인가하는 단계;
    상기 시나리오 각각에 응답하여 상기 시뮬레이션 모델에서 생성된 출력을 인가받아 분석이 용이한 형태로 변환하여 출력 데이터를 출력하는 단계; 및
    상기 출력 데이터가 사용자가 원하는 조건을 만족하였는지를 확인하고, 상기 사용자가 시뮬레이션 결과를 용이하게 파악할 수 있는 형태의 데이터로 생성하는 단계를 구비하는 시뮬레이션 방법.
  14. 제13 항에 있어서, 상기 개별적으로 할당하는 단계는
    상기 사용자가 지정하는 상기 복수개의 프로세스에 대한 상기 복수개의 코어의 우선순위와 상기 복수개의 프로세스 각각의 부하를 판별하고, 판별된 우선순위와 부하에 따라 상기 복수개의 코어를 할당하는 것을 특징으로 하는 시뮬레이션 방법.
  15. 제13 항에 있어서, 상기 출력 데이터를 출력하는 단계는
    상기 복수개의 프로세스에서 하나 또는 그 이상의 포맷으로 인가되는 출력을 미리 지정된 포맷의 상기 출력 데이터로 변환하는 것을 특징으로 하는 시뮬레이션 방법.
KR1020100106430A 2010-10-29 2010-10-29 효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템 KR101158637B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100106430A KR101158637B1 (ko) 2010-10-29 2010-10-29 효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100106430A KR101158637B1 (ko) 2010-10-29 2010-10-29 효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20120060993A true KR20120060993A (ko) 2012-06-12
KR101158637B1 KR101158637B1 (ko) 2012-06-26

Family

ID=46611686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100106430A KR101158637B1 (ko) 2010-10-29 2010-10-29 효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101158637B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200076323A (ko) * 2018-12-19 2020-06-29 한국전자통신연구원 디지털 트윈용 다중 모델 병렬 실행 자동화 및 검증을 위한 방법 및 장치
KR102392131B1 (ko) * 2021-10-14 2022-04-28 고려대학교 산학협력단 먹이그물 네트워크 분석을 통한 생태계 예측 평가 시스템 및 이의 동작 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101695238B1 (ko) 2016-06-29 2017-01-11 한국과학기술정보연구원 다중 컴퓨팅 자원을 이용한 작업 스케줄링 시스템 및 방법
KR20220081880A (ko) 2020-12-09 2022-06-16 (주) 아인스에스엔씨 디지털트윈을 이용한 이산사건 시스템 실시간 분석 및 실시간 동작 가시화 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100340049B1 (ko) * 1999-09-16 2002-06-12 오길록 시나리오를 이용한 칠 프로그램 시험 방법
KR100542412B1 (ko) * 2003-12-16 2006-01-11 한국전자통신연구원 차세대네트워크 시험 장치의 다중 연결 시험 시나리오작성 방법
KR101073816B1 (ko) * 2008-12-18 2011-10-14 주식회사 코아로직 시나리오 기반의 데이터베이스 시험 자동화 방법 및 시스템
KR101029332B1 (ko) * 2009-03-27 2011-04-13 한국전자통신연구원 모바일 소프트웨어 테스트 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200076323A (ko) * 2018-12-19 2020-06-29 한국전자통신연구원 디지털 트윈용 다중 모델 병렬 실행 자동화 및 검증을 위한 방법 및 장치
KR102392131B1 (ko) * 2021-10-14 2022-04-28 고려대학교 산학협력단 먹이그물 네트워크 분석을 통한 생태계 예측 평가 시스템 및 이의 동작 방법

Also Published As

Publication number Publication date
KR101158637B1 (ko) 2012-06-26

Similar Documents

Publication Publication Date Title
US20190370420A1 (en) Systems and methods for automatically realizing models for co-simulation
US10108763B2 (en) Method and simulation arrangement for simulating an automated industrial plant
CN112819169B (zh) 量子控制脉冲生成方法、装置、设备及存储介质
US10331548B2 (en) Method and computer system for compiling and testing a control program
CN103927219A (zh) 可重构专用处理器核的周期精确的仿真模型及其硬件架构
JP6600011B2 (ja) エミュレーションのための効率的波形生成
KR101158637B1 (ko) 효율적 시뮬레이션 정보 수집을 위한 실험 틀 및 이를 이용한 시뮬레이션 방법 및 시스템
KR20130122853A (ko) 원자력발전소 훈련용 시뮬레이터의 실시간 중대사고 모의 시스템 및 그 방법
JP2019507405A (ja) 統合システム用の共同シミュレーションを構成する方法
US20110218795A1 (en) Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores
KR20140021389A (ko) 모델 제작 및 실행 분리형 시뮬레이션 장치 및 그 방법
Saad et al. Modelling and Simulation of Construction Cyber-Physical Systems
KR20140042126A (ko) 발전소 dcs 로직 다이어그램 시뮬레이션장치 및 그 방법
US20170212509A1 (en) Method for configuring a tester equipped for testing a control unit
KR101830582B1 (ko) 전력계통 해석을 위한 주파수조정용 bess의 모의해석 프로그램
US9239893B2 (en) Method and process computer for computation of the state variables of a hybrid differential-algebraic process model
CN113987840B (zh) 基于Modelica的模型拆分方法、设备和存储介质
CN115935870A (zh) 功耗分析方法、装置、电子设备、存储介质
CN109800506B (zh) 一种飞行器的性能评估方法及***
US20200175121A1 (en) System and method for predicting analytical abnormality in computational fluid dynamics analysis
Uddin et al. Analytical-based high-level simulation of the microthreaded many-core architectures
Moreno et al. Dynamic pipeline mapping (dpm)
Wang et al. A simulation system based on ogre and physx for flexible aircraft assembly
KR20190120548A (ko) 배전 그리드의 특성을 고려한 에너지 저장 장치의 분석 장치 및 방법
Zhang et al. Towards ML-based Performance Estimation of Embedded Software: A RISC-V Case Study

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150526

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170106

Year of fee payment: 5

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20180123

Year of fee payment: 6

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20180525

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200120

Year of fee payment: 8

R401 Registration of restoration
R401 Registration of restoration