for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
# Author: Simon Blanke
# Email: [email protected]
# License: MIT License
import warnings
def try_ray_import():
try:
import ray
if ray.is_initialized():
rayInit = True
else:
rayInit = False
except ImportError:
warnings.warn("failed to import ray", ImportWarning)
ray = None
return ray, rayInit
def dist(optimizer_class, _main_args_, _opt_args_):
ray, rayInit = try_ray_import()
if rayInit:
dist_ray(optimizer_class, _main_args_, _opt_args_)
dist_default(optimizer_class, _main_args_, _opt_args_)
def dist_default(optimizer_class, _main_args_, _opt_args_):
_optimizer_ = optimizer_class(_main_args_, _opt_args_)
params_results, pos_list, score_list = (
_optimizer_.search()
)
# print("params_results", params_results)
def dist_ray(optimizer_class, _main_args_, _opt_args_):
optimizer_class = ray.remote(optimizer_class)
ray
opts = [
optimizer_class.remote(_main_args_, _opt_args_)
for job in range(_main_args_.n_jobs)
]
searches = [
opt.search.remote(job, rayInit=rayInit) for job, opt in enumerate(opts)
rayInit
params_results, pos_list, score_list = ray.get(searches)[0]
ray.shutdown()