Я новичок в Scala и Akka и рассматриваю возможность их использования для решения проблемы. Предположим, у меня есть вычислительная машина (которая ищет решение). Я хотел бы распараллелить этот поиск как между процессорами, так и между узлами, предоставив каждому процессору на каждом узле собственный экземпляр механизма.
Входные данные движка состоят из небольшого количества скалярных входных данных и очень большой хеш-таблицы. Каждый экземпляр движка будет использовать свои скалярные входные данные для внесения небольшого локального изменения в хеш-таблицу, вычисления качества, а затем отбрасывать свои изменения (их не нужно фиксировать/просматривать каким-либо другим экземпляром движка). Значение качества будет возвращено какому-либо координатору, который выберет один из результатов.
Я кое-что читал о STM TransactionalMap как о средстве совместного использования состояния. Это кажется идеальным, но я не вижу полных примеров использования его в качестве общего состояния.
Вопросы:
- Подходит ли для решения этой проблемы модель актер/стимул?
- Можете ли вы показать конкретный пример того, как распределять общее состояние? (это Ref[TransactionalMap[,]] как сообщение?
- Есть ли что-то другое в распределении общего состояния внутри узла, а не между разными узлами?
Пытливые умы хотят знать,
Аллан