snakemake分享ppt
bench
通过 benchmark 指定输出文件,可以记录每个任务运行过程中所使用的计算资源。1
2
3
4
5
6
7rule 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