2012-06-25 7 views
2

извините, если все это похоже на nooby и неясно, но я в настоящее время изучаю Netlogo для моделирования коллективного поведения на основе агентов и хотел бы услышать некоторые советы по выбору альтернативного программного обеспечения. Главное, что я очень хотел бы воспользоваться PyCuda, поскольку, насколько я понимаю, он позволяет проводить параллельные вычисления. Однако это значит, что мне еще нужно написать числовой скрипт в какой-то другой среде и реализовать визуальные эффекты в еще одном?ABM под python с расширенной визуализацией

Если это так, мои вопросы:

  1. Что числовая пакет я должен использовать? PyEvolve, DEAP или что-то еще? Похоже, что PyEvolve больше не разрабатывается, и DEAP - это просто оболочка устаревшего (?) EAP.

  2. Графический мудрый, я нахожу mayavi2 и vtk перспективным. Проблема в том, что ни один из числовых пакетов, по-видимому, не связан с ними. Нет ли лучшей альтернативы, кроме как сохранить числовой вывод в файл данных и подавать их, скажем, в mayavi2?

  3. Другой вариант - генерировать данные через Netlogo и передавать их в графический пакет из (2). Есть ли недостаток в этом?

Благодарим вас за то, что вы пролили свет на эту путаницу.

+0

Вы посмотрели на 'scipy' или' sage' - они оба работают с 'pymatplotlib' –

+0

Требуется ли параллельное вычисление? –

+0

Не обязательно. Однако, я думаю, это сильно повысило бы эффективность моделирования. –

ответ

1

Вы почти наверняка не хотите использовать CUDA, если у вас не возникает значительная проблема с производительностью. В общем случае CUDA лучше всего используется для решения задач линейной алгебры с плавающей запятой. Если вы ищете фреймворк, построенный вокруг параллельных вычислений, я бы посмотрел на OpenCL, который мог бы использовать графические процессоры, если это необходимо.

С точки зрения визуализации я настоятельно рекомендую настроить таргетинг на определенный формат обмена данными, а затем позволяя некоторым другим программам сделать этот рендеринг для вас. Единственная причина, по которой я буду использовать что-то вроде VTK, - это то, что по какой-то причине вам нужно больше контролировать процесс визуализации или искать решение в реальном времени.

+0

Спасибо! Это чудесно полезно. Можете ли вы, однако, уточнить для меня, что вы подразумеваете под «конкретным форматом обмена данными»? Будет ли TVTK таким примером, а Mayavi - программой, которая это делает? –

0

Возможно, лучшим выбором для визуализации было бы использовать промежуточный формат и делать это в другой программе. Но для производительности я бы предпочел настроить JVM для кластера и запустить NetLogo на нем. Я еще не пробовал, но я серьезно думаю о том, чтобы попробовать NetLogo в кластере стиля Beowulf.

BTW, есть платформа ABM под названием Repast, то есть said to have Python interface, если вы планируете реализовать свой код в Python.

+0

Можете ли вы дать мне пример python для «промежуточного формата» и «другой программы», в которой его можно запустить? –

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

  • Нет связанных вопросов^_^