def __init__( self, *, name: str, modules: List[Module], dependent_modules: List[Module], dependent_modules_nonregular: List[Module], replicas: int = 1, state_type: StateType = True, hooks: Optional[List[Callable]] = None, options={}, ): self.name = name self._modules = modules self._state_type = state_type self.dependencies = set([m.group for m in dependent_modules]) self.module_dependencies = set([m.name for m in dependent_modules]) self.dependencies_nonregular = set( [m.group for m in dependent_modules_nonregular]) self.module_dependencies_nonregular = set( [m.name for m in dependent_modules_nonregular]) self.pool = ParallelActorPool([ Actor.options(**options).remote( name=name, index=i if replicas > 1 else None, state_type=state_type, modules=modules, ) for i in range(replicas) ]) self._logger = None self._hooks = hooks
async def test_should_run(self, runs, actors, ray_context): pool = ParallelActorPool([ MultiplyActor.remote() for _ in range(actors) ]) await asyncio.gather(*[ pool.run(data=0, delay=0.0001) for _ in range(runs) ])
async def test_should_process_correctly(self, score, runs, factor, actors, ray_context): pool = ParallelActorPool([ MultiplyActor.remote(factor) for _ in range(actors) ]) results = await asyncio.gather(*[ pool.run(data=1, delay=0.0001) for _ in range(runs) ]) assert sum(results) == score
def __init__( self, *, name: str, modules: List[Module], dependent_modules: List[Module], dependent_modules_nonregular: List[Module], replicas: int = 1, state_type: StateType = True, options={}, ): self.name = name self._modules = modules self._state_type = state_type self.dependencies = set([m.group for m in dependent_modules]) self.module_dependencies = set([m.name for m in dependent_modules]) self.dependencies_nonregular = set( [m.group for m in dependent_modules_nonregular]) self.module_dependencies_nonregular = set( [m.name for m in dependent_modules_nonregular]) self.pool = ParallelActorPool([ Actor.options(**options).remote(name, state_type, modules) for _ in range(replicas) ])
async def test_can_create(self, actors, ray_context): pool = ParallelActorPool([ MultiplyActor.remote() for _ in range(actors) ]) assert pool.replicas == actors