오픈소스 Discrete Event Simulation engine 어떤 걸 많이 쓰나요?
글쓴이: imyejin / 작성시간: 목, 2009/05/21 - 5:54오전
일단 구글에서 검색해서 뜨는 거는 위키피디아에 있는 Tortuga 라는 건데요
산업공학이나 도시공학과 같은 데서 업무 프로세스나 생산 라인 혹은 교통 정책 관련 시뮬레이션 등을 할 때 이런 종류의 시뮬레이션 엔진을 흔히 사용한다더군요. CS 과목 같은 데서 예제로 다루기에도 재미있을 것 같아서 찾아보고 있는데 오픈 소스로 된 많이 쓰는 거라든지 아니면 구조가 간단해서 구현이 대강 어떻게 돌아가나 알아보기 쉬운 그런 프로젝트를 알고 계시면 댓글 달아 주심 감사하겠습니다.
Forums:
HW/SW Co-simulation에
HW/SW Co-simulation에 사용하는 SystemC가 있습니다.
C++로 만든 simulation engine 이구요.
물론 오픈 소스 입니다.
hardware simulation을 위한 data type 및 simulation engine을 포함하고 있습니다.
hardware simulation을 위한 것이기 때문에 Discrete Event Simulation이 가능 합니다.
http://www.systemc.org/ 에서 소스를 다운받을 수 있습니다.
UC Berkeley 에서 만든 Ptolemy Project도 있습니다.
지금은 Ptolemy Classic, Ptolemy II 두가지가 있습니다.
이것도 HW/SW Co-design을 위해 만든 simulation engine 입니다.
http://ptolemy.eecs.berkeley.edu/ptolemyII/index.htm 에 보시면 Discrete Event Modeling이 가능하다고 나와 있습니다.
서울대 하순회 교수님이 만든 PeaCE도 있습니다.
이것도 HW/SW Co-design을 위해 만든 것으로 Ptolemy 기반으로 만든 simulation engine 입니다.
http://peace.snu.ac.kr/research/peace/index.php
세가지 모두 computer architecture 분야에서 사용하는 simulation engine이구요.
Ptolemy나 PeaCE는 복잡하고 연구용으로 만든 engine이구요.
SystemC는 실제 embedded system용 SoC architecture 용으로도 사용되고 있습니다.
SoC용 EAD 업체에서 더 빠른 SystemC simulation engine을 만들어서 EAD에 포함해서 사용하고 있습니다.
하드웨어 설계쪽이야
하드웨어 설계쪽이야 워낙에 특화된 것들이 많이 있을텐데요, 그것 말고 비즈니스(생산라인이나 업무 프로세스)나 그런 다른 범용적인 문제를 다룰 수 있는 일반적인 discrete event simulation 프레임웍으로 혹시 오픈 소스 엔진 같은 것이 쓰이나 궁금해서 그렇습니다.
산업공학이나 시스템공학 쪽에서 쓰는 Rockwell ARENA 등에 들어가는 SIMAN 엔진이나 그런 거 말이에요.
그런데 하드웨어 시뮬레이션 툴로만 알려져 있는 것들도 다른 일반적인 DE 시뮬레이션 용도로 사용이 가능한가보군요. 좋은 정보 감사합니다.
임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin
SimPy
http://simpy.sourceforge.net/
구조가 간단하고 꽤 깔끔하게 구조적으로 만들어져 있고, python 이라 entity 구현이 무엇보다 쉽습니다.
단점 아닌 단점은, python 기반이라 multi-processor 를 활용하지 못한다는 건데, 어마어마한 수의 entity 들을 장시간 처리하는게 아니라면 별 문제 없다고 봅니다.
약간 다른 쪽일 수
약간 다른 쪽일 수 있는데 ns도 보시면 도움이 되지 않을까 합니다.
Discrete event network simulator인데, 요즘 ns3가 활발히 개발중입니다.
ns2만 써봤지만, ns3에 이르러서는 전체 구조를 완전히 뜯어고치고 있습니다.
www.nsnam.org
core나 simulator 서브디렉토리쪽 보시면 좀 도움이 될지도요.
OMNeT++
위에 ns 얘기가 나와서 저도 하나 올립니다.
ns처럼 network simulation에 다소 특화된 감이 없지는 않지만 유럽쪽에서는 (독일을 중심으로) OMNeT++을 많이 활용하고 있습니다.
저도 미국에서 회사연구소에서 일할 때에는 돈 걱정없이 OPNET이라는 상용패키지를 쓰다가 2001년에 학교연구소로 자리를 옮긴 뒤에 어떤 오픈소스 툴을 사용할까를 놓고 근 반년을 고민하고 각종 툴들을 비교분석한 뒤에 OMNeT++로 정착했고, 이후로 지금까지 8년째 사용하고 있습니다.
http://www.omnetpp.org/
제 개인적인 소견으로는 ns에 비해서 network 이외의 분야에도 활용하기가 쉽다고 여겨집니다.
댓글 달기