def upload_code(): code_package, files_uploaded = upload_code_package( ".", excludes=[ "core", "compression_results", "output.tmp", ".vscode", "node_modules", "scripts", ".git", "bla.tar", "*.pyc", "._*", "__pycache__", "*.pdf", "*.js", "*.yaml", ".pylintrc", ".gitignore", ".AppleDouble", ".jobignore", ], ) print("Uploaded {} files.".format(len(files_uploaded))) return code_package
project = "decentralized_powersgd" experiment = os.path.splitext(os.path.basename(__file__))[0] script = "train.py" description = """ See if we can reproduce Moniqua's results """.strip() base_config = { "n_workers": 8, "topology": "ring", "batch_size": 128, "task_architecture": "ResNet20", } code_package, files_uploaded = upload_code_package(".", excludes=excluded_files + ["gossip_run.py"]) print("Uploaded {} files.".format(len(files_uploaded))) def schedule(name, config, skip_existing=False): # Skip pre-existing entries if (skip_existing and mongo.job.count_documents({ "project": project, "job": name, "experiment": experiment }) > 0): return config = {**base_config, **config} n_workers = config["n_workers"] job_id = register_job(
".gitignore", ".AppleDouble", ".jobignore", ] project = "decentralized_powersgd" experiment = os.path.splitext(os.path.basename(__file__))[0] script = "gossip_run.py" description = """ Now using optimal scaling for the uncompressed baseline and PowerGossip. """.strip() code_package, files_uploaded = upload_code_package( ".", excludes=excluded_files + ["tasks", "train.py"] ) print("Uploaded {} files.".format(len(files_uploaded))) def schedule(name, config): # Skip pre-existing entries if mongo.job.count_documents({"project": project, "job": name, "experiment": experiment}) > 0: return job_id = register_job( user="******", project=project, experiment=experiment, job=name, n_workers=n_workers,
base_config = dict( task="LSTM", batch_size=64, # per worker weight_decay=0, num_epochs=90, lr_schedule_milestones=[(60, 0.1), (80, 0.1)], learning_rate=1.25, momentum=0.0, optimizer_diffusion_rate=1, topology="ring", use_decentralized_data=True, n_workers=n_workers, evaluate_average_model=False, ) code_package, files_uploaded = upload_code_package(".", excludes=excluded_files) print("Uploaded {} files.".format(len(files_uploaded))) ids = [] def schedule(name, config, skip_existing=True): # Skip pre-existing entries config = {**base_config, **config} if (skip_existing and mongo.job.count_documents( { "project": project, "job": name, "experiment": experiment, "config.learning_rate": config["learning_rate"], }) > 0):