-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanalyze_benchmarks.smk
45 lines (39 loc) · 1.71 KB
/
analyze_benchmarks.smk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'''
After all benchmarking steps have finished running, this workflow creates a
database out of all the run times, memory usages, and io wait times, and plots
the output in plotly.
This program needs a lot of improvement - a lot of run-specific info that should
go in the yaml file is currently hard-coded in the smk file
'''
configfile: 'input_files/analyze_benchmarks.yaml'
rule all:
input:
time_graph=expand('output_files/Mikalayi_TES/{cpu_count}_CPU_time.html', cpu_count=config['cpu_counts']),
# database='output_files/Mikalayi_TES/benchmark_database.yaml'
rule make_database:
input:
step_times=expand('output_files/Mikalayi_TES/{sample_count}s/wrangler/'
'downsample_{sample_count}s_200000000000000000umi_{cpu_count}cpu_run_'
'stats/step_profile.txt',
cpu_count=config['cpu_counts'],
sample_count=config['sample_counts']),
benchmarks=expand('output_files/Mikalayi_TES/{sample_count}s/wrangler/'
'downsample_{sample_count}s_200000000000000000umi_{cpu_count}cpu_run_'
'stats/run_stats.txt',
cpu_count=config['cpu_counts'],
sample_count=config['sample_counts'])
params:
basal_memory=config['basal_memory']
output:
database='output_files/Mikalayi_TES/benchmark_database.yaml'
script:
'input_files/scripts/make_database.py'
rule graph_benchmarks:
input:
database='output_files/Mikalayi_TES/benchmark_database.yaml'
output:
memory_graph=expand('output_files/Mikalayi_TES/{cpu_count}_CPU_memory.html', cpu_count=config['cpu_counts']),
time_graph=expand('output_files/Mikalayi_TES/{cpu_count}_CPU_time.html', cpu_count=config['cpu_counts']),
storage_graph=expand('output_files/Mikalayi_TES/{cpu_count}_CPU_storage.html', cpu_count=config['cpu_counts'])
script:
'input_files/scripts/graph_benchmarks.py'