def main()

in src/sagemaker_xgboost_container/dmlc_patch/tracker.py [0:0]


def main():
    """Main function if tracker is executed in standalone mode."""
    parser = argparse.ArgumentParser(description="Rabit Tracker start.")
    parser.add_argument("--num-workers", required=True, type=int, help="Number of worker proccess to be launched.")
    parser.add_argument(
        "--num-servers", default=0, type=int, help="Number of server process to be launched. Only used in PS jobs."
    )
    parser.add_argument(
        "--host-ip",
        default=None,
        type=str,
        help=("Host IP addressed, this is only needed " + "if the host IP cannot be automatically guessed."),
    )
    parser.add_argument(
        "--log-level", default="INFO", type=str, choices=["INFO", "DEBUG"], help="Logging level of the logger."
    )
    args = parser.parse_args()

    fmt = "%(asctime)s %(levelname)s %(message)s"
    if args.log_level == "INFO":
        level = logging.INFO
    elif args.log_level == "DEBUG":
        level = logging.DEBUG
    else:
        raise RuntimeError("Unknown logging level %s" % args.log_level)

    logging.basicConfig(format=fmt, level=level)

    if args.num_servers == 0:
        start_rabit_tracker(args)
    else:
        raise RuntimeError("Do not yet support start ps tracker in standalone mode.")