[tune] [rllib] Automatically determine RLlib resources and add queueing mechanism for autoscaling (#1848)

This commit is contained in:
Eric Liang
2018-04-16 16:58:15 -07:00
committed by Richard Liaw
parent 2e25972d4d
commit 7ab890f4a1
39 changed files with 286 additions and 122 deletions
+9 -5
View File
@@ -82,7 +82,7 @@ class Trial(object):
config=None,
local_dir=DEFAULT_RESULTS_DIR,
experiment_tag="",
resources=Resources(cpu=1, gpu=0),
resources=None,
stopping_criterion=None,
checkpoint_freq=0,
restore_path=None,
@@ -112,7 +112,9 @@ class Trial(object):
self.config = config or {}
self.local_dir = local_dir
self.experiment_tag = experiment_tag
self.resources = resources
self.resources = (
resources
or self._get_trainable_cls().default_resource_request(self.config))
self.stopping_criterion = stopping_criterion or {}
self.checkpoint_freq = checkpoint_freq
self.upload_dir = upload_dir
@@ -350,11 +352,9 @@ class Trial(object):
def _setup_runner(self):
self.status = Trial.RUNNING
trainable_cls = ray.tune.registry.get_registry().get(
ray.tune.registry.TRAINABLE_CLASS, self.trainable_name)
cls = ray.remote(
num_cpus=self.resources.cpu,
num_gpus=self.resources.gpu)(trainable_cls)
num_gpus=self.resources.gpu)(self._get_trainable_cls())
if not self.result_logger:
if not os.path.exists(self.local_dir):
os.makedirs(self.local_dir)
@@ -380,6 +380,10 @@ class Trial(object):
registry=ray.tune.registry.get_registry(),
logger_creator=logger_creator)
def _get_trainable_cls(self):
return ray.tune.registry.get_registry().get(
ray.tune.registry.TRAINABLE_CLASS, self.trainable_name)
def set_verbose(self, verbose):
self.verbose = verbose