Soy nuevo en Scala y Akka y estoy considerando usarlo para resolver un problema. Supongamos que tengo un motor de cálculo (que busca una solución). Me gustaría paralelizar esa búsqueda tanto en cpus como en nodos, dando a cada cpu de cada nodo su propia instancia de motor.scala/akka/stm design for large shared state?
Las entradas del motor consisten en un pequeño número de entradas escalares y una tabla hash muy grande. Cada instancia de motor usaría sus entradas escalares para realizar un pequeño cambio local a la tabla de hash, calcular una bondad y luego descartar sus cambios (no es necesario que sean confirmados/vistos por ninguna otra instancia de motor). El valor de bondad se devolvería a algún coordinador que elegiría entre los resultados.
Estaba leyendo un poco sobre el TransactionalMap de STM como un vehículo compartido. Esto parece ideal, pero realmente no veo ningún ejemplo completo que lo use como estado compartido.
Preguntas:
- ¿El modelo de actor/STM parece adecuada para este problema?
- ¿Puede mostrar un ejemplo específico de cómo distribuir el estado compartido? (Es más grande Ref [TransactionalMap [,]] como un mensaje?
- ¿Hay algo diferente acerca de la distribución del estado compartido dentro de un nodo en contraposición a través de los diferentes nodos?
mentes curiosas quieren saber,
Allan