Soy nuevo en Scala en general y en Actores en particular y mi problema es muy básico, los recursos en línea que he encontrado no lo cubren.Usar actores para explotar núcleos
que tienen un algoritmo intensivo de la CPU, fácilmente parallelized que se ejecuta en una máquina de núcleo-n (no sé n). ¿Cómo implemento esto en Actores para que todos los núcleos disponibles resuelvan el problema?
La primera manera pensé era romper sencilla el problema en m piezas (donde m es algún número medio como 10000) y cree m Actores, uno para cada pieza, dé a cada Actor su poco pedazo y déjelos ir.
De alguna manera, esto me pareció ineficiente. Zillions de Actores simplemente dando vueltas, esperando algo de amor por CPU, contextos de cambio sin sentido ...
Entonces pensé, hacer un número más pequeño de Actores, y alimentar a cada uno varias piezas. El problema era que no hay ninguna razón para esperar que las piezas tengan el mismo tamaño, por lo que un núcleo podría atascarse, con muchas de sus tareas todavía en cola, mientras que otros núcleos están inactivos.
Estuve discutiendo con un supervisor que sabía qué actores estaban ocupados, y finalmente me di cuenta de que tenía que ser un problema resuelto. Debe haber un patrón estándar (tal vez incluso una biblioteca estándar) para tratar este problema tan genérico. ¿Alguna sugerencia?