LINUX.ORG.RU

model actors & C++

 ,


0

2

Для параллельного(concurrent) программирования разработана model actors.Какие книги почитать о методах программирования задач с помощью actors? Какие есть реализации для C++,стабильные,проверенные на реальных проектах ? На каких open source проектах можно поучиться применению actors ?


Из известного мне OpenSource-ого, что подавало признаки жизни в последнее время, в наличии имеется:

SObjectizer, но тут уже ссылочку на него дали.

C++ Actor Framework (CAF, раньше назывался libcppa). Вроде у них в блоге недавно был success story об использовании в разработке online-игры.

Theron. Насколько он использовался в реальных проектах не знаю.

Так же можно посмотреть в соответствующем разделе Wikipedia.

Еще, помнится, известный в C++ных кругах Энтони Уильямс выпускал год или два назад версию своей библиотеки just::thread Pro с поддержкой акторов. Вроде как платный. Насколько все это живо сейчас — не могу сказать.

Что до литературы, то касательно C++ ничего особо не попадалось. Помогают различные статьи и материалы про Akka и Erlang.

eao197 ★★★★★
()

Для параллельного(concurrent)

Ну и да, есть parallel programming (parallel computing) и concurrent programming (concurrent computing). Это довольно таки разные вещи, не смотря на то, что слово concurrent активно используется и там и там.

ИМХО, actor model больше подходит именно для решения проблем concurrent computing, нежели parallel computing (для последнего предназначены такие инструменты, как, например, MPI и OpenMP).

eao197 ★★★★★
()

Carl Hewitt — «Actor Model of computation» (2010).

anonymous
()

посмотри Erlang, потом возьмись за акторы на С++ и охреней от того насколько в крестах это получается убого.

anonymous
()
Ответ на: комментарий от qulinxao

ты так говоришь, будто ему есть альтернативы. не на тормозной жабе/скале с аккой же писать.

anonymous
()
Ответ на: комментарий от anonymous

Тем не менее, это субъективные впечатления или результаты каких-то замеров?

Все-таки приложение не все время тратит на обмен сообщениями между акторами. Прикладной код так же отжирает время. И в Erlang-е он должен отжирать его несколько больше.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

есть графовая бд и от 10 до 100 клиентов к ней, которые ведут очень активый обмен сообщениями с ней. эрланг-онли версия по бенчмаркам была не медленнее скалы с аккой, как только допили связь фронтэнда с бэкэндом (одна nif-ка и драйвер на С, каждый ~1000к строк кода) получили в 2.5 раза большую производительность в сравнении со скалой. а засчет OTP приблизительно во столько же раз меньшую кодовую базу.

anonymous
()
Ответ на: комментарий от anonymous

Как-то из описания появляется впечатление, что узким местом было общение между фронтом и бэком. Может если его и для Scala-версии написать на C, то получится та же самая производительность.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

не, не оно. собственно в эрланг-версии добавили способ общения между фронтом и бэком как в скала-версии. собственно поэтому и разработку скала-версии прекратили - в эрланге есть еще место для оптимизаций будущих.

anonymous
()
Ответ на: комментарий от eao197

libcaf достаточно стабильна и производительна, используем для серверного ПО. До этого был Theron, но он уже примерно год как умер - автор не исправляет баги (память течет очень заметно при большом количестве сообщений) и не отвечает на письма.

SObjectizer не использовали, так как при гуглении нигде не упоминался. Может причина в том, что изначально документация, примеры были на русском языке. Да и кто выкладывает проекты на SF? ;)

Из книг могу посоветовать Seven Concurrency Models in Seven Weeks: When Threads Unravel by Paul Butcher

anonymous
()
Ответ на: комментарий от anonymous

Это не я. „кресты“ и “убоги“ это не в моём стиле. Я писал что сплюс - это рак.

anonymous
()
Ответ на: комментарий от anonymous

SObjectizer не использовали, так как при гуглении нигде не упоминался. Может причина в том, что изначально документация, примеры были на русском языке.

Это все следствие того, что с самого своего рождения это был внутренний проект. Т.е. он был доведен до удобного для разработчиков состояния, стабилизирован и отлажен. После чего на нем каждый день клепался (и, насколько мне известно, клепается до сих пор) продакшен-код. На то, чтобы куда-то его продвигать тупо не хватало сил и времени. Только в середине 2013-го ситуация сильно поменялась, да и то, в начале 2014-го выпало где-то месяцев пять, после чего пришлось долго восстанавливать темп.

Да и кто выкладывает проекты на SF? ;)

Фанаты других ресурсов могут помочь сделать зеркало на их любимом хостинге. И сопровождать это все потом.

Мы только спасибо скажем ;)

eao197 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.