Дизайн scala / akka / stm для большого общего состояния?

Я новичок в Scala и Akka и подумываю использовать их для решения проблемы. Предположим, у меня есть вычислительная машина (которая ищет решение). Я хотел бы распараллелить этот поиск как по процессорам, так и по узлам, предоставив каждому процессору на каждом узле свой собственный экземпляр механизма.

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

Я читал кое-что о STM TransactionalMap как средстве для общего состояния. Это кажется идеальным, но на самом деле я не вижу полных примеров, использующих его в качестве общего состояния.

Вопросы:

  • Подходит ли модель актор / stm для этой проблемы?
  • Вы можете показать конкретный пример этого. как раздать расшаренное состояние? (это Ref [TransactionalMap [,]] как сообщение?
  • Есть ли что-нибудь другое в распределении общего состояния внутри узла по сравнению с другими узлами?

Inquiring Minds Want to Know,

Allan

6
задан AllanC 2 August 2011 в 14:44
поделиться