오픈소스 Discrete Event Simulation engine 어떤 걸 많이 쓰나요?

imyejin의 이미지

일단 구글에서 검색해서 뜨는 거는 위키피디아에 있는 Tortuga 라는 건데요

산업공학이나 도시공학과 같은 데서 업무 프로세스나 생산 라인 혹은 교통 정책 관련 시뮬레이션 등을 할 때 이런 종류의 시뮬레이션 엔진을 흔히 사용한다더군요. CS 과목 같은 데서 예제로 다루기에도 재미있을 것 같아서 찾아보고 있는데 오픈 소스로 된 많이 쓰는 거라든지 아니면 구조가 간단해서 구현이 대강 어떻게 돌아가나 알아보기 쉬운 그런 프로젝트를 알고 계시면 댓글 달아 주심 감사하겠습니다.

poonamu의 이미지

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에 포함해서 사용하고 있습니다.

imyejin의 이미지

하드웨어 설계쪽이야 워낙에 특화된 것들이 많이 있을텐데요, 그것 말고 비즈니스(생산라인이나 업무 프로세스)나 그런 다른 범용적인 문제를 다룰 수 있는 일반적인 discrete event simulation 프레임웍으로 혹시 오픈 소스 엔진 같은 것이 쓰이나 궁금해서 그렇습니다.

산업공학이나 시스템공학 쪽에서 쓰는 Rockwell ARENA 등에 들어가는 SIMAN 엔진이나 그런 거 말이에요.

그런데 하드웨어 시뮬레이션 툴로만 알려져 있는 것들도 다른 일반적인 DE 시뮬레이션 용도로 사용이 가능한가보군요. 좋은 정보 감사합니다.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

sblade의 이미지

http://simpy.sourceforge.net/

구조가 간단하고 꽤 깔끔하게 구조적으로 만들어져 있고, python 이라 entity 구현이 무엇보다 쉽습니다.
단점 아닌 단점은, python 기반이라 multi-processor 를 활용하지 못한다는 건데, 어마어마한 수의 entity 들을 장시간 처리하는게 아니라면 별 문제 없다고 봅니다.

dorado2의 이미지


약간 다른 쪽일 수 있는데 ns도 보시면 도움이 되지 않을까 합니다.

Discrete event network simulator인데, 요즘 ns3가 활발히 개발중입니다.
ns2만 써봤지만, ns3에 이르러서는 전체 구조를 완전히 뜯어고치고 있습니다.

www.nsnam.org

core나 simulator 서브디렉토리쪽 보시면 좀 도움이 될지도요.

kyeongsoo의 이미지

위에 ns 얘기가 나와서 저도 하나 올립니다.

ns처럼 network simulation에 다소 특화된 감이 없지는 않지만 유럽쪽에서는 (독일을 중심으로) OMNeT++을 많이 활용하고 있습니다.

저도 미국에서 회사연구소에서 일할 때에는 돈 걱정없이 OPNET이라는 상용패키지를 쓰다가 2001년에 학교연구소로 자리를 옮긴 뒤에 어떤 오픈소스 툴을 사용할까를 놓고 근 반년을 고민하고 각종 툴들을 비교분석한 뒤에 OMNeT++로 정착했고, 이후로 지금까지 8년째 사용하고 있습니다.

http://www.omnetpp.org/

제 개인적인 소견으로는 ns에 비해서 network 이외의 분야에도 활용하기가 쉽다고 여겨집니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.