def testNSchedulersNWorkers(self, *_): calc_cpu_cnt = functools.partial(lambda: 4) self.assertEqual( LocalDistributedCluster._calc_scheduler_worker_n_process( None, None, None, calc_cpu_count=calc_cpu_cnt), (2, 4)) # scheduler and worker needs at least 2 processes self.assertEqual( LocalDistributedCluster._calc_scheduler_worker_n_process( 1, None, None, calc_cpu_count=calc_cpu_cnt), (2, 2)) self.assertEqual( LocalDistributedCluster._calc_scheduler_worker_n_process( 3, None, None, calc_cpu_count=calc_cpu_cnt), (2, 2)) self.assertEqual( LocalDistributedCluster._calc_scheduler_worker_n_process( 5, None, None, calc_cpu_count=calc_cpu_cnt), (2, 3)) self.assertEqual( LocalDistributedCluster._calc_scheduler_worker_n_process( None, 1, None, calc_cpu_count=calc_cpu_cnt), (1, 4)) self.assertEqual( LocalDistributedCluster._calc_scheduler_worker_n_process( None, 3, None, calc_cpu_count=calc_cpu_cnt), (3, 4)) self.assertEqual( LocalDistributedCluster._calc_scheduler_worker_n_process( None, None, 3, calc_cpu_count=calc_cpu_cnt), (2, 3)) self.assertEqual( LocalDistributedCluster._calc_scheduler_worker_n_process( 5, 3, 2, calc_cpu_count=calc_cpu_cnt), (3, 2))
def testLocalCluster(self, *_): endpoint = gen_endpoint('0.0.0.0') with LocalDistributedCluster(endpoint, scheduler_n_process=2, worker_n_process=3, shared_memory='20M') as cluster: pool = cluster.pool self.assertTrue( pool.has_actor( pool.actor_ref(SchedulerClusterInfoActor.default_uid()))) self.assertTrue( pool.has_actor( pool.actor_ref(SessionManagerActor.default_uid()))) self.assertTrue( pool.has_actor(pool.actor_ref(DispatchActor.default_uid()))) with new_session(endpoint) as session: api = session._api t = mt.ones((3, 3), chunk_size=2) result = session.run(t, timeout=_exec_timeout) np.testing.assert_array_equal(result, np.ones((3, 3))) self.assertNotIn(session._session_id, api.session_manager.get_sessions())