2010-05-04 2 views
4

Я использовал Concurrent Pascal, инструмент, который помогает отлаживать параллельные алгоритмы, потому что, когда он запускает ваш код, он рандомизирует, какой поток нужно менять на каждом возможном этапе, пробуя как можно больше путей.Есть ли JVM, предназначенный для отладки параллельного программного обеспечения?

Есть ли JVM, который может это сделать?

ответ

2

Взгляните на Java Pathfinder (от НАСА, тем не менее — и это бесплатно). Я думаю, что он должен делать то, что вам нужно почти из коробки, то есть пробовать разные переходы (может потребоваться какая-то сборка).

Конечно, вам все равно нужно указать свойство проверки на ваши данные, которые вас интересуют, как инвариант. В противном случае, по умолчанию, вероятно, вы только скажете, был ли тупик. Взгляните на раздел «Исследуйте альтернативы исполнения».

2

Там нет коммерческих JVMs я знаю, что это сделать, но я предлагаю вам взглянуть на такие инструменты, как Contest, которые пытаются помочь вам в вашей проблемной области:

ConTest on developerWorks

ConTest on research site

В целом, поскольку большинство коммерческих JVM полагаются на ОС для планирования потоков, для JVM-пользователей это не является естественным. Там может быть что-то там для зеленых нитей версий Jikes-RVM (которые могут быть более старыми).

Смежные вопросы