forked from INM-6/beNNch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemplate.yaml
131 lines (119 loc) · 4.1 KB
/
template.yaml
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# beNNch - Unified execution, collection, analysis and
# comparison of neural network simulation benchmarks.
# Copyright (C) 2021 Forschungszentrum Juelich GmbH, INM-6
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <https://www.gnu.org/licenses/>.
# SPDX-License-Identifier: GPL-3.0-or-later
include-path:
path:
- ../helpers/
- ../config/
### EDIT BELOW
name: <network_name>
# model-specific name and output path
outpath: ../../benchmark_results/<network_name>
parameterset:
name: model_commands
parameter:
- {name: run_file, type: string, _: <network_simulation_file>.py}
- {name: log_path, type: string, _: "${jube_wp_abspath}/data"}
fileset:
# load and copy model-specific files
name: model_files
copy:
- $model_path/<network_simulation_file>
# This subsituteset maps the parameters that were defined in this yaml
# file to the target patterns that JUBE will search for in the
# simulation files. The pattern file is bm_run_microcircuit.py which is
# also the wrapper file for the actual microcircuit simulation. The
# source pattern will be replaced by the value contained in dest
substituteset:
name: simulation_substitutions
iofile: {in: <network_simulation_file>, out: <network_simulation_file>}
sub:
- {source: "{<source_key>}", dest: $<dest_key>}
### EDIT ABOVE
step:
# build step
- name: build
export: true
use:
- model_commands
- from: user_config.yaml
_: user_config
- from: microcircuit_config.yaml
_: file_paths,model_parameters,software_parameters
- from: helpers.yaml
_: slurm_build,run_build,files,sub_build_job
do:
- build --get --silent ${simulator} ${version} ${variant} ${suffix} && export DEP=`$submit_cmd --parsable $job_file`
# benchmark step
- name: bench
depend: build
use:
- model_commands
- from: user_config.yaml
_: user_config
- from: microcircuit_config.yaml
_: file_paths,model_parameters,machine_parameters
- from: helpers.yaml
_: slurm_bench,run_benchmark,files,sub_bench_job,scaling_experiment,init_job_file_variables
- model_files,simulation_substitutions
do:
done_file: $ready_file
_: $submit_cmd --dependency=afterok:$$DEP $job_file
# analysis step
analyser:
name: analyse
use:
- from: helpers.yaml
_: timer_pattern
analyse:
step: bench
file: timer_data.txt
# result step
# TODO add more information to table, e.g., affinity, local_spike_counter
# TODO also add hash as in microcircuit_jube_benches, name could be hash (fix file extension from .dat to .csv)
result:
name: result
use: analyse
table:
name: result_table
style: csv
sort: number
column:
- rng_seed
- num_nodes
- threads_per_task
- tasks_per_node
- model_time_sim
- wall_time_create
- wall_time_connect
- wall_time_sim
- wall_time_phase_collocate
- wall_time_phase_communicate
- wall_time_phase_deliver
- wall_time_phase_update
- wall_time_communicate_target_data
- wall_time_gather_spike_data
- wall_time_gather_target_data
- wall_time_communicate_prepare
- py_time_network
- py_time_simulate
- py_time_presimulate
- py_time_create
- py_time_connect
- base_memory
- network_memory
- init_memory
- total_memory
- num_connections
- local_spike_counter
- e_counter