Является ли OpenCL хорошим для агентного моделирования? - PullRequest
10 голосов
/ 30 июля 2010

Я изучаю Scala с целью написания агентных симуляций с использованием параллелизма между актерами. В настоящее время я очень мало знаю об OpenCL, и перед тем, как погрузиться, кто-нибудь скажет мне, будет ли он подходящим / совместимым с агентными симуляциями?

Если это так, то ScalaCL выглядит очень привлекательно.

Ответы [ 2 ]

4 голосов
/ 30 июля 2010

Вам следует использовать OpenCL, если у вас есть тяжелые вычисления, которые можно распараллелить, и вы хотите использовать свою графическую карту для этого (или ее части).
У него немного странная модель вычислений (по крайней мере, если вы знаете просто «общее» программирование, а не то, как работает GPU или у вас хороший опыт в некоторых областях математики), и довольно много ограничений, что / как вы можете делать.

Так что я думаю, что вряд ли это то, что вы ищете.

Актеры имеют мало общего с OpenCL, я думаю, единственная общность этих двух заключается в том, что они оба решают проблему параллельных вычислений, но с совершенно другой точки зрения. ИМО, модель актера гораздо проще понять и, вероятно, также использовать (но это всего лишь предположение, поскольку у меня пока не было никаких дел с OpenCL).

Если вы хотите внедрить систему, основанную на агентах, тогда актеры могут быть весьма полезны. Вы могли бы взглянуть на стандартных акторов scala или альтернативных реализаций:

  • Akka , также предлагающий множество дополнительных функций поверх актеров + красивые документы с некоторыми учебными пособиями
  • Актеры в Скалаз
2 голосов
/ 30 июля 2010

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

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

...