2009-03-17 6 views

답변

7

이산 이벤트 시뮬레이션은 매우 광범위한 용어이다; 레모네이드 스탠드부터 다국적 기업의 트랜잭션 및 물류, 복잡한 소프트웨어 시스템, 아직 존재하지 않는 (그리고 시뮬레이션이 실행되는 기계보다 훨씬 복잡하고 고급 인) 소설 컴퓨터 아키텍처에 이르기까지 무엇이든 시뮬레이션 할 수 있습니다.

필자는 자신의 분야 (컴퓨터 아키텍처)에서 예제를 사용 하겠지만, 계산 상 비싼 방법은 꽤 일반적으로 일반화되어야한다. 많은 경우, 매우 복잡한 동적을 구현하는 더 단순한 제어 로직을 가진 많은 독립적 인 에이전트 인 분산 시스템을 시뮬레이션하려고합니다. 컴퓨팅 시스템의 경우, 시뮬레이터의 결합 된 작업 세트는 적어도 결합 된 모든 구성 요소의 아키텍처, 마이크로 아키텍처 및 메모리 상태만큼 큽니다. 각 구성 요소가 조금씩 복잡해지면 이는 시뮬레이션의 각 시간 단계를 완료 할 때 시간적 공간적 지역성이 크게 감소 함을 의미합니다. 각 타임 스텝마다 전체 작업 세트를 실행해야 함을 암시하는 빈약 한 캐시 활용은 성능에 1-2 배 정도 영향을 줄 수 있습니다. 이 패턴은 여러 타임 스텝에 대해 개별적으로 각 구성 요소를 실행하고 주기적으로 결과를 병합하는 것이 문제가되며 더 복잡하고 결합 된 시스템이므로 불가피합니다.

또한 구성 요소 시뮬레이션보다 많은 추가 공간과 시간 오버 헤드를 유발하는 모든 종류의 통계를 유지하고자 할 때가 있습니다.

간단히 말해서, 하한은 시뮬레이션의 모든 구성 요소의 복잡성을 합한 것입니다. 실제로 많은 구성 요소가있는 경우, 구성 요소가 더 복잡하거나 실질적으로 이 다른 경우이 시뮬레이션을 실행하는 호스트 시스템과 다르며 계측에 많은 양의 비효율적 인 요소가있는 경우 많은 비 효율성이 도입됩니다.

마지막으로 한 가지 : 이산 이벤트 시뮬레이션은 종종 항목을 큐에 배치하고 포인터 모음을 쫓는 방식으로 요청을 배치 할 큐를 찾는 작업입니다. 이러한 작업은 병렬화가 어렵고 문제가 더 복잡합니다. 그러나 앞서 언급했듯이 "개별 이벤트 시뮬레이션"이라는 용어는 사소한 것에서 불가능한 것까지 모두 포함 할 수 있으므로 일반적인 패턴을 추출하는 것은 어렵습니다.

1

컴퓨터 시뮬레이션은 일반적으로 여러 시나리오를 빠르게 실행하고 비교합니다.

예를 들어 재무 시뮬레이션은 일반적으로 수천 회 실행되는 monte-carlo simulation으로 실행됩니다.

시뮬레이션은 일반적으로 모델의 10,000 평가, 과거에만 실제 사용하는 슈퍼 컴퓨터했다 작업을 포함 할 수있다. - http://www.vertex42.com/ExcelArticles/mc/MonteCarloSimulation.html

관련 문제