snakemake介绍

snakemake分享ppt

Snakemake介绍
官方文档

bench

通过 benchmark 指定输出文件,可以记录每个任务运行过程中所使用的计算资源。

1
2
3
4
5
6
7
rule Demo:
input: ...
output: ...
conda:
"envs/rmhost.yaml"
shell: ...
benchmark: log.txt

运行rule后,会在 log.txt 文件中输出任务运行的相关资源信息。

s h: m: s max_rss max_vms max_uss max_pss io_in io_out mean_load
1653.7956 0:27:33 11794.34 39378.64 11782.93 11787.65 5094.00 2639.98 118.52

其中每个字段含义如下(官网链接):

  • s: 运行时间,秒为单位
  • h: m: s : 运行时间,时分秒制
  • RSS: Resident Set Size 实际使用物理内存(包含共享库占用的内存)
  • uss: 最大虚拟内存
  • USS: Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
  • PSS: Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
  • io_in: I/O read in bytes
  • io_out: I/O written in bytes
  • mean_load

  • VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

统计任务CPU时

随着计算的精细话管理,越来越多的工作需要精确统计每个步骤/每个流程分析所需时间, 使用的snakemake版本大于5.30时,框架自带的benchmark 记录会保存每个任务的cpu_time。

1
2
3
4
5
6
7
8
# <= v5.29
s h:m:s max_rss max_vms max_uss max_pss io_in io_out mean_load
3.5506 0:00:03 34.39 239.52 32.57 32.66 80.04 0.01 41.13

# >= v5.30
$ cat benchmarks/test1.rmhost.benchmark.txt
s h:m:s max_rss max_vms max_uss max_pss io_in io_out mean_load cpu_time
62.8049 0:01:02 3528.02 4267.68 3524.98 3525.02 12.81 48.00 267.62 168.59

-------------本文结束感谢您的阅读-------------