Slurmd调用PMIX然后调用UCX流程

1. GDB调试slurmd过程

kill -9 `pidof gdb` && kill -9 `pidof slurmd`

systemctl restart slurmd && sinfo && gdb slurmd_

set follow-fork-mode child

b slurmd_req

r

c

c

>sbatch

c

c

c(debug2("Processing RPC: REQUEST_BATCH_JOB_LAUNCH");)

b _rpc_batch_job

c

b _forkexec_slurmstepd

c

set follow-fork-mode child

b job_manager

c

set follow-fork-mode child

b _spawn_job_container(src\slurmd\slurmstepd\mgr.c)

c

b spank_init

set follow-fork-mode child

c

b checkpoint_stepd_prefork(这后面会fork很多次,后面没跟到,后面通过添加打印信息继续追踪)

2. 作业步内调用过程

job_manager(src\slurmd\slurmstepd\mgr.c)以root身份运行,执行共享内存和和互联初始化

    初始化各种插件

    mpi_hook_slurmstepd_init//根据SLURM_MPI_TYPE或者配置文件获取并注册MPI插件

        _mpi_init

    继续初始化插件

    mpi_hook_slurmstepd_prefork

        mpi_hook_slurmstepd_init

        (*(ops.slurmstepd_prefork))(job, env)

            p_mpi_hook_slurmstepd_prefork(src\plugins\mpi\pmix\mpi_pmix.c)

                pmixp_stepd_init

                    pmixp_dconn_init(src\plugins\mpi\pmix\pmixp_dconn.c)

                  (#ifdef HAVE_UCX

                        pmixp_info_srv_direct_conn_ucx

                        pmixp_dconn_ucx_prepare(mpi\pmix\pmixp_dconn_ucx.c)

                            _load_ucx_lib(PMIXP_UCX_LIBPATH

                            ucp_config_read

                            ucp_init

                            ucp_worker_create

                            ucp_worker_get_address

                            ucp_worker_get_efd

                pmixp_agent_start

            _fork_all_tasks

                exec_task

                    _setup_mpi

                        mpi_hook_slurmstepd_task

3. UCX内部调用过程

ucp_worker_create(ucx-1.6.x\src\ucp\core\ucp_worker.c)

    uct_worker_create

        ucp_worker_add_resource_ifaces

            uct_iface_open(src\uct\base\uct_md.c)

                tlc->iface_open(md, worker, params, config, iface_p)

                    UCS_CLASS_INIT_FUNC(uct_dc_mlx5_iface_t, uct_md_h md, uct_worker_h worker, const uct_iface_params_t *params,const uct_iface_config_t *tl_config)

                        uct_dc_mlx5_iface_create_dcis

                            uct_dc_mlx5_iface_dci_connect

                                ibv_exp_modify_qp(包括下面三个过程)

                                    INIT

                                    RTR(Ready To Receive)

                                    RTS(Ready To Send)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值