문제

의문:

  • 컴퓨터 시뮬레이션은 일반적으로 자원 집약적 인 방법은 무엇입니까?

예를 들어, simul8: 개별 이벤트 시뮬레이션 패키지 - 왜이 계산 집약적 인 이유, 어떤 요인 (계산)이 이에 기여하는 요인은 무엇입니까?

도움이 되었습니까?

해결책

불연속 이벤트 시뮬레이션은 매우 광범위한 용어입니다. 레모네이드 스탠드, 다국적 비즈니스 거래 및 물류, 복잡한 소프트웨어 시스템, 아직 존재하지 않는 새로운 컴퓨터 아키텍처에 이르기까지 모든 것을 시뮬레이션 할 수 있습니다.

내 분야 (컴퓨터 아키텍처)에서 예제를 사용하지만 계산 비용이 많이 드는 방법은 상당히 일반화해야합니다. 여러 번, 당신은 분산 시스템을 시뮬레이션하려고합니다. 분산 시스템을 시뮬레이션하려고합니다. 분산 시스템을 시뮬레이션하려고합니다.이 시스템은 고유 한 단순한 제어 로직을 가진 다소 독립적 인 에이전트가 매우 복잡한 역학을 구현합니다. 컴퓨팅 시스템의 경우, 시뮬레이터의 결합 된 작업 세트는 최소한 모든 구성 구성 요소의 아키텍처, 미세 구조 및 메모리 상태만큼 크다. 각 구성 요소가 완만하게 복잡한 경우, 이는 시뮬레이션의 각 타임 스텝을 완료 할 때 시간적 및 공간적 위치가 크게 줄어 듭니다. 각 작업 세트 전체를 실행해야함으로써 암시 된 가난한 캐시 사용률은 각 타임 스텝이 성능에 1 ~ 2 배나 영향을 줄 수 있습니다. 이 패턴은 여러 타임 스텝에 대해 각 구성 요소를 독립적으로 실행하고 결과를 주기적으로 병합하는 것이 문제가되므로 시스템이 더 복잡하고 결합 될수록 피할 수 없습니다.

또한 구성 요소 시뮬레이션보다 상당한 추가 공간과 시간 간접비를 도입하는 모든 종류의 통계를 유지하려고합니다.

요컨대, 하한은 시뮬레이션의 모든 구성 요소의 복잡성의 합입니다. 실제로, 구성 요소가 많거나, 구성 요소가 더 복잡하거나 실질적으로 있으면 많은 비 효율성이 소개됩니다. 다른 시뮬레이션이 실행되는 호스트 머신과 상당한 양의 계측이있는 경우.

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

다른 팁

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

예를 들어, 재무 시뮬레이션은 일반적으로 a로 실행됩니다 Monte-Carlo 시뮬레이션 수천 개의 달리기가 있습니다.

시뮬레이션에는 일반적으로 모델에 대한 10,000 개가 넘는 평가가 포함될 수 있으며, 과거에는 슈퍼 컴퓨터를 사용하여 실용적이었습니다. -http://www.vertex42.com/excelarticles/mc/montecarlosimulation.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top