def submit()

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


def submit(nworker, nserver, fun_submit, hostIP="auto", pscmd=None):
    if nserver == 0:
        pscmd = None

    envs = {"DMLC_NUM_WORKER": nworker, "DMLC_NUM_SERVER": nserver}
    hostIP = get_host_ip(hostIP)

    if nserver == 0:
        rabit = RabitTracker(hostIP=hostIP, nslave=nworker)
        envs.update(rabit.slave_envs())
        rabit.start(nworker)
        if rabit.alive():
            fun_submit(nworker, nserver, envs)
    else:
        pserver = PSTracker(hostIP=hostIP, cmd=pscmd, envs=envs)
        envs.update(pserver.slave_envs())
        if pserver.alive():
            fun_submit(nworker, nserver, envs)

    if nserver == 0:
        rabit.join()
    else:
        pserver.join()