Mirror / src /wait.py
Spico's picture
update
5953ef9
raw
history blame
1.34 kB
import argparse
import random
import string
import sys
from watchmen import WatchClient
def parse_args(in_args=None):
arg_parser = argparse.ArgumentParser()
arg_parser.add_argument("--task_name", type=str, required=True, help="Take Name")
arg_parser.add_argument("--cuda", type=str, required=True, help="cuda to be waited")
arg_parser.add_argument(
"--req_gpu_num",
type=int,
required=False,
default=1,
help="request number of gpus",
)
arg_parser.add_argument(
"--wait",
choices=["schedule", "queue", "none"],
default="none",
help="scheduling/queue wait",
)
arg_info = arg_parser.parse_args(args=in_args)
return arg_info
if __name__ == "__main__":
in_argv = parse_args()
if in_argv.wait == "none":
sys.exit(0)
random_id = "-" + "".join(random.sample(string.ascii_letters + string.digits, 8))
exp_id = in_argv.task_name + random_id
watch_client = WatchClient(
id=exp_id,
gpus=eval(f"[{in_argv.cuda}]"),
server_host="localhost",
server_port=62333,
req_gpu_num=in_argv.req_gpu_num,
mode=in_argv.wait,
timeout=60,
)
available_gpus = watch_client.wait()
available_gpus = [str(x) for x in available_gpus]
print(",".join(available_gpus))