Существует ли инструмент для моделирования / симуляции параллелизма программного обеспечения? - PullRequest
8 голосов
/ 22 декабря 2009

Существует ли хороший инструмент, который может графически моделировать схему параллелизма / блокировки приложений и может имитировать некоторые аспекты?

Я знаю, что сети Петри могут использоваться для этого более или менее, но я не знаю хорошего инструмента с графическим интерфейсом, который может проектировать и моделировать.

Можно ли использовать UML для таких целей?

Любые хорошие ссылки очень ценятся.

Ответы [ 7 ]

4 голосов
/ 26 декабря 2009

Диаграммы активности UML можно выразить в виде сетей Петри (например, см. Этот документ ). К сожалению, я не знаю хороших промышленных инструментов для моделирования сетей Петри или Диаграммы Деятельности (но есть много академических проектов, которые вы можете легко найти).

Вы уверены, что хотите смоделировать свою модель (под симуляцией я подразумеваю, что вы действительно хотите сидеть и смотреть, как выполняется ваша сеть Перти)? Обычно этот тип анализа применим для небольших и простых алгоритмов. В реальной ситуации вы, вероятно, хотели бы выполнить проверку модели вашего алгоритма, а не симуляцию. Я бы порекомендовал вам проверить SPIN (используется многими компаниями, например, Siemens). Также у меня есть положительный опыт работы с Alloy и Prism . Но если вы сосредоточены на проверке параллельных алгоритмов, я бы посоветовал вам сначала рассмотреть SPIN.

Редактировать: я проверил некоторые инструменты для симуляции и могу посоветовать посмотреть

1) http://sourceforge.net/projects/visual-petri/

2) http://www.renew.de/

3) http://www.winpesim.de/index.html

2 голосов
/ 27 декабря 2009

Я сомневаюсь, что это то, что вы ищете, но я добавлю два моих цента:

В моем университете, в нашем классе по параллельным программным системам, мы используем инструмент под названием Labeled Transition System Analyzer (LTSA) . На самом деле это язык, который вы можете использовать для моделирования поведения системы.

«Код» превращается в диаграмму состояний и таблицу переходов.

2 голосов
/ 22 декабря 2009

SPIN - это популярный инструмент для проверки распределенных систем, но я думаю, что это только командная строка. Но на веб-странице Spin есть ссылка на тесно связанный инструмент GUI под названием GOAL

1 голос
/ 01 августа 2011

Вы можете выбрать Petri Net Sim , чтобы имитировать обычные / синхронизированные / цветные Петринецы. Он поставляется с приятным графическим интерфейсом, который отображает выполнение Петри Нет в реальном времени.

1 голос
/ 26 декабря 2009

Прошло много времени с тех пор, как я смотрел на это, но звучит так, будто Птолемей подойдет.

1 голос
/ 22 декабря 2009

Вот интерактивный Java-апплет , который может спроектировать и запустить сеть Петри.

0 голосов

Попробуйте использовать инструмент параллелизма LTSA. Java программа. (С пометкой Transition System Analyzer), для имитации программ. Вы можете скачать его с:

http://www.doc.ic.ac.uk/ltsa/

Но вы должны быть терпеливы при его использовании, может потребоваться пара часов, чтобы научиться его использовать. Вероятно, лучше всего работает при моделировании программ Java.

И конечно, всегда полезно использовать UML-модели:)

...