暗能星系

    • 登录
    • 搜索

    cromwell + tesk 重启及gpu支持

    软件部署及教程
    1
    5
    27
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Z
      zhanglu 最后由 编辑

      1. cromwell-51代码修改:

      GpuTypeValidation.scala
      GpuValidation.scala
      TesResponseJsonFormatter.scala
      TesRuntimeAttributes.scala
      TesTask.scala
      

      2. tesk-api修改:

      TesKubernetesConverter.java
      TesResources.java
      

      2.1 添加gpu支持参数

      2.2 taskmaster挂在映射

      3. tesk-core修改:

      3.1 taskmaster将输入path 和url 做软连接;

      3.2 修改taskmaster核心逻辑,支持本地路径;

      1 条回复 最后回复 回复 引用 0
      • Z
        zhanglu 最后由 编辑

        支持gpu参考 https://www.yii666.com/blog/413659.html?action=onAll

        1. 安装支持gpu版本的docker
        2. 配置docker和gpu驱动;
        3. 创建k8s对gpu支持;
        1 条回复 最后回复 回复 引用 0
        • Z
          zhanglu 最后由 anneng 编辑

          cromwell+tesk支持重启:
          cromwell 配置文件

          
          call-caching {
          
            enabled = true
          
          }
          
          backend {
            default = TESK
          
            providers {
              TESK {
                actor-factory = "cromwell.backend.impl.tes.TesBackendLifecycleActorFactory"
                config {
                  root = "/cephfs_data/genostack_v3/genostack_cromwell/tmp/cromwell-executions"
          #         root = "ftp://192.168.0.135/pub/cromwell-executions"
                  dockerRoot = "/cromwell-executions"
                  endpoint = "http://192.168.0.135:8080/ga4gh/tes/v1/tasks"
                 # endpoint = "http://192.168.0.135:31903/v1/tasks"
                  glob-link-command = "ls -L GLOB_PATTERN 2> /dev/null | xargs -I ? ln -s ? GLOB_DIRECTORY"
                }
              }
            }
          }
          
          
          
          docker {
            hash-lookup {
              # Set this to match your available quota against the Google Container Engine API
              #gcr-api-queries-per-100-seconds = 1000
          
              # Time in minutes before an entry expires from the docker hashes cache and needs to be fetched again
              #cache-entry-ttl = "20 minutes"
          
              # Maximum number of elements to be kept in the cache. If the limit is reached, old elements will be removed from the cache
              #cache-size = 200
          
              # How should docker hashes be looked up. Possible values are "local" and "remote"
              # "local": Lookup hashes on the local docker daemon using the cli
              # "remote": Lookup hashes on docker hub, gcr, gar, quay
              method = "local"
            }
          }
          

          注意: docker.hash-lookup.method 要为local,等于remote时,cromwell会从远程仓库去取docker的hash值,一旦获取失败,callcaching就会关闭,导致后续所有的caching 和hash Miss, 无法使用重启

          1 条回复 最后回复 回复 引用 0
          • Z
            zhanglu 最后由 编辑

            此回复已被删除!
            1 条回复 最后回复 回复 引用 0
            • Z
              zhanglu 最后由 zhanglu 编辑

              cromwell 重启wdl编写和测试规范:

              1. wdl数据类型:

              • 列表文件类型:
                File file = “/tmp/a.txt”

              • 列表字符串类型:
                String str = “abc”

              注意点:路径参数:使用String
              当task输出是一个路径时:

              output {
                      File metadata_result = "metadata.tsv"
                      File data_dir = "data"
                      File fqc_dir = "data1"
                      String fqc_dir_str = "${fqc_dir}"
                  }
              

              先使用File data_dir = "data", 才能接收到 "data"的完整路径, 但是在后续使用当中需要将File类型的路径转化成 String, String fqc_dir_str = "${fqc_dir}",

              因为: 在File类型里,callcaching hash不支持File类型的path,
              如果在输出里用File接收,在输入里用String,使用,则会导致输入的hash值判定为新值,该步骤就无法参与重启

              后续编写WDL测试规范:

              1. 功能测试:
              2. 重启测试
              1 条回复 最后回复 回复 引用 0
              • First post
                Last post
              Powered by 暗能星系