def serve():
parser = argparse.ArgumentParser()
parser.add_argument("-tf", "--tmpfile", nargs=1)
parser.add_argument("-p", "--ports", nargs='+')
args = parser.parse_args()
comm = MPI.COMM_WORLD
options = [('grpc.max_send_message_length', -1), ('grpc.max_receive_message_length', -1)]
server = grpc.server(futures.ThreadPoolExecutor(max_workers=1), options=options)
hetr_pb2_grpc.add_HetrServicer_to_server(HetrServer(comm, server), server)
logger.debug("server: rank %d, tmpfile %s, ports %s",
comm.Get_rank(), args.tmpfile[0], args.ports if args.ports is not None else "")
if args.ports is not None and len(args.ports) > comm.Get_rank():
p = args.ports[comm.Get_rank()]
if is_port_open(p):
port = server.add_insecure_port('[::]:' + p)
else:
raise RuntimeError("port %s is already in use!", p)
else:
port = server.add_insecure_port('[::]:0')
server.start()
write_server_info(args.tmpfile[0], port)
try:
while True:
time.sleep(_ONE_DAY_IN_SECONDS)
except KeyboardInterrupt:
server.stop(0)
评论列表
文章目录