跳到主要内容

4.4.2 提交docker任务

一、步骤概述:

    1. 把搭建好环境的docker image上传到本地仓库:10.120.24.15:5000/jhinno

    2. 提交LSF作业,在HCP节点上拉下之前的image,并在HPC节点上运行这个docker

    3. 通过 docker cp传入运行时需要的文件和传出结果

二、例子说明:

    1.假设已经docker commit做好了一个本地的image: gem5-test:v1,需要上传到本地仓库做tag: 

            docker tag gem5-test:v1  10.120.24.15:5000/jhinno/gem5-test:v1 

        上传:

            docker push 10.120.24.15:5000/jhinno/gem5-test:v1

       2.编写让docker运行的作业gem5.sh,以及提交给lsf的作业:

         2.1 本次作业进行简单的gem5编译:run.sh

         cd /hpc/home/simonyjhe/docker-data

         vim  run.sh

            #!/bin/bash

            cd /opt/gem5

            scons build/X86/gem5.opt -j 100  /opt/mydata/output.log 2>&1

         让gem5.sh可执行:chmod  a+x  run.sh

         2.2 编写lsf的作业myjob.lsf:

            #BSUB -J gem5-test-job1

            #BSUB -n 56

            #BSUB -q gpu

            #BSUB -Is

            docker pull 10.120.24.15:5000/jhinno/gem5-test:v1

            docker run -it --rm --name gem5-yjhe  -v /hpc/home/simonyjhe/docker-data:/opt/mydata 10.120.24.15:5000/jhinno/gem5-test:v1 /opt/mydata/run.sh 

    说明:

            #BSUB部分是LSF job的参数: 申请56核心,放到gpu队列,是一个交互的作业

            docker部分:pull -> docker run

                     -it: 交互式,带终端

                     --rm: container退出后,删除container。image不会被删。

                     -v   /hpc/home/simonyjhe/tutorials/docker/gem5:/opt/mydata : 将工作目录映射到container中 /opt/mydata。在container中将需要的数据写入这个目录,譬如本次想保存的结果是output.log

         2.3. 提交作业:bsub < myjob.lsf &