симуляторы дискретных событий для C ++ - PullRequest
11 голосов
/ 22 октября 2010

В настоящее время я ищу симулятор дискретных событий, написанный для C ++. Я не нашел много в сети написано специально в ОО-стиле; Есть некоторые, но устаревшие. Некоторые другие, такие как Opnet, Omnet и ns3, слишком сложны для того, что мне нужно сделать. Кроме того, мне нужно смоделировать агентные алгоритмы, способные моделировать системы тысяч узлов.

Кто-нибудь знает что-нибудь подходящее для моих нужд?

Ответы [ 6 ]

4 голосов
/ 19 февраля 2012

У других есть хорошие прямые ответы, но я собираюсь предложить альтернативу. Если я вас правильно понимаю, вам нужна система на C ++ или такая, где вы можете публиковать события, которые срабатывают в будущем, и код запускается, когда эти события срабатывают.

У меня был такой проект, и я начал пытаться написать такую ​​систему событий на C ++, а затем быстро понял, что у меня есть лучшее решение.

Рассматривали ли вы написание вашей программы в поведенческом Verilog? Это может показаться странным при написании программного обеспечения на языке описания аппаратных средств, но симулятор Verilog - это система, основанная на событиях, а поведенческий Verilog - очень удобный способ выражения событий, времени, триггеров и т. Д. Существует бесплатный симулятор Verilog что я и использовал) называется Icarus Verilog. Если вы не используете Ubuntu или какой-либо дистрибутив Linux с Icarus, который уже находится в пакете, сборка из исходного кода проста.

3 голосов
/ 20 февраля 2012

Вы должны рассмотреть SystemC , хотя я бы также рекомендовал еще раз взглянуть на OmNet ++.

3 голосов
/ 20 февраля 2012

Я бы порекомендовал еще раз взглянуть на OmNet ++.На первый взгляд это может показаться довольно сложным, но если вы посмотрите на него более подробно, вы обнаружите, что большая часть сложности заключается в сетевом дополнении (INET Framework).Если вы не собираетесь проводить подробное сетевое моделирование, вам не нужен INET.

Использование ядра OmNet ++ не представляет особой сложности и может быть проще, чем другие подобные инструменты.взгляните на заставку .

Одна из вещей, которая делает OmNet ++ привлекательным для меня, - это его масштабируемость.Возможно запускать большие симуляции на рабочем столе.Кроме того, такую ​​же симуляцию можно масштабировать до кластера, не переписывая код.

1 голос
/ 23 февраля 2012

Мы используем SIMLIB в моей школе.Это очень быстрый, простой для понимания, объектно-ориентированный, дискретный и непрерывный симулятор.Может показаться устаревшим, но все еще поддерживается.

1 голос
/ 12 июля 2011

Существует CSIM от Mesquite Software , которая поддерживает разработку моделей на C, C ++ и Java. Тем не менее, это платно-коммерческая, AFAIK.

0 голосов
/ 16 февраля 2011

Взгляните на библиотеку GBL . Он написан на современном C ++ и даже поддерживает такие функции C ++ 0x, как семантика перемещения и лямбда-функции. Он предлагает несколько механизмов моделирования: синхронные и асинхронные обработчики событий, вытесняющие потоки и волокна. Вы можете создавать чисто поведенческие модели, модели с точностью до цикла и модели в режиме реального времени или любую их комбинацию.

...